Недавно СБЕР выпустил GigaIDE — новую IDE для Java, Kotlin и не только. Это событие вызвало бурные обсуждения среди разработчиков. Чаще всего звучали следующие вопросы:
Это просто пересобранная версия IntelliJ IDEA CE?
Если нет, что нового предлагает GigaIDE?
Поддерживает ли она работу с базами данных и Spring?
Сегодня отвечу на эти и другие вопросы, которые могут возникнуть у тех, кто заинтересовался GigaIDE.
Обзор также доступен в формате видео на YouTube:
GigaIDE в двух словах
На сайте GitVerse можно увидеть, что IDE будет доступна в двух форматах: Desktop и Cloud.
![](https://habrastorage.org/getpro/habr/upload_files/cc0/4e0/f5b/cc04e0f5b13e3274b2d57643ecadf406.png)
Cloud-версию пока можно получить только по запросу на ранний доступ.
![](https://habrastorage.org/getpro/habr/upload_files/05d/7d7/ceb/05d7d7ceb3ddb8dd857b97f433e72d4f.png)
Но нас, как Java-разработчиков, больше интересует Desktop версия, и сейчас объясню почему.
Cloud версия основывается на VS Code, а Desktop версия — на IntelliJ IDEA и PyCharm.
![](https://habrastorage.org/getpro/habr/upload_files/03e/1e8/9e2/03e1e89e2f7bd5b27e62320d111a8825.png)
Благодаря такой мощной базе в виде IntelliJ IDEA, разработчики на GigaIDE сразу получают поддержку Java и Kotlin. К тому же, в комплекте с GigaIDE идет еще 70 дополнительных инструментов, или простыми словами — предустановленных плагинов.
![](https://habrastorage.org/getpro/habr/upload_files/c55/c5a/05d/c55c5a05d711f93c2a437d49385331de.png)
Однако из описания на сайте сложно понять, что мы, как разработчики, привыкшие к IntelliJ IDEA, потеряем или приобретем, осуществив переход на GigaIDE. Давайте разбираться!
Установка и первый запуск GigaIDE
Для получения доступа к инструкции по установке нужно пройти авторизацию на GitVerse через cloud.ru или Сбер ID.
На просторах интернета также можно найти ссылки для прямого скачивания установочных образов. Установка GigaIDE проста и поддерживается на основных операционных системах. Если вы сидите на MacOS, то не забудьте после установки запустить следующую команду:
xattr -c /Applications/GIGA\ IDE\ CE\ 2024.1.1.app
После запуска GigaIDE вы заметите, что она довольно сильно похожа на IntelliJ IDEA, что неудивительно, так как она базируется на open-source IDE от Jetbrains — IntelliJ IDEA Community Edition.
![](https://habrastorage.org/getpro/habr/upload_files/5b3/2c7/268/5b32c726841887c233bcea67a9192d57.png)
Следовательно, все возможности, которые у нас есть в IntelliJ IDEA Community Edition, также доступны и в GigaIDE! Но вот что это за возможности?
Ликбез: IntelliJ IDEA CE vs Ultimate
IntelliJ IDEA выпускается в двух версиях: платная Ultimate и бесплатная Community. Ultimate включает дополнительные плагины, недоступные в Community версии. Эти плагины делают Ultimate более функциональной, но основные возможности, такие как поддержка Java и Kotlin, рефакторинг, инспекции и многое другое доступны и в той и в другой версиях.
-
Поддержка Java и Kotlin в обеих версиях включает подсветку кода, выявление синтаксических ошибок и автодополнения.
-
Обе IDE предлагают рефакторинг кода, позволяя переименовывать методы, классы и пакеты, а также выносить и инлайнить методы.
-
Инспекции и подсказки по улучшению кода также присутствуют и там и там, хотя в Ultimate их больше и есть специфичные именно для фреймворков, таких как Spring.
-
Обе версии поддерживают Git.
-
И наиболее популярные системы сборки Maven и Gradle.
-
Также обе версии содержат дебаггер. Хотя в Ultimate он более продвинутый и включает поддержку реактивного стека.
-
А вот работать с базами данных из коробки может только IntelliJ IDEA Ultimate.
В Community Edition такой возможности нет, но можно получить схожую функциональность, если установить плагин Database Navigator.
-
Также в состав Community Edition не входит HTTP клиент.
Пожалуй, самое важное, чего нет в Community Edition, и про что я уже отчасти упоминал — отсутствие поддержки Spring Framework. Опять же, сейчас поддержку Spring в Community Edition получить проще простого, достаточно установить Amplicode, но из коробки он не предустановлен.
Кажется, что это основные фичи, без которых современную IDE трудно представить, и получается, что как минимум первые шесть фич точно есть в GigaIDE, а вот с наличием остальных нужно разбираться отдельно.
Возможности |
IntelliJ IDEA Ultimate |
IntelliJ IDEA Community |
1. Java/Kotlin |
+ |
+ |
2. Рефакторинги |
+ |
+ |
3. Инспекции |
+ |
+ |
4. Git |
+ |
+ |
5. Gradle/Maven |
+ |
+ |
6. Debugger |
+ |
+ |
7. Database Tools |
+ |
- |
8. HTTP Client |
+ |
- |
9. Spring Framework |
+ |
- |
70 плагинов в GigaIDE
Давайте посмотрим, какие 70 плагинов входят в состав GigaIDE и позволяют ли они нам закрыть в том числе потребность в тех фичах, которых не хватает в IntelliJ IDEA CE по сравнению с Ultimate. А может быть даже есть что-то такое крутое, чего нет в Ultimate?
Первое, что бросается в глаза, — это предустановленный плагин Database Navigator, который обеспечивает поддержку работы с базами данных. Отлично!
![](https://habrastorage.org/getpro/habr/upload_files/1bc/be1/f6c/1bcbe1f6cfaca7201cc6a6591aa30de1.png)
Присутствует также плагин JSONPath, что приятно, так как он облегчает работу с JSON-файлами.
![](https://habrastorage.org/getpro/habr/upload_files/909/a3d/816/909a3d8167708a66b83c7b4050a905b7.png)
Предустановлены плагины для Lombok, Quarkus и даже Spring. Позже мы запустим проект на Spring Boot и проверим их в действии.
![](https://habrastorage.org/getpro/habr/upload_files/010/47b/0c5/01047b0c5815dd9c3940c976d304d2a5.png)
Есть множество плагинов для поддержки различных языков и типов файлов, что тоже хорошо.
![](https://habrastorage.org/getpro/habr/upload_files/aa4/5f6/258/aa45f6258ad4fe43387fdb500c0eb586.png)
Особое внимание разработчики GigaIDE уделяют функциям, связанным с искусственным интеллектом. На лендинге упоминается GigaChat, он здесь также установлен, как и несколько, по всей видимости, вспомогательных плагинов, связанных с машинным обучением. По сути своей, GigaChat является альтернативой плагину AI Assistant от JetBrains.
![](https://habrastorage.org/getpro/habr/upload_files/d1c/da0/a6d/d1cda0a6d8ac814627b104d4865c179d.png)
Некоторые плагины, предназначенные для фронтенд-разработчиков.
![](https://habrastorage.org/getpro/habr/upload_files/a5a/618/6ec/a5a6186ecf9e0474e9e4dcf021216369.png)
MapStruct-плагин и VCS-плагины, знакомые по IntelliJ IDEA CE.
![](https://habrastorage.org/getpro/habr/upload_files/393/440/715/3934407158101899da9d240ca754308c.png)
Особо стоит отметить LSP плагин, разработанный командой RedHat, он позволяет IDE поддерживать любой язык программирования, для которого есть language server.
![](https://habrastorage.org/getpro/habr/upload_files/c28/b60/070/c28b600709251263db0222063fb67e7f.png)
В целом, это основные плагины. Я, конечно, пропустил многие, но большинство из них также входят в состав IntelliJ IDEA CE или слишком узкоспециализированы и не так часто используются Java и Spring разработчиками.
Также стоит отметить, что, по всей видимости, СБЕР пересобрал все плагины, которые вошли в состав сборки. Понять это можно, сравнив версию плагина, доступного в маркетплейсе и входящего в состав GigaIDE. Звучит логично, ведь как будто только таким образом можно будет гарантировать стабильность и возможность выпускать багфиксы по заявкам.
![](https://habrastorage.org/getpro/habr/upload_files/dc9/ee3/bbd/dc9ee3bbd11e7a47bc728a3a03db7523.png)
Возвращаясь к сравнению, имеется Marketplace, такой же, как в IntelliJ IDEA, где можно установить любые привычные плагины. Будь то Docker, доступный в официальном маркетплейсе JetBrains, или Amplicode, для которого потребуется настроить кастомный маркетплейс.
Итак, GigaIDE от СБЕРа из коробки закрывает 8 из 9 необходимых возможностей IDE, которые мы ожидаем увидеть.
Возможности |
Giga IDE |
1. Java/Kotlin |
+ |
2. Рефакторинги |
+ |
3. Инспекции |
+ |
4. Git |
+ |
5. Gradle/Maven |
+ |
6. Debugger |
+ |
7. Database Tools |
+ |
8. HTTP Client |
- |
9. Spring Framework |
+ |
Давайте проверим на практике, насколько хорошо она это делает.
Работа с базами данных
Очевидно, что функции, которые есть в IntelliJ IDEA CE, будут без проблем работать в GigaIDE. Поэтому, чтобы не растягивать эту статью, проверим только возможность работы с базами данных и поддержку Spring Framework.
Привычной панели с иконкой базы данных сходу обнаружить не получилось. Для того, чтобы до неё добраться, нужно найти пункт «Database Navigator» в верхней панели и выбрать «Database Browser».
![](https://habrastorage.org/getpro/habr/upload_files/992/34d/9c8/99234d9c89437dc2161101133a8f1e51.png)
По сравнению с IntelliJ IDEA Ultimate выбор поддерживаемых СУБД здесь не такой обширный. Однако вкладка «Custom» даёт надежду на поддержку дополнительных баз данных, не упомянутых в списке.
![](https://habrastorage.org/getpro/habr/upload_files/604/054/677/604054677efe08c002f66dca1044a57f.png)
Как и в IntelliJ IDEA Ultimate, панель с настройками в GigaIDE действительно впечатляет своим функциями. Кажется, что можно настроить практически всё что угодно.
![](https://habrastorage.org/getpro/habr/upload_files/441/836/236/44183623626c81809f8a48a5087f47fe.png)
Давайте настроим простое подключение к PostgreSQL, поднятому локально в Docker, и убедимся, что всё работает как ожидается.
Интерфейс немного отличается, но те функции, к которым я привык, такие как просмотр структуры базы данных и выполнение SQL-запросов прямо из IDE, здесь доступны.
![](https://habrastorage.org/getpro/habr/upload_files/909/9de/0c4/9099de0c4bfbc92236f07e9258818a15.png)
В общем, поддержка работы с базами данных в некоторой степени имеется.
Проверка поддержки Spring в GigaIDE
Для проверки поддержки Spring откроем в GigaIDE популярное демо-приложение Spring Petclinic. В файле application.properties нет подсветки и автодополнений, в отличие от Ultimate.
![](https://habrastorage.org/getpro/habr/upload_files/a0b/b4d/f11/a0bb4df1177093558a1b8f375573b1a4.png)
Признаюсь, пока я тестировал GigaIDE, иногда подсветка свойств появлялась, но стабильной работы добиться не удалось, как и запечатлеть эту фичу на видео. Эта функция должна быть доступна благодаря плагину Spring Boot Assistant, но, видимо, он работает не очень стабильно.
В JPA-сущностях отсутствуют gutter-иконки, которые позволяют увидеть информацию о классе и его атрибутах в контексте фреймворка.
![](https://habrastorage.org/getpro/habr/upload_files/b16/666/be4/b16666be4a5b6ff916e293ac99e3b53b.png)
В контроллере GigaIDE показывает, что все эндпоинты не используются, что неверно, так как они используются, но не нами напрямую, а фреймворком. Это поведение схоже с IntelliJ IDEA CE.
![](https://habrastorage.org/getpro/habr/upload_files/fe6/55a/700/fe655a70044dd0cbda90f208fcc3f4e1.png)
В Spring Data репозиториях нет подсветки JPQL, gutter-иконок и автодополнений для методов на основе модели данных. Подсказки от ИИ присутствуют, но работают не всегда корректно.
![](https://habrastorage.org/getpro/habr/upload_files/256/444/fbd/256444fbd04365f384b38cc0456f62e5.png)
Поля, аннотированные @Autowired
, в классах с тестами отмечены как неиспользуемые, что также неверно.
![](https://habrastorage.org/getpro/habr/upload_files/2e9/e34/41a/2e9e3441a3c5e5c3ecce025a470deca1.png)
Наконец, зайдём в docker-compose.yaml файл. Нет gutter-иконок, но есть предложение установить Docker-плагин. Почему-то он сразу не предустановлен, что немного странно.
![](https://habrastorage.org/getpro/habr/upload_files/805/0fc/ff2/8050fcff2a9595460a37f475c516a6ae.png)
Однако, установив плагин, мы получаем то же самое, что и в Ultimate IDE.
![](https://habrastorage.org/getpro/habr/upload_files/837/39f/980/83739f98031c4785383ef397b884cc8d.png)
Одним словом, поддержки Spring на данный момент в GigaIDE практически нет. Забегая вперёд, можно сказать, что это не такая уж и большая проблема, так как есть Amplicode, и про него я расскажу в следующей главе. К тому же, по заверениям разработчиков GigaIDE, поддержка Spring должна появиться к концу 2024 года. Что ж, будем ждать!
GigaIDE + Amplicode: Включаем поддержку Spring и не только
Поскольку GigaIDE основана на IntelliJ, мы можем без проблем установить в неё Amplicode. Для этого откроем настройки, перейдём в секцию плагинов и:
Нажмём на шестерёнку
Выберем пункт "Manage Plugin Repositories"
Скопируем ссылку на репозиторий из документации Amplicode
Вставим её в GigaIDE
![](https://habrastorage.org/getpro/habr/upload_files/979/112/019/979112019b59a372e0af0b75121c9485.png)
Остается только найти Amplicode в маркетплейсе, нажать кнопку «Install» и перезапустить GigaIDE.
![](https://habrastorage.org/getpro/habr/upload_files/775/923/bf9/775923bf96203401d89d062e7db64aeb.png)
Всё, теперь все возможности Amplicode доступны и в GigaIDE. Я не буду подробно останавливаться на них, вы можете посмотреть любое видео на нашем YouTube-канале, и все показанные в нём фичи будут доступны точно так же и в GigaIDE.
Лишь вкратце перечислю то, чего раньше не было:
-
Свойства теперь подсвечиваются, а если начать писать название нужного свойства, появляется автокомплишн.
-
Теперь напротив названия класса JPA сущности есть две gutter-иконки от Amplicode. Одна анализирует связи текущего объекта с другими сущностями, репозиториями и DTO (1), а вторая позволяет обращаться к наиболее популярным действиям над сущностями (2).
-
Все эндпоинты контроллера корректно подсвечиваются как используемые. Доступны две gutter-иконки от Amplicode с необходимыми действиями для контроллера (1), а также бин-навигацией с предпросмотром кода (2), которая, на мой взгляд, даже круче, чем в Ultimate!
-
В Spring Data репозиториях теперь есть подсветка JPQL, два геттера и подсказки при написании методов репозитория на основе информации о модели данных.
-
Autowired бины в тестах теперь не подсвечиваются как неиспользуемые.
-
В Docker Compose файле появилась возможность сгенерировать различные сервисы, используя панель Amplicode Designer.
Кстати, эта же панель доступна во всех файлах, которые мы смотрели ранее. С её помощью можно сгенерировать новые элементы для текущего файла или отредактировать существующие.
-
Наконец, вы также можете найти панель Amplicode Explorer, которая позволяет проанализировать приложение в контексте используемых технологий.
Подводя итог, выбирайте сами, где вам использовать Amplicode — в IntelliJ IDEA Community, которая всё ещё доступна для скачивания из РФ, в GigaIDE от СБЕРа или в IntelliJ IDEA Ultimate. Amplicode работает на всех IDEA-совместимых средах разработки. А если вы заметите, что какая-то из фич работает некорректно, пожалуйста, напишите нам в телеграм-чат, и мы постараемся исправить проблему как можно быстрее.
Более подробно про основные возможности Amplicode я рассказывал в отдельном видео:
Заключение
Подводя итог, можно отметить следующие положительные аспекты GigaIDE. Российский вендор собрал open‑source версию IntelliJ IDEA, интегрировал в неё десятки плагинов, в том числе «воскресив» некоторые из них из пепла, что было бы невозможно сделать самостоятельно без серьёзных трудозатрат и экспертизы.
К минусам можно отнести не совсем полную свободу скачивания, всё-таки нужен Сбер или Cloud ID, а также пока что полное отсутствие поддержки Spring. Но, как я уже упоминал, и первый, и второй минусы можно нивелировать, воспользовавшись прямыми ссылками для скачивания GigaIDE и установив Amplicode в качестве главного инструмента для поддержки Spring.
Делитесь своим опытом использования GigaIDE в комментариях, возможно, я не уделил должного внимания тем возможностям, которыми вы пользуетесь чаще всего. Будет интересно почитать!
Комментарии (5)
bezboroda
17.07.2024 08:39+1Скачал, сравнил с IDEA CE, в своем контексте - scala+chisel - различий не заметил, даже проект открылся тот же и так же со всеми настройками как и в IDEA CE. Разве что заново потребовалось указать scala SDK. На этом этапе удалил, да еще и скачивание через sberid, не вижу смысла.
ris58h
17.07.2024 08:39+2Какие отличия вы ожидали? Это ж IDEA CE с кучкой бесплатных плагинов и несолькими сберовскими.
gudvinr
Почему скачать можно только по номеру телефона?
aleksandy
Потому что #каквсбере.