Добрый день! Меня зовут Андрей Слекеничс, я PO GigaIDE, и сегодня мы продолжаем наш экскурс по функциональности GigaIDE.

Первая и предыдущая статьи цикла доступны здесь и здесь. Сегодняшний материал — последний, затрагивающий функциональность GigaIDE Community, и первый, в котором мы переходим к возможностям уже только GigaIDE PRO.

Возможно, вы уже знаете, что IDE семейства IntelliJ IDEA (как и Eclipse) обладают важной особенностью: код, который пользователь видит на экране, в большинстве случаев является результатом рендеринга синтаксического дерева, а не просто текста. Построение этого дерева происходит на этапе открытия проекта, когда появляется сообщение «Indexing…». Наличие полного синтаксического дерева проекта, а также набора его редуцированных форм, достаточных для описания семантики используемых фреймворков, открывает отличные возможности для создания инструментов, улучшающих понимание кода.

Поэтому, начиная разработку GigaIDE, мы сразу запланировали создать базовые инструменты для улучшения понимания кода даже в Community-версии. С одной стороны, мы угадали тренд, с другой — эта функциональность расширила возможности ИИ-помощников, доступных в GigaIDE.

Project: что сделано

Первый инструмент для быстрого понимания проекта, наследованный прямо из Idea Community, — это, конечно, Project — физическая организация файлов и их логическая группировка. Модульность — это то, с чего лично я обычно начинаю анализ любого проекта. Состав, наименование и группировка модулей многое говорят о его функциональности.

Solutions: как сделано

Второй вопрос, который долгое время оставался для меня без ответа, пока я не добрался до используемых библиотек, — это то, какие абстракции и паттерны применялись в реализации. К счастью (или к сожалению), типовые архитектурные решения уже имеют одно или несколько признанных воплощений в виде фреймворков. Поэтому, если вы знакомы с этими фреймворками, вы можете предположить, для чего их подключили. Однако такой анализ занимает время, а если проект содержит от 0,5 млн строк кода, его придётся проводить не один раз.

Поэтому в GigaIDE наряду с окном Project мы реализовали окно Solutions, которое содержит список всех распознанных архитектурных паттернов, реализуемых с помощью того или иного фреймворка. Конечно, на поведение паттернов накладывает отпечаток то, какой фреймворк их реализует, поэтому мы идентифицируем максимально общие сущности.

Подробнее про окно Solutions

Окно Solutions расположено слева. Оно может делить западную часть окна приложения по высоте с другими окнами, такими как Project или Frameworks. Ниже показано окно в трёх вариантах с контентом для проектов на Java/Kotlin, Python и JavaScript/TypeScript.

Паттерны, распознаваемые на текущий момент для Java/Kt, Py, Js/Ts (слева направо)
Паттерны, распознаваемые на текущий момент для Java/Kt, Py, Js/Ts (слева направо)

Архитектурная группировка:

  • Adapter — реализация паттерна «Адаптер»;

  • Bean — объекты, управляемые соответствующими фреймворками по паттерну IoC;

  • Bridge — реализация паттерна «Мост» между тем, «что делаем», и «как делаем»;

  • Config — конфигурационные параметры, конфигурационные элементы кода;

  • Data — все выделенные разными фреймворками структуры данных, используемые как транспортные объекты или объекты для обеспечения персистентности;

  • DataSource — все выделенные фреймворками объекты, рассматриваемые как источники данных;

  • Endpoint — все точки взаимодействия внешнего мира с системой без визуальных форм;

  • Entry — точки старта приложений;

  • Extension — значимые реализованные расширения, такие как хуки, аспекты и т. д.;

  • Factory — выделенные механизмы порождения других объектов;

  • Integration — все точки взаимодействия приложения с другими приложениями или источниками данных;

  • Interaction — механизмы управления stateful-взаимодействием;

  • Security — все элементы кода, связанные с управлением доступом к элементам приложения или данным;

  • Task — описания единичных коротких действий и/или работ;

  • TestCase — тесты кода и/или тестовые сценарии;

  • Transaction — элементы кода, обеспечивающие транзакционные механизмы;

  • View — функциональность визуальной работы с данными.

Навигация от элементов окна:

  • одинарный клик на листовом элементе — переход в редактор кода;

  • двойной клик — переход в окно Explorer.

Элемент в окне Solution и связанные элементы на панели Explorer и в редакторе кода
Элемент в окне Solution и связанные элементы на панели Explorer и в редакторе кода

Функциональность окна Solutions работает одинаково для Community- и PRO-версий GigaIDE.

Frameworks: из чего сделано

Всё, что мы обсудили, относится к ситуации, когда, глядя на зависимости, вы по их названиям узнаёте фреймворк. Но проблема в том, что их очень много, а новые участники проекта любят приносить новые, так что никто не знает весь возможный «зоопарк». Однако есливы знаете используемые микроархитектурные решения, то естественно задаться вопросом: «А с помощью чего они реализованы?»

Ответ на этот вопрос можно получить, открыв окно Frameworks. Список его элементов показывает выявленные точки потребления элементов соответствующих фреймворков, сгруппированные по самим фреймворкам.

Подробнее про окно Frameworks

Окно Frameworks расположено слева. Оно может делить западную часть окна приложения по высоте с другими окнами, такими как Project или Solutions. Ниже показано окно в трёх вариантах для разных языков.

Фреймворки, распознаваемые на текущий момент для Java/Kt, Py, Js/Ts (слева направо)
Фреймворки, распознаваемые на текущий момент для Java/Kt, Py, Js/Ts (слева направо)

Да, сейчас для Java/Kotlin мы распознаём 47 фреймворков, для Python — только 11, а для JS/TS — 5.

Навигация во Frameworks организована по аналогии с окном Solutions:

  • одинарный клик на листовом элементе — переход в редактор кода;

  • двойной клик — переход в окно Explorer.

Фреймворки, распознаваемые на текущий момент для Java/Kt, Py, Js/Ts (слева направо)
Фреймворки, распознаваемые на текущий момент для Java/Kt, Py, Js/Ts (слева направо)

Функциональность окна Frameworks работает одинаково для Community- и PRO-версий GigaIDE.

Промежуточный итог

Таким образом, пользователи GigaIDE получают два новых инструмента навигации и, кроме ответа на вопрос «что сделано?» (в окне Project), получают ответы на два следующих логических вопроса: «как это сделано?» (в окне Solutions) и «из чего сделано?» (в окне Frameworks).

Explorer: когда нужно подробнее

Но эти ответы, конечно, не могут быть достаточно детальными. Причина в том, что окно, будучи предназначенным для навигации и вытянутым вертикально (чтобы вмещать как можно больше объектов), просто не имеет необходимой ширины, чтобы удобно отображать глубокую иерархию или детальную информацию. Из него логично перейти либо к соответствующей точке кода, либо… в ещё одно окно, которое может предоставлять более насыщенную контекстом информацию по однородной группе объектов и содержать необходимые инструменты. Такие окна для runtime уже есть — например, Services, или окна для работы с версиями — Git.

Для микроархитектурных элементов или элементов фреймворков мы добавили ещё одно окно. Если одинарный клик на листовом элементе Solutions или Frameworks открывает соответствующий элемент в коде, то двойной клик на листовом или одинарный на промежуточном элементе открывает окно Explorer.

> Что можно найти или сделать через Explorer

Окно Explorer имеет две зоны, разделенные слайдером. Левая часть одинакова для версий GigaIDE PRO и GigaIDE Community и включает расширенную информацию по элементам из окон Frameworks и Solutions. Например, для Java выводится список точек входа в приложение, список типов-репозиториев и их методов.

Список точек входа (левая часть) и связанных инициируемых бинов (Spring Boot)
Список точек входа (левая часть) и связанных инициируемых бинов (Spring Boot)
Список точек репозиториев(левая часть) и связанных сущностей (Spring Data, JPA)
Список точек репозиториев(левая часть) и связанных сущностей (Spring Data, JPA)
Список бинов в левой части и ссылок на параметры, используемые для инжекции бинов (Spring)
Список бинов в левой части и ссылок на параметры, используемые для инжекции бинов (Spring)

В правой части размещаются дополнительные инструменты. В Community-версии по умолчанию доступны только просмотр кода элемента и параметров аннотаций и декораторов.

Функциональность окна Explorer без PRO-плагинов (Spring, GigaIDE Community)
Функциональность окна Explorer без PRO-плагинов (Spring, GigaIDE Community)
Функциональность окна Explorer без PRO-плагинов (SmartClient, GigaIDE Community)
Функциональность окна Explorer без PRO-плагинов (SmartClient, GigaIDE Community)

Контекстная навигация: от частного к общему или другому частному

Но это всё — «декомпозирующая» навигация «от общего к частному». В то же время, возможно, самая популярная кнопка на панели Project — это Select Opened File. Она перемещает вас в проекте к модулю, где расположен открытый файл, когда нужно переключиться обратно «от частного к общему».

Аналогично, когда мы говорим о навигации внутри контента фреймворка или конкретного архитектурного паттерна, нам нужна возможность перемещаться между связанными элементами в привязке либо к элементу фреймворка, либо к микроархитектурной сути элемента кода. Эту задачу мы решали с использованием контекстных навигационных элементов, доступных по gutter-иконкам. Да, JetBrains решала эту задачу, в том числе расширяя содержимое окна Structure, но, к сожалению, это окно либо ограничивает обзор своего содержимого, либо уменьшает ширину редактора кода.

Кажется, решение состоит в том, чтобы вывести соответствующую форму навигации в контекстную немодальную панель.

> Примеры контекстной навигации из редактора кода

Пример контекстной навигации, похожей на реализованную в IntelliJ IDEA Ultimate для перехода по autowired-кандидатам (Spring).

Пример контекстной навигация от маркера в редакторе кода для Spring
Пример контекстной навигация от маркера в редакторе кода для Spring

Пример контекстной организации с выводом структуры объектов, участвующих в JPQL-запросе

Пример контекстной навигация от маркера в редакторе кода для Spring Data, JPA
Пример контекстной навигация от маркера в редакторе кода для Spring Data, JPA

Пример навигации c уровня типа по всем связанным объектам представлен на рисунке ниже:

Пример контекстной навигация от маркера в редакторе кода для всех найденных связей
Пример контекстной навигация от маркера в редакторе кода для всех найденных связей

Контекстная навигация в GigaIDE Community ограничена только возможностью перехода в окна Solutions и Frameworks.

На этом всё об инструментах навигации. Резюмируем: в GigaIDE можно смотреть на код с трёх разных сторон (Project, Solutions, Frameworks) и эффективно углубляться в детали (Explorer, контекстная навигация).

А как вы ориентируетесь в больших проектах? Есть ли любимые приемы или плагины? Делитесь опытом в комментариях, будет интересно почитать!

По всем вопросам, связанным с работой GigaIDE, обращайтесь в поддержку: https://gitverse.ru/support.

Автор: Андрей Слекеничс, PO GIGA IDE

Комментарии (15)


  1. remindscope
    17.02.2026 13:09

    Имел несчастье работать в данной IDE. Ни одного лестного слова про данное поделие не найду. И не знаю ни одного человека, который бы сказал про гигаиде хоть что-то хорошее.

    Вместо решения реальных проблем, зачем-то дают криво работающие (или вообще неработающие) инструменты с доисторическим UX/UI, которые изредка используют от безысходности.

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


    1. fdsmirnov
      17.02.2026 13:09

      А можете конкретные примеры привести, что именно не понравилось и чего не хватило?


      1. remindscope
        17.02.2026 13:09

        Могу, конечно. Но вам будет достаточно спросить об этом абсолютно любого сотрудника Сбера, кто работал на современных версиях продуктов JetBrains.


        1. fdsmirnov
          17.02.2026 13:09

          Где же их взять этих сотрудников Сбера) Интересен ваш опыт


          1. remindscope
            17.02.2026 13:09

            Разве гигаиде - не продукт Сбера? И правда, где же их взять, если вы разрабатываете гигаиде)

            Мой опыт :

            убогий ИИ-автокомплит, который даже скобки в конце строки поставить не может (его все отключают в первый же день)

            два плагина для подключения к БД (зачем сразу два, я так и не понял), оба абсолютно нерабочие

            пуши в гит, зависающие на минуты

            невозможность скачать плагины из магазина (геоблок со стороны JetBrains не удосужились обойти за столько времени)

            В целом, типичный продукт от Сбера. Работать на "сбербуке" с убогой глючной "сберОс" в кривой гигаиде приходилось только натощак (чтоб не вырвало)


            1. GIGAIDECommunity Автор
              17.02.2026 13:09

              Могу прокомментировать только GigaIDE. Разработчики Сбера действительно были одними из первых пользователей GigalDE, что позволило нам протестировать, настроить и значительно улучшить большое количество её функций. Действительно, мы не занимаемся обходом геоблокировок, поскольку это противоречит законодательству РФ. Но мы подготовили свой собственный marketplace, который постепенно наполняем open source плагинами и PRO-плагинами к GigalDE. Что касается наличия двух плагинов для работы с базами данных: первый - open source плагин DBNavigator, доступный всем пользователям нашего маркета, именно с него мы начинали в 2024 году. Второй - наш PRO-плагин Database, созданный потому, что первый оказался недостаточно функциональным для полноценной работы. Сегодня этот второй плагин является достаточно зрелым продуктом, включающим возможности интроспекции базы данных, сессионные функции, обширный набор инструментов экспорта и импорта данных, поддержку синтаксиса SQL и его форматирования, интеграцию с такими технологиями, как JPA, Spring Data, Django, SQLAlchemy. Сейчас мы готовим подробный обзор функционала этого плагина специально для площадки «Хабр».


              1. remindscope
                17.02.2026 13:09

                О каких значительных улучшениях идёт речь, если вы просто форкнули комьюнити версию и напихали туда свои плагины?

                Спасибо за развернутый рассказ про плагины для БД. Теперь я верю, что это это был бы отличный плагин, если бы он работал.

                И в каком месте обход блокировок со стороны компании JetBrains, которые компания применила к IP-адресам РФ, нарушает законы последней?

                Зазеркалье какое-то...


                1. GIGAIDECommunity Автор
                  17.02.2026 13:09

                  Действительно, в качестве ядра мы используем JB Idea Community, как и Google для создания Android Studio. Действительно, GigaIDE PRO отличается от GigaIDE Community (или JB Idea Community) наличием плагинов, позволяющих работать с определенными фреймворками, как и Idea Ultimate отличается от Idea Community. И хотя объем кода PRO-плагинов превышает объем кода ядра, в IDE сохраняется гибкость кастомизации функционала под конкретный пользовательский проект при поддержке максимальной производительности. Обзор плагинов на конец ноября 2025 года в статье по этой ссылке.

                  Если у Вас возникли проблемы в работе с плагином Database, прошу обратить внимание на следующие моменты 1) Database относится к PRO-плагинам и работает только в контуре GigaIDE PRO, 2) Если Вы уже являетесь корпоративным пользователем GigaIDE PRO и фиксируете ошибки в работе функционала, Вы можете обратиться в наш саппорт по каналу, определенному Вашим работодателем. Если Вы не знаете, как это сделать, напишите мне здесь в личку, я Вас сориентирую.

                  Обход блокировки маркетплейса JB на территории РФ нарушает пользовательское соглашение маркетплейса, а следовательно и законодательство РФ. Если Вам нужна более подробная юридическая консультация, Вы также можете написать мне в личку.


  1. j_larkin
    17.02.2026 13:09

    а какая цель при разработке этого иде? Какая "миссия", если угодно?


    1. GIGAIDECommunity Автор
      17.02.2026 13:09

      Цель GigalDE заключается в замене продуктов компании JetBrains, которые официально больше не предоставляются на российском рынке: IntelliJ IDEA Ultimate, WebStorm, PyCharm.


  1. ideological
    17.02.2026 13:09

    Ничего не имею против gigachat, но вот продукты IntelliJ IDEA вызывают явное отвращение (я знаю что это популярные IDE и стандарт и всё такое) - тормозят, и приходится постоянно что-то отключать мешающее.

    Короче явно к такому нужно привыкать, искать и настраивать. Хорошо что есть Pulsar.


  1. 0xBAB10
    17.02.2026 13:09

    а зачем? (ц)
    если есть ампликод


    1. GIGAIDECommunity Автор
      17.02.2026 13:09

      Amplicode - отличный инструмент для декларативной разработки приложений на платформе Spring. Однако он не поддерживает полноценную разработку на Spring и совершенно не охватывает такие технологии, как Jakarta EE, Django, FastAPI, Flask, React, Angular, Vue.js и многие другие. Именно такую универсальность разработки и предоставляет GigalDE.


  1. Mr_Overlord
    17.02.2026 13:09

    По представленным скриншотам сложно понять, в каких реальных сценариях разработки эти панели дают преимущество по сравнению со стандартными средствами навигации IDE.

    Например, группировка всех @Delete в одном месте — сценарий применения неочевиден.

    Аналогично, отображение всех @Autowired в проекте: на практике подобные зависимости обычно исследуются через стандартные инструменты навигации (например, Find Usages), которые дают более контекстную информацию.

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

    В итоге создаётся впечатление, что основная ценность функции — демонстрация поддержки навигации по элементам популярных Java-фреймворков.

    Было бы полезно изучить, как аналогичные задачи решаются в других IDE, провести сравнительный анализ и использовать наиболее удачные подходы, действительно повышающие эффективность работы разработчика.


    1. GIGAIDECommunity Автор
      17.02.2026 13:09

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

      Действительно, группировка @Autowired (Spring) в одном месте — не самый впечатляющий кейс до тех пор, пока вы не задумаетесь о миграции на @Inject (CDI), и вам не понадобится прикинуть, чего это будет стоить. Конечно, именно для этого случая подойдёт и Usage, хотя это окно явно избыточное для этого кейса. Для кейсов ниже оно уже недостаточно.

      Группировка @Delete (Jax-Ws) — абсолютно обычная задача с точки зрения тестировщика, который хочет отобрать API для тестирования. Как видно на скриншоте, для JAX-WS (а также JAX-RS, Spring, FastAPI, Flask и др.) у вас будет активироваться HTTP-клиент, предварительно настроенный по параметрам API, определённым в коде.

      Какие ещё есть кейсы, которые не описаны в примерах данной статьи, но упоминаются на Хабре? По ссылке в статье вы можете увидеть группировку Allure-специфичных тестов на вкладке Video в окне Explorer, а также связанные с ними тестовые кейсы, ассоциированные по коду и загруженные из системы TMS (плагин TMS). По ссылке в статье на скриншоте обновлений плагина Database есть область Explorer, куда выводится список объектов базы данных. Для таблиц, например, в окне Explorer строится список сущностей JPA, Django, SQLAlchemy, использующих выбранную таблицу, а также связанные JPQL-запросы. По ссылке в статье приведено описание нескольких AI-агентов, которые через внутреннее API GigaIDE получают инструкции управления транзакциями Spring и/или Jakarta, инструкции логирования для последующей оптимизации. Именно это отображается в окнах Frameworks, Solutions, Explorer. Позднее мы планируем опубликовать материал на тему этого API.

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

      Да, действительно, в статье преобладают примеры по Java по следующим двум причинам. Во-первых, потому что исторического опыта разработки функций для Java у нас накопилось больше. Во-вторых, публикуя статью на Хабре, её нужно специализировать либо под back-end разработку, front-end разработку или другие направления разработки. Если выбрать направление back-end, бессмысленно приводить много примеров для JavaScript или Python.

      Какие виды группировок существуют в других IDE на примере IntelliJ IDEA Ultimate? Вот некоторые из них: (1) Persistence — группировка entity-классов, (2) Spring — сразу две группировки бинов (bean) для отслеживания зависимостей и реализации MVC, (3) Endpoints — аналогичная группировка endpoints'ов, как и в GigaIDE, (4) плюс похожая группировка Web, (5) Dependencies — отдельная панель для зависимостей.

      В каждом случае — это отдельный Tool Window со схожей функциональностью. Мы сочли целесообразным внести большую унификацию в работу, хотя бы для того, чтобы сделать инструментарий расширяемым и позволить разработчикам создавать собственные инструменты для работы с элементами Frameworks и Solutions, а также внутри окна Explorer.