Обучение

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

Обучение

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

Чек-лист начинающего 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).