Подходит ли Project Lombok для больших Java-проектов? - PullRequest
21 голосов
/ 19 мая 2010

Кто-нибудь использует Project Lombok для крупномасштабной производственной системы? Как это влияет на процесс компиляции (т. Е. Выполняет двухпроходную компиляцию, замедляет ее, делает ее более хрупкой)?

Ответы [ 2 ]

37 голосов
/ 20 мая 2010

Ломбок не выполняет двухпроходную компиляцию. Технически это «замедляет» процесс компиляции в том смысле, что он выполняется в дополнение к обычным вещам, которые происходят при компиляции, но по сравнению с фазой синтаксического анализа, нижней фазой и фазой перевода, lombok едва регистрируется.

Основная проблема, связанная с хрупкостью, заключается в том, что редактирование ломбокифицированного кода в редакторе, который НЕ является либо (A) тупым (то есть блокнотом или средством просмотра различий), (B) затмением, (C) сетевым компонентом или (D), получает весь свой мозг запустив javac (например, vim с плагином java), он будет сосать. Если это не применимо, сокращение стандартного шаблона должно только сделать ваш код менее хрупким.

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я один из двух основных разработчиков lombok:)

5 голосов
/ 05 июля 2010

Я использовал Project Lombok, когда разрабатывал интерфейс Google Web Toolkit (GWT) для большого Java-приложения и приложения Swing. Поскольку я не использовал @SneakyThrows, мне не потребовался lombok.jar во время выполнения.

Используя поведение delombok, я предоставляю двухэтапный процесс компиляции. Ломбок аннотированный Java-код => Java-код => Javascript

С точки зрения пригодности для больших Java-проектов, деломбоксирование кода для веб-интерфейса занимает менее 2 секунд, остальная часть процесса компиляции gwt занимает ~ 50 секунд (эти метрики взяты с рабочей станции разработчика).

На этой неделе мы рассматриваем возможность предоставления поддержки Lombok для остальной части приложения. Сборка основного приложения занимает около 1 часа (включая модульные тесты, установщики и т. Д., Построенные на коробке с 2xIntel E5450).

...