Java в чем разрабатывать

Современная серверная разработка на языке Java: 1. Инструменты разработчика

Мы живем в интересное время – практически у каждого человека в кармане лежит небольшой компьютер, имеющий доступ в Интернет. Этот факт обеспечил появление множества востребованных интернет-сервисов. Если раньше имело смысл создавать приложения, которые нужны всем, например, службу электронной почты, то в наши дни из-за массовости проникновения технологии спрос найдет и какая-нибудь экзотика вроде доставки вегетарианской пищи.

Такой разброс «предметных областей» мог бы потребовать тысяч уникальных программных продуктов, множество технологий и разновидностей специалистов. Но так не случилось.

Большая часть возможностей, которые предлагает нам Интернет, обеспечена приложениями на основе микросервисной архитектуры. Микросервис – это независимое приложение, которое умеет выполнять несколько взаимосвязанных функций по запросам от других микросервисов, либо от пользовательского интерфейса.

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

Так может выглядеть микросервисная архитектура интернет-магазина

Микросервисы независимы, легко переиспользуются или заменяются. А главное — они сравнительно просты и, зачастую, однотипно устроены. Достаточно написать один-два, и программист может создавать их быстро и очень много, большую часть позаимствовав из других проектов. Например, хорошо написанный сервис User Manager можно затем переиспользовать в любых проектах, где есть авторизация пользователей. Хорошо написанные сервисы продуктовых каталогов и заказов можно использовать в любом новом проекте, связанном с продажами через Интернет.

Это руководство поможет Вам освоить современную серверную Java-разработку на примере написания стандартного микросервиса.

Читайте также:  Read binary files in java

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

Первая часть «Инструменты разработчика» расскажет о типовом наборе средств, которые ежедневно используются в нашей работе:

  • Java Development Kit – комплект Java-разработчика
  • IntelliJ IDEA – среда разработки
  • Gradle – система автоматической сборки
  • Git – система управления версиями

Вторая часть «Архитектура приложения» посвящена тому, как устроен типовой Java-сервис:

  • Spring Boot – платформа (framework) для написания приложений на Java
  • DTO – объекты для передачи данных
  • REST-контроллеры – обработчики запросов
  • Валидация – проверка корректности данных
  • Модели – представления о сущностях
  • Liquibase – создание и подключение к базе данных
  • DAO-слой – взаимодействие с базой данных
  • Сервисный слой – бизнес-логика
  • Обработка исключений – что делать, если что-то пошло нет так
  • Scheduler – запуск обработки без запроса
  • Kafka – обмен сообщениями с другими приложениями
  • Application.yml – конфигурация приложения
  • Транзакции – позаботимся о целостности данных

Третья часть «Тестирование» поможет написать тесты для вашего приложения:

  • JUnit – тестирование классов проекта, профили приложения
  • MockMvc – тестирование REST-контроллеров
  • Run Tests With Coverage – проверяем покрытие тестами
  • Rest Assured – тестирование web-сервисов
  • Selenium-java – frontend-тестирование

Четвертая часть «Контейнеризация приложений» познакомит вас с тем, каким образом запускаются и работают приложения в промышленных средах:

  • Дистрибутивы – отдаем приложение в эксплуатацию
  • Docker – средство контейнеризации приложений
  • Kubernetes – средство оркестровки приложений

В четвертой части «Разное» будет рассказано о важных мелочах, которые помогут влиться в команду профессионалов:

  • Форматирование кода – каким должен быть Java-код
  • Code Review – обсуждение доработок
  • Merge Conflict – что делать, если возник конфликт веток
  • Markdown – разметка форматирования текста
  • OpenAPI – framework для описания REST-сервисов
  • JSON Web Token – токены доступа
  • SSL/HTTPS – включаем шифрования трафика
  • Maven – еще один стандартный сборщик проектов
  • Jira – средство планирования разработки
  • Stand-up – общение с командой
  • Собеседование – как получить работу своей мечты

«Список литературы» — книги, которые надо прочитать

Часть 1. Инструменты разработчика

В этой части мы установим на компьютер средства, необходимые разработчику: JDK, IDEA и Git. Затем создадим новый проект и репозиторий для него. А также научимся вносить в проект изменения так, как это принято при командной разработке.

Java Development Kit

Java Development Kit – это первый, обязательный и минимально-необходимый инструмент Java-разработчика. Без него невозможна компиляция Java-программ.

Важно – не путайте Java Runtime Environment (JRE) и Java Development Kit (JDK). Первое позволяет только запускать уже скомпилированные Java-программы.

Прежде чем скачивать и устанавливать JDK на компьютер, получите информацию о версии JDK, которая используется на проекте. Если такой информации нет, установите последнюю LTS версию – 17 (к середине 2022 года).

На момент, когда пишутся эти строки, уже существует 18 версия, а когда вы будете их читать, наверняка будут 19, 20 и 21 версии. Но надо учитывать, что не каждая версия имеет статус Long Term Support (LTS), предполагающий поступление обновлений для нее.

История появления последних версий JDK

Источник

Среды разработки Java

Пришло время перейти от особенностей языка к программам, которые помогут писать код быстрее и правильнее. Среда разработки (IDE — Integrated Development Environment) включает в себя:

Одни среды разработки содержат все это из коробки, другие доводятся до этого статуса с подключением плагинов и модулей. Вот 10 лучших IDE для java на сегодняшний день.

IntelliJ IDEA

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

Стоимость: 499$ за первый год работы.

NetBeans

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

Eclipse

Описание: У этой IDE самое больше сообщество разработчиков, отсюда же и самое внушительное количество плагинов. Обратная сторона — многие из них сомнительного качества и содержания. Полезна данная система ещё и как инструмент мультиязычной разработки — количество поддерживаемых языков благодаря энтузиастам превышает 20. Кроме того, это одна из лучших сред java разработки для android.

Codenvy

Описание: Главный акцент — удобство работы пользователя. В первую очередь это касается интуитивно понятного интерфейса, отсутствия перегруженности инструментами, возможности многопользовательского доступа к коду. Стандартные «фичи» вроде подсветки кода, рефакторинга, автозаполнения и поддержки Docker — в наличии.

Стоимость: Бесплатно для одного пользователя и ограниченного объёма. Для командной разработки — 10-20$ в месяц за память и членов команды.

Eclipse che

Описание: Совместный проект Eclipse и Codenvy, имеющий облачный фундамент. Поддерживает множество типов приложений и систем сборки для быстрой разработки. Огромное количеств плагинов и надстроек из сообщества прилагается.

BlueJ

Описание: Среда разработки для тех, кто только делает свои первые шаги в программировании, то есть школьников и студентов. Здесь простой интерфейс, минимум функций и почти нет пользовательских настроек, зато имеется версия среды java разработки на русском языке.

Greenfoot

Описание: Среда джава разработки для самых маленьких. В основе лежит обучение Java через графический интерфейс и игры, вроде того, как это реализовано в Scratch или Logo. Для серьёзной разработки Greenfoot не подходит категорически.

DrJava

Описание: Ещё одна простая и легковесная (всего 13 МБ) IDE для написания кода. Ориентирована на студентов, может быть установлена в качества плагина в Eclipse для дальнешего перехода на более функциональную платформу.

JDeveloper

Описание: Бесплатная среда ява разработки от Oracle. Позволяет максимально задействовать декларативный и визуальный подход к разработке. Имеет 2 исполнения: Java Edition и Studio Edition. Первая версия представляет общий функционал разработки, вторая — создание коммерческих приложений.

Android Studio

Описание: профильная среда java разработки на Android. В основе лежит IntelliJ IDEA, оптимизированная под решение конкретных мобильных задач: рефакторинга, сборки, шаблонизации, поиска причин низкой производительности и её увеличения. br —> Рекомендуем посмотреть мастер-класс по созданию клиент-серверного приложения на базе Android.

Данный список java IDE далеко не полон и охватывает лишь наиболее популярных представителей. Поэтому прежде, чем выбрать фаворита, помните, что лучшая среда java-разработки — та, что позволяет решить текущую задачу с минимальным количеством приложенных усилий и с наилучшим результатом.

Источник

Оцените статью