Обучение
- AI. Работа с нейросетями
- Подготовительные курсы
-
Программирование
- Промышленная разработка программного обеспечения на Java
- Промышленная разработка ПО на ASP.NET
- Разработка игр на Unity
- Курсы создания сайтов и Front-end разработки
- Разработка мобильных приложений под iOS
- Разработка мобильных приложений на Android
- Разработка веб-приложений на PHP
- Разработка веб-приложений на Python
- Разработка на C++
- Разработка игр на С++
- Разработка на Node.js
- Программирование на Go (Golang)
- Реляционные базы данных и SQL
- Веб-разработка на Ruby on Rails
- 1С программирование
- Fullstack
- Наука о данных
- Тестирование ПО
- Центр профессионального развития
- IT Bootcamp
- Гуманитарные и экономические дисциплины в IT
- Управление проектами и продуктами
- Бизнес- и системный анализ
- Веб-дизайн и компьютерная графика
- Системное и сетевое администрирование
- Информационная безопасность
- Маркетинг и продажи
- Английский язык для IT
Обучение
- AI. Работа с нейросетями
- Нейросети: практическое применение
- Искусственный интеллект в управлении командами и процессами
- Программирование
- Промышленная разработка программного обеспечения на Java
- Промышленная разработка ПО на ASP.NET
- Разработка игр на Unity
- Курсы создания сайтов и Front-end разработки
- Разработка мобильных приложений под iOS
- Разработка мобильных приложений на Android
- Разработка веб-приложений на PHP
- Разработка веб-приложений на Python
- Разработка на C++
- Разработка игр на С++
- Разработка на Node.js
- Программирование на Go (Golang)
- Реляционные базы данных и SQL
- Веб-разработка на Ruby on Rails
- 1С программирование
- Тестирование ПО
- Ручное тестирование ПО
- Мобильное тестирование приложений
- Автоматизированное тестирование на Python
- Автоматизированное тестирование на Java
- Автоматизированное тестирование на JavaScript
- Автоматизированное тестирование на C#
- Тестирование безопасности
- Гуманитарные и экономические дисциплины в IT
- Technical writing
- IT HR
- PR в IT
- Управление финансами в IT
- Управление проектами и продуктами
- Project management
- Product management: Основы управления IT-продуктом
Чек-лист начинающего Java-разработчика
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
Профориентирующий Баттл технологий
Артем Перевозников, тренер IT-Academy по Java. Часть 1
Артем Перевозников, тренер IT-Academy по Java. Часть 2