Что нового в Amplicode 2024.2

84bc7a0d9e6508e8f6207d56733d820c.png

Мы рады сообщить, что второй мажорный релиз 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.

b0f241b6709a9264c8fc266c55d3068b.png

Кроме иконки с часто используемыми действиями, появился ещё один gutter icon — Bean Navigation, показывающий взаимодействие текущего объекта с другими бинами. 

Из Bean Navigation можно увидеть какие бины заинжектированы в текущий бин и наоборот. Это касается как проектных бинов, так и тех, что используются из сторонних библиотек. Кроме того, если инжектирован интерфейс, можно увидеть всех кандидатов для инжекции. 

7325de8598992c88bb164f91037d43a8.png

Подробнее про gutter иконки от Amplicode я рассказал в отдельном видео. Посмотрите его, чтобы увидеть эту фичу в действии:  

Улучшенная генерация Spring Web тестов  

Мы получили много запросов в наш телеграм-чат с просьбами улучшить генерацию тестов для Spring Web. Ваша активность помогла нам приоритизировать эту функциональность. 

Улучшения в генерации тестов можно разделить на две части: переработка UI и улучшение кода. 

Изменения в UI:  

  1. Теперь методы отсортированы так же, как и в контроллере. 

  2. Рядом с каждым методом отображается связанный с ним путь. 

  3. Элементы для работы с параметрами запроса и телом запроса переработаны, чтобы соответствовать поведению большинства HTTP-клиентов. 

  4. PathVariable и RequestParam теперь можно легко отличить благодаря понятным подписям. 

74704fbbac3e57e874af5f0d5d06155c.png

Изменения в кодогенерации:  

  1. В объекты типа String, представляющие собой JSON, автоматически инжектируется язык JSON, за счёт чего содержимое отображается как JSON файл, а не как обычная строка. 

  2. Уменьшено количество генерируемых локальных переменных. 

  3. Исправлен баг с некорректной передачей нескольких id в запросах. 

b742d682db8e7160eb6b424aaf97b4a7.png

Частичная генерация CRUD REST контроллера 

В предыдущем релизе Amplicode появилась возможность создать CRUD Rest Controller для любой JPA сущности. Теперь можно создавать отдельные методы для REST-контроллеров, а не только весь контроллер целиком. Это особенно удобно, когда нужно добавить новый эндпоинт в уже существующий контроллер. 

Действия по созданию отдельных эндпоинтов доступны в Gutter Icon (1), панели Amplicode Designer (2) и меню «Generate» (3):  

b23eb9b11f85ffbd05be6887fe33f1b2.png

Для каждого HTTP-метода можно указать или создать JPA Repository, DTO/Domain Object, Proxy Service и Request Path.  

9d4a031b08ecb44db96c2614bb9978d0.png

Переиспользование сервисов в Docker Compose  

Docker Compose предлагает несколько способов переиспользования сервисов из одного файла в другой. Один из таких способов подразумевает использование include. 

Ключевое слово include позволяет включить один Docker Compose файл в другой. Этот способ включения одного файла в другой удобен, когда нужно просто переиспользовать одни и те же сервисы без дополнительной конфигурации. 

Amplicode знает про Include в Docker Compose и учитывает его для отображения элементов в панелях Amplicode Explorer и Structure:  

d94635efe050d26de1a180656742f469.png

Но вот если вам нужно настроить переиспользуемые сервисы под свои нужды —   лучше использовать ключевое слово extends. С его помощью, как и с помощью include, можно включить сервис из одного Docker Compose файла в другой, но при этом переопределить любые его свойства.  

3c177a6185091f37a35cd4a8691391ee.png

Amplicode поддерживает эту возможность не только с точки зрения визуального отображения, но и помогает непосредственно во время расширения сервисов. 

Теперь в меню «Generate» вы найдете не только действия для создания сервисов с нуля и рекомендации по генерации сервисов на основе уже объявленных в текущем compose файле, но и действие «Extends Existing Service»:  

3a3843a3488b38f3a57a1db6bda188a9.png

Что самое потрясающее, панель Amplicode Designer в том числе будет учитывать те свойства, которые не объявлены для сервиса в текущем файле, но объявлены в том, на который мы ссылаемся:  

88419b36ce9019a3d5db4f05e157e382.png

Подробнее про эту фичу я рассказал в отдельном видео:  

Поддержка Kubernetes и Helm  

Docker Compose отлично подходит для настройки окружения и деплоя нескольких сервисов на одной машине. Однако для продакшена часто нужны более мощные инструменты, такие как Kubernetes. 

Теперь Amplicode поддерживает Kubernetes и помогает генерировать Helm чарты! Вы можете создавать как пустые Helm чарты, так и готовые чарты для PostgreSQL, Kafka и Spring Boot приложений. 

9ecafbbfb0998abb0a6620e596519046.png

Кроме того, запуск чартов стал еще проще — теперь это можно делать прямо из панели Amplicode Explorer, без необходимости обращаться к консоли:   

246d4077d165d11a3a17015120581323.png

Наконец, состояние запущенных чартов можно проверять в панели Services:   

31146c79712dd81a5e106311b1013131.png

Можно сказать, что поддержка 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 в нашем телеграм-чате. В том числе благодаря вам мы смогли приоретизировать часть фич, которые ждали своего часа в бэклоге, а также исправили некоторые баги :)  

167212bcaa661d2b4ce196d31dec66e6.png

Следующий мажорный релиз запланирован на осень. Но до выхода Amplicode 2024.3 мы будем стабилизировать текущую версию и выпускать обновления с исправлениями. Подписывайтесь на наши ресурсы, чтобы быть в курсе:  

© Habrahabr.ru