Мы рады сообщить, что второй мажорный релиз Amplicode в 2024 году успешно состоялся. В этом релизе представлено множество улучшений и исправлений, а также много новых фич. Вот некоторые из них:
- Gutter Icons для Spring-объектов;
- Улучшенная генерация Spring Web тестов;
- Поддержка Extends и Include в Docker Compose;
- Генерация отдельных HTTP-методов для REST-контроллеров;
- Поддержка Kubernetes и Helm.
Подробнее о каждой из этих фич читайте ниже!
Gutter Icons – один клик до самых важных действий
Теперь вместо Editor Toolbar в Spring-объектах, JPA-сущностях и тестах Spring Boot вы увидите gutter icons (gutter иконки) напротив названий классов. Одна из них содержит часто используемые действия, ранее доступные в Editor Toolbar.
Кроме иконки с часто используемыми действиями, появился ещё один gutter icon – Bean Navigation, показывающий взаимодействие текущего объекта с другими бинами.
Из Bean Navigation можно увидеть какие бины заинжектированы в текущий бин и наоборот. Это касается как проектных бинов, так и тех, что используются из сторонних библиотек. Кроме того, если инжектирован интерфейс, можно увидеть всех кандидатов для инжекции.
Подробнее про gutter иконки от Amplicode я рассказал в отдельном видео. Посмотрите его, чтобы увидеть эту фичу в действии:
Улучшенная генерация Spring Web тестов
Мы получили много запросов в наш телеграм-чат с просьбами улучшить генерацию тестов для Spring Web. Ваша активность помогла нам приоритизировать эту функциональность.
Улучшения в генерации тестов можно разделить на две части: переработка UI и улучшение кода.
Изменения в UI:
- Теперь методы отсортированы так же, как и в контроллере.
- Рядом с каждым методом отображается связанный с ним путь.
- Элементы для работы с параметрами запроса и телом запроса переработаны, чтобы соответствовать поведению большинства HTTP-клиентов.
- PathVariable и RequestParam теперь можно легко отличить благодаря понятным подписям.
Изменения в кодогенерации:
- В объекты типа String, представляющие собой JSON, автоматически инжектируется язык JSON, за счёт чего содержимое отображается как JSON файл, а не как обычная строка.
- Уменьшено количество генерируемых локальных переменных.
- Исправлен баг с некорректной передачей нескольких id в запросах.
Частичная генерация CRUD REST контроллера
В предыдущем релизе Amplicode появилась возможность создать CRUD Rest Controller для любой JPA сущности. Теперь можно создавать отдельные методы для REST-контроллеров, а не только весь контроллер целиком. Это особенно удобно, когда нужно добавить новый эндпоинт в уже существующий контроллер.
Действия по созданию отдельных эндпоинтов доступны в Gutter Icon (1), панели Amplicode Designer (2) и меню «Generate» (3):
Для каждого HTTP-метода можно указать или создать JPA Repository, DTO/Domain Object, Proxy Service и Request Path.
Переиспользование сервисов в Docker Compose
Docker Compose предлагает несколько способов переиспользования сервисов из одного файла в другой. Один из таких способов подразумевает использование include.
Ключевое слово include позволяет включить один Docker Compose файл в другой. Этот способ включения одного файла в другой удобен, когда нужно просто переиспользовать одни и те же сервисы без дополнительной конфигурации.
Amplicode знает про Include в Docker Compose и учитывает его для отображения элементов в панелях Amplicode Explorer и Structure:
Но вот если вам нужно настроить переиспользуемые сервисы под свои нужды — лучше использовать ключевое слово extends. С его помощью, как и с помощью include, можно включить сервис из одного Docker Compose файла в другой, но при этом переопределить любые его свойства.
Amplicode поддерживает эту возможность не только с точки зрения визуального отображения, но и помогает непосредственно во время расширения сервисов.
Теперь в меню «Generate» вы найдете не только действия для создания сервисов с нуля и рекомендации по генерации сервисов на основе уже объявленных в текущем compose файле, но и действие «Extends Existing Service»:
Что самое потрясающее, панель Amplicode Designer в том числе будет учитывать те свойства, которые не объявлены для сервиса в текущем файле, но объявлены в том, на который мы ссылаемся:
Подробнее про эту фичу я рассказал в отдельном видео:
Поддержка Kubernetes и Helm
Docker Compose отлично подходит для настройки окружения и деплоя нескольких сервисов на одной машине. Однако для продакшена часто нужны более мощные инструменты, такие как Kubernetes.
Теперь Amplicode поддерживает Kubernetes и помогает генерировать Helm чарты! Вы можете создавать как пустые Helm чарты, так и готовые чарты для PostgreSQL, Kafka и Spring Boot приложений.
Кроме того, запуск чартов стал еще проще – теперь это можно делать прямо из панели Amplicode Explorer, без необходимости обращаться к консоли:
Наконец, состояние запущенных чартов можно проверять в панели Services:
Можно сказать, что поддержка Kubernetes находится на стадии preview, и мы будем рады вашей обратной связи, чтобы улучшить функциональность в соответствии с вашими потребностями :)
И это ещё не всё!
На самом деле, это далеко не всё, что вошло в релиз Amplicode 2024.2. Помимо крупных новых фич, мы внесли множество мелких улучшений и исправлений – всего было закрыто более 170 тикетов!
Напомню, что текущая версия Amplicode на данный момент доступна для 2-х версий IntelliJ IDEA: 2023.3, 2024.1. Поддержать IntelliJ IDEA 2024.2 мы планируем в ближайшее время. Если вы испытываете трудности с переходом на новые версии IntelliJ IDEA, вы всё ещё можете скачать и уставновить Amplicode 2024.1, он доступен для бóльшего количества версий IntelliJ IDEA.
Огромное спасибо всем, кто делится своим опытом использования Amplicode в нашем телеграм-чате. В том числе благодаря вам мы смогли приоретизировать часть фич, которые ждали своего часа в бэклоге, а также исправили некоторые баги :)
Следующий мажорный релиз запланирован на осень. Но до выхода Amplicode 2024.3 мы будем стабилизировать текущую версию и выпускать обновления с исправлениями. Подписывайтесь на наши ресурсы, чтобы быть в курсе: