Сегодня хочу поделиться своим подходом к Lombok. Несмотря на то, что вокруг него давно идут споры, я по-прежнему использую его в ряде проектов — и вот почему.
✅ Где он уместен
- DTO, VO, Entity классы — здесь Lombok помогает избежать рутинного кода (
@Getter, @Setter, @ToString, @EqualsAndHashCode и т.д.).- В тестах — аннотация
@Builder отлично упрощает создание объектов.❗ Где избегаю
- В бизнес-логике. Я стараюсь писать явный код — особенно в сервисах и core-слоях.
- В публичных API — особенно если библиотека/модуль будет использоваться другими командами.
📌 Почему не отказываюсь полностью
Да, можно заменить Lombok на
record, Java 21+ или использовать IDE-генерацию. Но:- Lombok поддерживает больше шаблонов.
- С ним проще мигрировать legacy-код.
- Иногда экономит часы в больших моделях.
💡 Мой совет: ставьте аннотацию
@Generated (или комментарий) на код, который создан Lombok, чтобы проще было понять, откуда что взялось. А если хотите больше контроля — попробуйте MapStruct + ручные мапперы.👉 @java_geek