Java модернизировалась, но многословие все еще сдерживает ее [закрыто]JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Java модернизировалась, но многословие все еще сдерживает ее [закрыто]

Сообщение Anonymous »

Шестимесячный цикл выпуска Java значительно ускорил ее эволюцию, превратив ее в более современную и функциональную платформу. Java уже давно признана основой корпоративных приложений, ее ценят за ее стабильность, производительность и широкое распространение.
Благодаря недавним достижениям Java, несомненно, модернизировалась. Однако разработчики по-прежнему воспринимают некоторые аспекты, особенно многословие и шаблонный код, как чрезмерные по сравнению с другими языками программирования.
Распространенным примером является моделирование сущностей с использованием Spring Data или Micronaut Data с JPA:

Код: Выделить всё

@Entity
public class Role extends EntityMetadata {
private String name;
private String description;

// Create getter/setter constructor and other things
}
В таких случаях разработчикам приходится вручную писать методы получения, установки, конструкторы и другой шаблонный код.
Lombok как решение
Lombok эффективно решает эту проблему:

Код: Выделить всё

@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Entity
public class Role extends EntityMetadata {
private String name;
private String description;
}
Используя Lombok, разработчики могут значительно сократить количество шаблонов, улучшая читабельность и производительность.
Компромисс:

Основным недостатком является использование сторонней библиотеки, которую некоторые команды предпочитают избегать из соображений удобства сопровождения или инструментов в долгосрочной перспективе.
Записи и их ограничения
Во многих Java В ходе конференций и дискуссий в сообществе архитекторы часто рекомендуют использовать записи Java. Хотя записи являются мощным дополнением, они имеют ограничения, особенно в корпоративном контексте.
Например:

Код: Выделить всё

@Entity
public record Role(String name, String description) extends EntityMetadata {
}
Записи не могут расширять другие классы (они неявно расширяют java.lang.Record), что делает их непригодными там, где наследование является основной частью объектно-ориентированного проектирования. Кроме того, записи плохо интегрируются с JPA, который предполагает изменяемые сущности и конструктор без аргументов.
Подход Quarkus
Команда Quarkus представила интересную и удобную для разработчиков альтернативу:

Код: Выделить всё

@Entity
public class Role extends EntityMetadata {
public String name;
public String description;
}
Разрешая общедоступные поля, Quarkus незаметно генерирует необходимые средства доступа и другую инфраструктуру. Этот подход сокращает количество шаблонов, не требуя дополнительных библиотек, предлагая убедительный баланс между простотой и производительностью.
Мы все знаем, что с платформой JAVA ведется множество проектов, однако эти мелочи имеют огромное значение для внедрения разработчиками. Вот почему JAVA до сих пор славится слишком многословием и шаблонным кодом.
Экосистема Java продолжает расти, при этом активно развиваются многочисленные фреймворки и платформы. Однако, казалось бы, незначительные проблемы, такие как многословие и шаблонность, оказывают существенное влияние на опыт разработчиков и их принятие.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ds-it-back
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»