Пишите меньше шаблонного кода Java с Lombok
Java — широко используемый язык программирования. Для этого есть множество причин: Java довольно стабильна, существует большая экосистема Java, и многие разработчики изучают Java как свой первый язык программирования (например, в университете). Я тоже начал с Java. Сначала основы Java, затем Java для приложений Android и, наконец, серверная Java.
Распространенная жалоба на Java заключается в том, что вам нужно написать много кода, чтобы добиться чего-то. Если у вас есть опыт работы с такими языками, как Python или JavaScript, то написание кода Java иногда может показаться немного утомительным. Шаблон — это термин, используемый для описания кода, который повторяется во многих частях приложения с небольшими изменениями. Типичный Java-проект нередко выделяет сотни строк кода под шаблон, необходимый для определения простых классов данных. Эти классы обычно содержат несколько полей, геттеров и сеттеров для этих полей, а также реализации equals
и hashCode
.
Если вы начинаете новый проект, вы можете выбрать язык, который требует меньше кода для достижения целей. Однако в более крупных проектах нельзя просто переключиться на другой язык программирования. Коллега посоветовал нам рассмотреть возможность использования Project Lombok, чтобы писать меньше шаблонного кода в проектах Java. Недавно мы создали новый микросервис, основанный на Java, поэтому я подумал, что это хорошая возможность опробовать Project Lombok.
Встречайте Project Lombok
Проект Ломбок (сокращенно Ломбок) направлен на уменьшение количества шаблонного кода с помощью простого набора аннотаций. Интегрируясь в вашу IDE, Lombok может внедрить код, который сразу становится доступным для разработчика. Например, простое добавление аннотации @Data
к классу данных приводит к появлению ряда новых методов, таких как сеттеры и геттеры в среде IDE. В простейших сценариях Project Lombok может сократить эти классы до необходимых полей и одной аннотации @Data
.
Lombok поддерживает множество популярных IDE, таких как IntelliJ IDEA, Visual Studio Code и Eclipse. Если вы решили внедрить Lombok в свой Java-проект, вашим коллегам также необходимо настроить Lombok в своей среде IDE. После настройки вы можете использовать аннотации, предоставленные Lombok.
Однако Lombok не превратит Java в совершенно новый язык. В конце концов, это все еще код Java, но вы избегаете написания большого количества шаблонного кода и тем самым экономите время. Вы можете легко познакомить Lombok с новыми или существующими проектами. Для более зрелых проектов можно начать использовать Lombok для нового кода, а затем постепенно переносить существующий код.
Класс Vanilla Java против класса Java с Lombok
Во-первых, давайте взглянем на типичный класс данных Java. На первый взгляд, это уже похоже на большой объем кода для простого класса. В конце концов, этот класс, представляющий пользователя, содержит только поле типа List
. Вы увидите, насколько больше этот класс может стать, если мы начнем вводить больше полей, таких как имя, адрес электронной почты и т. Д.
Давайте посмотрим, как мы можем упростить приведенный выше код с помощью Lombok. Мгновенно вы можете увидеть, что кода задействовано гораздо меньше. Не указаны геттеры, сеттеры, конструкторы или _6 _ / _ 7_ методы. Вместо этого используются аннотации типа @Data
. С меньшим количеством кода цель и функциональность класса Java становятся более понятными для любого, кто читает исходный код.
Если вы включили поддержку Lombok в своей среде IDE и начнете печатать, вы увидите, что все это действительно есть. Например, мы можем получить разрешения пользователя, вызвав new UserDataWithLombok().getPermissions()
. Добавление нового поля (например, имени) может быть выполнено в одной строке благодаря Lombok.
Lombok предоставляет больше аннотаций, так что не стесняйтесь их проверять!
Заключение
Спасибо за то, что прочитали этот небольшой пост о том, как Project Lombok может помочь нам писать меньше шаблонного кода в проектах Java. В нашем случае внедрение Lombok окупилось, поскольку нужно писать меньше шаблонного кода. Лично я бы как можно раньше представил Lombok в проектах Java.
Знаете ли вы другие способы добиться большего с меньшим количеством кода на Java? Дай мне знать в комментариях.