Java Developer 2024 PRO

Где учить

ИнструментГде учитьКомментарий
JavaФилософия Java. 4-е издание. (Брюс Эккель)

Thinking in Java 4th Edition
by Bruce Eckel (Author)
Основы
JavaComputer Science Center (CS центр)
Stepik
Java. Базовый курс
Углубленный интерактивный курс
JavaLeetCodeПодготовка к собеседованиям — интерактивные задачи
GitОфициальная документацияСистема контроля версий для исходного кода
SpringКрейг Уоллс – Spring в действии, 6-е издание (2022)Список компонентов Spring
SQLОфициальная документацияPostgreSQL (PL/PG SQL)
SDK MANОфициальная документацияИнструмент для установки Java, Gradle, Maven и прочих программ. А так же переключении между их версиями.
GradleYouTubeСборщик Java проектов. Считается лучше чем Maven, но требует знание языка Groovy или Kotlin DSL.
Docker
Bash

Java

Версий Java много, но не стоит уделять внимания версиям без долгосрочной поддержки.

Остановимся на версиях с долгосрочной поддержкой LTS:

Long-Term-Support (LTS) releases. Java SE 8, 11, 17 and 21 are LTS releases.

В данном руководстве мы будем использовать последнюю версию на текущий момент это 21.
В Enterprise проектах в большинстве случаев используется 11 версия, в новых 17, в legacy коде 8.

Рекомендую использовать JDK от Oracle или OpenJDK. От Oracle обычно работает стабильнее и быстрее.

Мы будем использовать Java 17.0.9.

GIT и хостинг репозиториев

Систем контроля версий (version control system, VCS или revision control system) очень много, но де факто она одна и это GIT.

Для хранения проекта рекомендую использовать GitLab, так как он имеет один из самых популярных CI/CD и позволит нам в дальнейшем раскатить проект на сервер. Если же CI/CD GitLab покажется мало, то рекомендую использовать TeamCity и писать таски на Kotlin DSL.

Мы будем использовать GitLab

Другие популярные хостинги для исходного кода: GitHub, BitBucket

Инструменты сборки

Gradle на Groovy

Gradle — это build tool (Java программа) для автоматизации сборки проектов, построенная на принципах Apach Ant и Apach Maven, но предоставляющая более удобный DSL (Domain Specific Language) на языках Groovy (Kotlin) вместо XML формата. Первый релиз в 2007 году. Gradle это OpenSource проект, т.е. проект с открытым исходным кодом, исходный код Gradle можно найти в репозитории на GitHub.

Gradle удобнее, так как не имеет неудобного формата XML для настройки конфигурации, в отличии от Maven. Но минусом является то, что нужно изучить язык Groovy или Kotlin DSL.

Мы будем использовать Gradle 8.5 на Groovy.

Spring Framework

Spring — это фреймворк с открытым исходным кодом для языка программирования Java. Он был создан для упрощения разработки и поддержки масштабируемых, слабосвязанных и повторно используемых приложений.

Компоненты Spring

Полный список компонентов: https://spring.io/projects

КомпонентОписание
1Spring FrameworkApplication Context, DI, JavaBean
2Spring BootАвтоматическое связывание экземпляров классов
3Spring DataConnection to Database
4Spring SecurityБезопасность
5Spring WebМикросервисы RESTFull

Мы будем использовать Spring Boot 3.x он работает с версиями Java 17 и выше.

База данных

Во времена импортозамещения самая востребованная СУБД стала PostgreSQL

Мы будем использовать PostgreSQL версии 16

Application Context — это главный интерфейс в Spring-приложении, который предоставляет информацию о конфигурации приложения.

Dependency injection (Внедрение зависимости, DI, принцип инверсии контроля, Inversion of Control, IoC) — это процесс предоставления программному компоненту внешней зависимости.

Простыми словами, Spring создает экземпляры классов, внедряет в них зависимости (DI) — экземпляры других классов, помещает их в Application Context и управляет их жизненным циклом. JavaBean (их еще называют Plain Old Java Object (POJO) — старый добрый объект Java — это концепция, а не конкретный тип объекта. По своей сути, это простой Java класс, который соответствует определенным соглашениям по именованию и дизайну. Например, экземпляры классов в Application Context.

Реализация DI в Spring Framework

Определения конфигурации зависимостей внутри приложений разными путями:
— внешне в XML-файлах;
— посредством конфигурационных Java-классов Spring;
— с помощью Java-аннотаций в коде

Оцените автора
Kosenkov.Pro
Добавить комментарий