JavaRush /Java блог /Random /Кофе-брейк #70. Как ускорить написание кода Java с помощь...

Кофе-брейк #70. Как ускорить написание кода Java с помощью Lombok. Список обучения для начинающих программистов

Статья из группы Random

Как ускорить написание кода Java с помощью Lombok

Источник: Dev.to В каждом приложении мы пишем один и тот же шаблонный код. Например:
  • Геттеры;
  • Сеттеры;
  • Конструкторы;
  • Паттерн проектирования Builder;
  • и многое другое…
Было бы неплохо, если бы эту рутинную работу можно было бы кому-то поручить? И вот здесь нам может помочь Lombok.Кофе-брейк #70. Как ускорить написание кода Java с помощью Lombok. Мой список обучения для начинающих программистов - 1

Что он делает?

Он генерирует байтовый код для этих общих задач (геттеры, сеттеры и так далее) и помещает его в .class, что делает их пригодными для использования в коде, который мы пишем.

Как это происходит?

Необходимо добавить зависимость Lombok в сборку Maven. Затем нужно аннотировать нужные классы, поля с некоторыми аннотациями Lombok. Давайте посмотрим на код! Без Lombok:

public class Human {  
    private int id;  
    private String name;  
    private int ageInYears;  

    public Human() { }  

    public Human(int id, String name, int ageInYears) {  
        this.id = id;  
        this.name = name;  
        this.ageInYears = ageInYears;  
    }  

    public int getId() {  
        return id;  
    }  

    public String getName() {  
        return name;  
    }  

    public int getAgeInYears() {  
        return ageInYears;  
    }  

    public void setName(String name) {  
        this.name = name;  
    }  

    public void setAgeInYears(int ageInYears) {  
        this.ageInYears = ageInYears;  
    }  

    // Builder pattern  
  public Human id(int id){  
        this.id = id;  
        return this;  
    }  
    public Human name(String name){  
        this.name = name;  
        return this;  
    }  
    public Human ageInYears(int ageInYears){  
        this.ageInYears = ageInYears;  
        return this;  
    }  

    @Override  
  public String toString(){  
        return String.format("Human(id=%s, name=%s, ageInYears=%s)",  
                this.id, this.name, this.ageInYears);  
    }  
}
А теперь применим Lombok:

import lombok.*;  
@Getter @Setter  
@AllArgsConstructor @NoArgsConstructor  
@Builder @ToString  
public class Human {  
    @Setter(AccessLevel.NONE)  
    private int id;  
    private String name;  
    private int ageInYears;  
}
Зависимость Maven выглядит так:

<dependency>  
    <groupId>org.projectlombok</groupId>  
    <artifactId>lombok</artifactId>  
    <version>1.18.16</version>  
    <scope>provided</scope>  
</dependency>
Примечание: часть с версией будет меняться в зависимости от последнего релиза Lombok.

Что мы сделали?

Мы использовали аннотации для создания геттеров, сеттеров, конструкторов, паттерна проектирования Builder, реализации toString. Также мы можем внести изменения в некоторые аннотации, такие как сеттер для поля id. Мы устанавливаем для него уровень доступа None: это означает, что мы не создаем для него сеттер.

Стоило ли это делать?

Мы написали 52 строки, когда не использовали Lombok. Мы написали 8 строк, используя Lombok. Lombok помог нам уменьшить размер кода почти в 4 раза. Этот показатель можно улучшить, если в наших классах будет больше переменных. У Lombok есть намного больше аннотаций, в которых указана масса полезной информации. Чтобы просмотреть их, посетите веб-сайт.

Заключение

Lombok помогает сосредоточиться на бизнес-коде и не беспокоиться о мелких деталях (геттерах / сеттерах / конструкторах / общих шаблонах проектирования и других конструкциях Java).

Список обучения для начинающих программистов

Источник: DZone У моего друга есть сын, который скоро закончит среднюю школу. Он немного знает программирование и задумывается, не стать ли ему программистом. Недавно он спросил меня: “Что мне учить дальше?”.Кофе-брейк #70. Как ускорить написание кода Java с помощью Lombok. Мой список обучения для начинающих программистов - 2Когда я только начал учить программирование, я предполагал, что ответом на вопрос «Что мне следует учить дальше» будет новая технология программирования, новый язык, новая библиотека или что-то в этом роде. По мере того, как я продвигался по карьерной лестнице, я поменял свое мнение. Помимо оттачивания навыков программирования и изучения новых языков, начинающим программистам следует обучаться в смежных областях (это я объясню ниже). В этом тексте я хочу собрать список навыков, которые я бы порекомендовал освоить программистам. Моя цель не состоит в том, чтобы перечислить все актуальные знания или указать ссылки на учебные пособия. Вместо этого я хочу помочь новичкам ознакомиться с набором инструментов, методов и навыков, которые могут им помочь в написании программ.

Командная строка

Я полагаю, что меня уже считают «старым» по некоторым стандартам. В мое время использовать компьютер — это означало сидеть в DOS и вводить команды. С тех пор многое изменилось. Очень важно научиться пользоваться командной строкой. Многие инструменты предоставляют только интерфейс командной строки. В некоторых случаях в командной строке вы можете работать быстрее. Вы должны уметь делать такие базовые вещи, как:
  • Обход каталога.
  • Управление файлами (копирование / перемещение / удаление).
  • Компиляция и / или запуск исходного кода.
Если вы работаете в Windows, я бы рекомендовал ознакомиться с Linux, возможно, используя WSL2 вместо полноценной виртуальной машины. Если вы работаете на Mac, вы можете использовать оболочку, встроенную в ОС. Также вы можете получить хороший опыт, установив виртуальную машину Linux.

Контроль версий

Вам нужно научиться отслеживать исходный код с помощью контроля версий. Программное обеспечение для управления версиями позволяет отслеживать историю изменений вашего проекта, это может быть жизненно важно для отладки. Это также упрощает коллективную работу над кодовой базой. GitHub и GitLab — два популярных сайта для размещения проектов с открытым исходным кодом. Оба они используют Git (как я полагаю, это понятно по названиям). Git — самый популярный инструмент в наши дни, поэтому я бы рекомендовал разобраться с использованием Git в командной строке с GitHub или GitLab в качестве репозитория.

Сети

Сегодня для большинства программ требуется хотя бы некоторый уровень сетевого взаимодействия. Понимание того, как работают сети, важно. По крайней мере, вы должны понимать основы, такие как IP-адреса, порты и протоколы. Изучение брандмауэров, балансировки нагрузки, прокси-серверов в дальнейшем окупится. И не только в вашей карьере программиста. Согласитесь, ведь замечательно разбираться в вопросе «почему не работает Wi-Fi?». Также я бы порекомендовал изучить основы работы облачных сервисов, таких как AWS и Azure. Попытка настроить виртуальное частное облако AWS с подсетями, правилами входа, шлюзами даст опыт работы с сетями.

Тестирование

Неотъемлемая часть написания хорошего ПО — это научиться тестировать программное обеспечение. Многие из нас учатся программировать, а затем «тестируют» свой код. Модульное и интеграционное тестирование — это необходимые навыки, которые можно использовать практически для любого программного обеспечения, над которым вы работаете. Хотя сначала тестирование кажется утомительным, это умение окупится и позволит вам работать быстрее и с большей уверенностью.

Непрерывная интеграция

Непрерывная интеграция, или CI, сочетает в себе тестирование и контроль версий. Каждый раз, когда вы создаете новую итерацию кода, у вас есть набор тестов, которые запускаются автоматически. За последние 10 лет инструменты CI значительно улучшились. У GitHub и GitLab есть встроенные решения CI (GitHub Actions и GitLab CI соответственно), с ними легко начать работу. Как и c тестированием, начало работы с CI будет "тугим". Но как только вы изучите основы, вам станет гораздо легче и быстрее обнаруживать проблемы. Я бы рекомендовал поискать подробное руководство с примерами для используемого вами языка программирования.

Навыки письма

Наверное, это та область, которую я больше всего недооценивал, когда начинал работать программистом. Я не преувеличиваю: сейчас я считаю, что самый важный навык, который программист может добавить в свой арсенал, — это умение писать. Хорошее письменные навыки означают, что вы можете четко объяснить идею, используя минимальное количество слов. Когда вы учитесь программировать, вы обычно работаете самостоятельно, поэтому писать не обязательно. Но когда вы начнете работать в командах, вам нужно будет написать:
  • Документацию;
  • Отчеты об ошибках;
  • Запросы функций;
  • Предложения клиентов;
  • Документы с требованиями;
  • Электронные письма (очень много писем!);
  • Текстовые сообщения;
  • Сообщения в блогах (возможно);
Научитесь писать. Упражняйтесь. Пройдите писательские курсы. Это будет приносить дивиденды всю оставшуюся жизнь. Кроме того: научитесь хорошо читать. Когда я только начинал профессиональное развитие, меня пугали документы с требованиями. Сейчас я понимаю, что уделив несколько часов на внимательное изучение этой информации, вы сэкономите месяцы, потраченные впустую, на создание неправильной вещи.

Другие языки программирования

В наши дни недостаточно знать только один язык программирования. Практически каждый программист должен знать хотя бы несколько. Важно изучить другие языки, чтобы узнать новые техники. Я рекомендую изучить несколько разных категорий языков. В порядке убывания по приоритету: Функциональное программирование. В большинстве школ до сих пор не преподают функциональное программирование (FP). FP — это мощный подход, который упрощает написание многих видов кода. Я предвзят, но я бы рекомендовал Haskell как лучший язык для изучения, поскольку он поможет понять FP лучше, чем многие другие языки. Также полезно выучить язык семейства LISP. Изучение функционального программирования поможет вам писать лучший код практически на любом языке. Системное программирование. Системные языки относятся к более низкому уровню и позволяют лучше контролировать работу программы. Благодаря их изучению вы узнаете, как программа работает в системе, что может оказаться весьма полезным для понимания и отладки проблем на других языках. Я рекомендую изучить Rust, затем C и C++. Объектно-ориентированные языки. Java и C# — два самых популярных объектно-ориентированных языка в этом семействе. (Да, Python и C ++ тоже популярны, но я выделю их отдельно). ООП представило много новых парадигм и, вероятно, до сих пор остается самым популярным подходом к программированию, хотя я лично предпочитаю подходы функционального программирования. Тем не менее, у объектно-ориентированного программирования есть чему поучиться, и есть вероятность, что вам придется писать объектно-ориентированный код в своей карьере. Написание сценариев. Python и Ruby — два популярных языка сценариев в семействе объектно-ориентированных приложений. В частности, Python широко используется в смежных областях, таких как DevOps и data science. Кроме того, это простой язык, с которым довольно легко начать работу.

Методы программирования

Независимо от того, какой язык программирования вы используете, стоит ознакомиться с некоторыми дополнительными приемами, выходящими за рамки конкретного языка, в том числе:
  • Программирование баз данных. Я настоятельно рекомендую изучить SQL. SQLite и PostgreSQL — две СУБД с открытым исходным кодом для изучения.
  • Параллелизм и асинхронное программирование. Сегодня это становится все более важным.
  • Сетевое программирование, особенно создание HTTP-серверов и клиентов.
  • Создание веб-интерфейса с помощью HTML / CSS / JavaScript.
  • Сериализация данных в таких форматах, как JSON, YAML и двоичные файлы.

Заключение

Приведенная выше информация может показаться сложной. Не нужно думать, что вам требуется все это изучить, чтобы стать программистом. Это не так. Чтобы стать отличным программистом, требуется время и профессиональная практика. Если вы еще не начали программировать, я бы порекомендовал начать с некоторых pet-проектов. Подумайте об участии в проектах с открытым исходным кодом.Это поможет вам лучше освоиться и получить знания у опытных кодеров. Многие программисты любят делиться знаниями с новичками.
Комментарии (3)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
hidden #2882717 Уровень 2
14 ноября 2021
из какого фильма картинка?
Александр Уровень 35
15 апреля 2021
Предлагаю не называть SQLLite и PostgreSQL базами данных, это ведь СУБД.