Ой, чую, наприлетает мне минусов.... Начнем с того, что я тоже старпёр не любитель Ломбока, но считаю, что как и всякий инструмент его следует правильно использовать.
О чем в свое время мы договорились в команде:
@Accessors(chain = true) - это удобно. Насчет антипаттерна - мы решили что это некритично, поскольку от человеческой глупости рецепта нет.
С @Entity пользуем только @Accessors(chain = true) @Getter @Setter
Билдеры используем только для иммутабл объектов. Строка вида Test.builder().field1("a").build().setField1("b"); выглядит "по-тупому"
@Data - нужно быть внимательным. Используем только для dto в ресте
@RequiredArgsConstructor - тут (как и автор статьи говорит) нужно быть аккуратным с использованием. Особенно, если у тебя есть однотипные поля.
@NonNull@Slf4j - да, используем.
Остальные аннотации - очень сильно ревьюим и задаемся вопросом: "Зачем? И точно ли от нее есть польза в этой точке?"
Ой, чую, наприлетает мне минусов.... Начнем с того, что я тоже
старпёрне любитель Ломбока, но считаю, что как и всякий инструмент его следует правильно использовать.О чем в свое время мы договорились в команде:
@Accessors(chain = true)
- это удобно. Насчет антипаттерна - мы решили что это некритично, поскольку от человеческой глупости рецепта нет.С
@Entity
пользуем только@Accessors(chain = true) @Getter @Setter
Билдеры используем только для иммутабл объектов. Строка вида
Test.builder().field1("a").build().setField1("b");
выглядит "по-тупому"@Data
- нужно быть внимательным. Используем только для dto в ресте@RequiredArgsConstructor
- тут (как и автор статьи говорит) нужно быть аккуратным с использованием. Особенно, если у тебя есть однотипные поля.@NonNull
@Slf4j
- да, используем.Остальные аннотации - очень сильно ревьюим и задаемся вопросом: "Зачем? И точно ли от нее есть польза в этой точке?"