Обучение

Сообщение об ошибке

Обучение

Сообщение об ошибке

Чек-лист начинающего Java-разработчика

21 апреля 2022

Java всегда считался одним из самых популярных языков в мире, так как он прост в синтаксисе и очень распространен среди разработчиков. Популярность Java не спадает и до сих пор. По данным TIOBE на апрель 2022 года, Java находится на третьей строчке среди всех языков программирования. Более того, эксперты уверены, что Java еще 10-15 лет будет занимать лидирующие позиции у разработчиков.

А это значит, что сейчас самое время выучить именно этот язык. К тому же! Программированию на Java при желании может обучиться каждый из нас. А чтобы обучение проходило максимально полезно и успешно, мы подготовили для вас полезный и живой материал. Вы узнаете про стэк технологий, который понадобится Java-разработчику для работы, а также найдете классные инсайды!

*Данный чек-лист основан на материалах Владимира Еременко — тренера курса «Программирование на Java».

Что такое Java

Java — популярный язык, который многое взял из С и C++. Это объектно ориентированный язык программирования что дает ему преимущества над многими другими языками. На java разрабатывают различные программные продукты, программы для серверов, мобильные, web, cloud а также десктроп приложения. Для java написаны различные фреймворки, которые сокращают время разработки, делать язык наиболее удобным и читаемым.


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

Какую версию Java использовать

Самые популярные версии на проектах — Java 8 LTS, Java 11 LTS и Java 17 LTS.

Java 17 LTS вышла 14 сентября 2021, и ее только начинают использовать. Это версия, которая будет поддерживаться компанией до 2030 года с возможными вариациями.

Очень много проектов, которые используют и 8 LTS. Поддержка платной версии будет еще долго — до 2025 года, а бесплатной — до сентября 2023. Поэтому бояться, что эта версия устарела и исчезнет, не нужно.

Бесплатная поддержка Java 11 LTS заканчивается раньше — в сентябре 2022 года, платная действует до марта 2026 года.

Конечно, в 11 и 17 версиях много новых фич, которые необходимо использовать в проекте. Но что делать, если вы учили, учите или собираетесь работать с 8 LTS? Во-первых, не паниковать. Во-вторых, писать на 8 LTS и добавлять фичи и знания, которые вам необходимы, из более новых версий. В этом и есть большое преимущество Java.

Какие фреймворки используются на проектах

Основные фреймворки на проектах — Spring, Java Enterprise Edition, Quarkus, Micronaut и Microprofile. Остановимся на каждом подробнее.

— Spring.

Наиболее используемый фреймворк. Сегодня является самым популярным, сейчас разделен на несколько частей.

— Java Enterprise Edition.

Соперник Spring, а также очень на него похож. Самым первым появился для Enterprise решений работы с Java. Ранее был очень громоздким.

— Quarkus.

Заточен на работу с облаками. Главная его фича в том, что данный фреймворк не кроссплатформенный. Quarkus делает компеляцию сразу под виртуальные машины, т.е. разработчики ограничивают возможность передавать код на другие платформы, но за этот счет увеличивают скорость работы.

— Micronaut.

Фреймворк, не такой большой, как Spring, но тоже очень удобный. Micronaut собирает данные для внедрения зависимостей на этапе компиляции. Результат этого быстрое время старта приложений и меньшее потребление памяти.

— Microprofile.

По сути, это набор спецификаций для создания микросервисов. В данный момент он включает в себя 13 спецификаций.


Version Control System (Версии контроля)

Система контроля версий — это система, которая записывает изменения в файл или набор файлов в течение времени и позволяет вернуться позже к определенной версии.

На проектах используется 2 типа версий: централизованная и распределенная. Сегодня более популярная распределенная система. В ней серверы установлены у каждого пользователя и нагрузка идет на локальную машину. К тому же к распределенной системе есть полный доступ. Это дает возможность программировать локально. В централизованной есть один сервер и клиенты, код получается похожим. Хоть в централизованной системе нагрузки на сервер нет, но удобнее использовать как раз распределенную.

Централизованная система контроля версий:

  • CVS

  • Subversion

  • Perforce

Распределенная система контроля версий:

  • Mercurial

  • Bazaar

  • Darcs

  • Git

Implementation Git (Ресурсы для Git)

Git — это система для управления версиями исходного кода программ. Самые популярные ресурсы:

  • GitHub

  • GitLab

  • BitBucket

Если использовать для себя или делать учебные проекты, то в большей степени подойдет BitBucket. Он удобен, так как у него нет сроков. На проектах чаще встречается GitLab и GitHub.

Build tools. Что используется?

Build tools — инструменты управления и сборки проектов. Используется все:

  • Ant

  • Maven

  • Gradle

Однако Ant начинает сдавать позиции, его используют реже, чем Maven и Gradle. Но в нем отлично видно в настройке, как будет строиться проект и его части.

Maven все еще популярен, но уступает первенство Gradle. Работает с xml, но он не строит проект, не выставляет теги, а делает это на зависимостях. В Maven можно подключать плагины, которые делают функционал за нас. В нем все еще много текста и букв, но внутренняя конструкция работает здорово.

Gradle считается самым крутым инструментом управления и сборки проектов. С ним проще и понятнее обращаться. Он немногословен, взял все преимущества Maven и Ant.


Фото с конференции Open IT Gomel, февраль 2022

Swagger/Open API

Swagger — это набор инструментов для описания REST API без доступа к коду. По нему можно быстро создать документацию и отправить ее другим разработчикам или клиентам.

То есть Swagger помогает задокументировать тот запрос, который отправляется. Ту же документацию, которая создавалась на Swagger, можно использовать и для тестирования. Сегодня без Swagger никуда от слова совсем.

Data Base

СУБД — комплекс программ, позволяющих создать БД и манипулировать данными.

Есть два типа баз данных: реляционная и нереляционная.

SQL — реляционные БД:

  • PostgreSQL

  • Oracle DB

  • MySQL

NoSQL — нереляционные БД:

  • MongoDB

  • Redis

  • Cassandra

  • Neo4j

Что же выбрать?

На проектах используется вперемешку оба вида БД. Для личного пользования нужно смотреть, что именно необходимо сделать. Реляционные используют связанные таблицы между собой, а преимущество нереляционных БД в их скорости работы и возможности быть более гибкими. Реляционные задают строгие типы, структуры и связи, а нереляционные — позволяют этого избежать. Из преимуществ обеих БД появилась YugaByte DB.

Object-Relational Mapping

ORM — это технология, которая связывает БД с концепциями объектно-ориентированных языков программирования не напрямую с помощью библиотеки JDBC, а с помощью представления таблиц БД в виде классов Java.

В ORM есть специальные фреймворки — Hibernate и Jooq. Hibernate берет всю работу на себя. Это целая ORM-система, которая позволяет не писать самим запросы в БД. Можно писать методы, которые входят в БД, а Hibernate сам делает всю работу, запросы и т.д.

Jooq — это генератор кода.


Фото с конференции Open IT Gomel, февраль 2022

Linux

Linux — семейство Unix-подобных ОС на базе ядра Linux, включающих тот или иной набор утилит и программ проекта GNU. Как правило, распространяются с моделью разработки свободного и открытого ПО.

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

Desktop:

  • Mint

  • Ubuntu

Server:

  • RHEL

  • Debian

ELK

«ELK stack» — сокращение трех проектов с открытым исходным кодом: Elasticsearch, Logstash, Kibana. Применяется для мониторинга корпоративной инфраструктуры. Предоставляет возможность собирать журналы всех систем и приложений, анализировать и создавать визуализации, чтобы мониторить приложения и инфраструктуры, быстрее устранять неполадки, анализировать систему безопасности и многое другое. Необходимы для разработки.

Elasticsearch — решение полнотекстового поиска;

Logstash — обрабатывает лог события из различных источников. Для Java-разработчика самое важное – уметь читать логи;

Kibana — оперирует данными из Elasticsearch, строит графики и дашборды.

Message-brokers

Apache Kafka и RabbitMQ — брокеры программных сообщений, используются для обмена информацией между различными приложениями. Выстраивают порядок в приложениях.

Характеристики Apache Kafka:

  • сообщения в журнале;

  • балансировка нагрузки;

  • выполняется автоматически;

  • один способ маршрутизации;

  • «глупый» сервер, умный клиент.

Характеристики RabbitMQ:

  • сообщения в FIFO;

  • настраиваемый предел предварительной выборки;

  • 4 способа маршрутизации;

  • умный сервер, «глупый» клиент.


Фото с конференции Open IT Gomel, февраль 2022

Test utilities (Тесты)

Стоит обратить внимание на тесты. Очень часто на проектах бывает ситуация, когда тестирования недостаточно. Тогда проще писать сразу тесты, а потом приложение. Они решают, насколько приложение будет качественным. Тесты работают верно с очень большой вероятностью.

Инфраструктуры для написания и запуска текстов:

  • JUnit

  • TestNG

Библиотеки проверок:

  • FEST Assert

  • Hamcrest

  • XMLUnit

  • HttpUnit

Библиотеки для создания тестовых дублеров:

  • Mockito

  • JMock

  • EasyMock


Чтобы узнать обо всем подробнее, смотри мастер-класс по Java от нашего тренера Владимира Еременко.

А еще Владимир Еременко подготовил для тебя материалы, которые рекомендует всем своим будущим слушателям.

Хочешь сделать первые шаги в IT и начать свой путь в разработке на Java? Запишись на курсы Java-программирования.

Развивайся вместе с IT-Academy! Ждем тебя.


Читай еще

«Через полгода работа сама ищет вас». Почему стоит изучать Java

Java никому не нужна

Профориентирующий Баттл технологий

Артем Перевозников, тренер IT-Academy по Java. Часть 1

Артем Перевозников, тренер IT-Academy по Java. Часть 2


Полная, частичная перепечатка или любое иное использование материалов с сайта IT-Academy разрешается только с указанием активной гиперссылки, ведущей на первоисточник (точный адрес страницы на www.it-academy.by).