[{"data":1,"prerenderedAt":504},["ShallowReactive",2],{"$fBBQ5ulyG5jVWbIBJe3r8F-kTKQKf1scMJiu0B6qzX5k":3,"$f7AVZHmPutZ23_8XKkLbDtEszKCuiY3yPjIDp9eRXGag":5,"$fLaQstQfQ8gov2gRIpKFR6pFJ2t7lNNKG28DTeXjcsN4":7,"$f23tvwM_BS0rpkTgmUR5qGo5DtDIFAoa0TvUSQylY_Ek":375},{"data":4},[],{"data":6},[],{"data":8,"meta":372},[9,105],{"id":10,"documentId":11,"title":12,"published":13,"weight":14,"slug":15,"createdAt":16,"updatedAt":16,"publishedAt":17,"color":18,"blogposts":19},1,"hc2qik74iq346rzrodyoc5l5","Релизы",true,-1,"release","2025-08-25T10:17:40.582Z","2025-08-25T10:17:40.573Z",null,[20,69],{"id":21,"documentId":22,"title":23,"seo_title":23,"summary":24,"seo_description":25,"slug":26,"published_date":27,"body":28,"content":29,"createdAt":66,"updatedAt":67,"publishedAt":68},56,"sfk3nozl8ltzo9soscjm0jsq","Что нового в OpenIDE 2025.3: Java 25, Spring MCP, Go, Docker и JavaScript\u002FTypeScript","OpenIDE 2025.3 базируется на обновлённой IntelliJ IDEA Platform 2025.3 и включает изменения как из апстрима, так и собственные доработки консорциума. Ниже разберём все заметные нововведения по порядку.","OpenIDE 2025.3 базируется на обновлённой IntelliJ IDEA Platform 2025.3 и включает изменения как из апстрима, так и собственные доработки консорциума. ","chto-novogo-v-openide-2025-3","2026-02-27","OpenIDE 2025.3 базируется на обновлённой IntelliJ IDEA Platform 2025.3 и включает изменения как из апстрима, так и собственные доработки консорциума. Ниже разберём все заметные нововведения по порядку.\n\n\u003Ch2 id=\"nash-otvet-chemberlenu\">Наш ответ Чемберлену! Дополнение через..\u003C\u002Fh2>\n\nВ OpenIDE 2025.3 появилась фича под названием Command Completion. Идея в том, чтобы вызывать действия IDE прямо из автодополнения кода, без необходимости запоминать горячие клавиши или лезть в меню.\n\n\u003Ciframe src=\"https:\u002F\u002Fstorage.yandexcloud.net\u002Famplicode-site\u002Farticles\u002Fopenide-2025-3\u002Fcommand%20completion.mp4\" width=\"100%\" height=\"368\" allow=\"autoplay; encrypted-media; fullscreen; picture-in-picture; screen-wake-lock;\" frameborder=\"0\" allowfullscreen>\u003C\u002Fiframe>\n\nРаботает просто: ставите точку после выражения и видите привычные подсказки по коду вместе с доступными действиями (рефакторинги, генерация, навигация). Если набрать две точки подряд (..), список отфильтруется только до действий. Перед применением можно посмотреть превью: что именно изменится в коде. По сути, это единая точка входа для всего контекстно-зависимого: и код, и постфиксные шаблоны, и экшны IDE находятся в одном месте. Разработчику больше не нужно переключаться между автодополнением, Alt+Enter и Search Everywhere для разных ситуаций.\n\nCursor в своё время хайпил на Tab+Tab, у нас теперь есть Точка+Точка!\n\n\u003Ch2 id=\"podderzhka-java-25\">Поддержка Java 25\u003C\u002Fh2>\n\nJava 25, вышедшая в сентябре 2025 года, стала новой LTS-версией платформы. OpenIDE 2025.3 поддерживает её из коробки. В этом релизе доведена до финального состояния совместимость всех связанных инструментов: Async Profiler 4.1 и JaCoCo обновлены для корректной работы с Java 25 рантаймом.\n\nJDK 25 доступен для скачивания прямо из IDE от всех основных вендоров: Amazon Corretto, Azul Zulu, BellSoft Liberica JDK, GraalVM, IBM Semeru, Microsoft OpenJDK, Oracle OpenJDK, SAP SapMachine и JetBrains Runtime. В случае OpenIDE к ним добавлен [Axiom JDK](https:\u002F\u002Faxiomjdk.ru\u002F) — российская сборка, интегрированная в IDE.\n\n![1.png]({{strapiUrl}}\u002Fuploads\u002F1_9b2edeaac9.png)\n\n\u003Ch2 id=\"tema-islands-po-umolchaniyu\">Тема Islands по умолчанию\u003C\u002Fh2>\n\nВизуальная тема Islands стала дефолтной. Она появилась ещё в [OpenIDE 2025.2](https:\u002F\u002Fhabr.com\u002Fru\u002Fcompanies\u002Fhaulmont\u002Farticles\u002F974460\u002F) как опция, а теперь включается при первом запуске. Изменения касаются контрастности элементов интерфейса, разделения рабочих зон, читаемости вкладок и скруглённых углов у панелей. Тема доступна в светлом и тёмном вариантах. По функциональности ничего не изменилось — обновление чисто визуальное.\n\n![2.png]({{strapiUrl}}\u002Fuploads\u002F2_d90a72857c.png)\n\n\u003Ch2 id=\"podderzhka-go\">Поддержка Go\u003C\u002Fh2>\n\nДля работы с Go в OpenIDE достаточно установить [одноименный плагин](https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Fgobeta\u002F368\u002F). C момента прошлого релиза OpenIDE он получил ряд доработок, часть из которых касается настройки LSP-сервера, а часть — исправления ошибок. Теперь можно настраивать параметры Go Language Server через Settings → Languages & Frameworks → Go Language Server. Добавлен синтаксический хайлайтинг в файлах go.mod. \n\n![3.jpeg]({{strapiUrl}}\u002Fuploads\u002F3_6e15d794ee.jpeg)\n\nВ конфигурациях запуска появилась возможность указывать кастомные build- и working-директории.\n\n![4.jpeg]({{strapiUrl}}\u002Fuploads\u002F4_9e3d418ef3.jpeg)\n\nИсправлено несколько раздражающих проблем: всплывающие ошибки при редактировании `go.mod`, падение Debug-конфигураций, некорректные позиции подсветки в блоках кода. \n\nОтключена ложная подсветка сообщений в функции `fmt.Errorf`. Также исправлена ситуация, когда при сохранении Go-файлов IDE оптимизировала импорты для JS\u002FTS — теперь каждый язык обрабатывается отдельно. Добавлена возможность выделения по словам внутри строковых литералов.\n\n\u003Ch2 id=\"podderzhka-frontend-tekhnologij\">Поддержка Frontend технологий\u003C\u002Fh2>\n\nДля работы с JS\u002FTS\u002FCSS в OpenIDE достаточно установить плагин [Frontend\u002FWeb](https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Ffrontendweb-beta\u002F367\u002F). В части фронтенд-разработки добавлены две полезные возможности.\n\n- Первая: Node.js окружение теперь можно установить прямо из настроек IDE и из экрана создания нового проекта — не нужно отдельно скачивать и конфигурировать рантайм.\n- Вторая: при создании проекта можно выбрать пакетный менеджер (npm, pnpm или yarn). Это работает и для новых проектов, и при настройке существующих.\n\n![5.jpg]({{strapiUrl}}\u002Fuploads\u002F5_c0eff3f81a.jpg)\n\nОтдельно стоит упомянуть изменение в CSS Language Server на Windows — это ломающее изменение, которое может затронуть пользователей, работающих с кастомными настройками CSS-линтинга. Рекомендуется проверить конфигурацию после обновления.\n\nИз апстрима пришла поддержка Vitest 4: распознавание тестовых файлов, gutter-иконки для запуска и отладки отдельных тестов, поддержка актуальных опций конфигурации.\n\n\u003Ch2 id=\"podderzhka-spring\">Поддержка Spring\u003C\u002Fh2>\n\nБазовая поддержка Spring Boot 4 и Spring Framework 7 в OpenIDE появилась ещё [в версии 2025.2](https:\u002F\u002Fhabr.com\u002Fru\u002Fcompanies\u002Fhaulmont\u002Farticles\u002F974460\u002F) благодаря Amplicode — даже раньше, чем аналогичная поддержка вышла в самой IntelliJ IDEA. Уже тогда можно было комфортно работать с новыми API: Registration API с Kotlin DSL и поддержка Spring Data JDBC с генерацией entity-классов и DDL.\n\n![](https:\u002F\u002Fhabrastorage.org\u002Fgetpro\u002Fhabr\u002Fupload_files\u002F78e\u002F0d3\u002F41d\u002F78e0d341d099ae2e6b124f333eab6644.gif)\n\nВ OpenIDE 2025.3 Amplicode добавил несколько новых возможностей. При копировании кода теперь автоматически добавляется нужная инжекцию бинов с учётом контекста: @Primary, @Qualifier, дженерики, @Bean-методы. Работает и в Java, и в Kotlin — без ручной правки после вставки. \n\n\u003Ciframe src=\"https:\u002F\u002Fstorage.yandexcloud.net\u002Famplicode-site\u002Farticles\u002Fsmart-paste\u002Fsmart%20paste%20compress.mp4\" width=\"100%\" height=\"368\" allow=\"autoplay; encrypted-media; fullscreen; picture-in-picture; screen-wake-lock;\" frameborder=\"0\" allowfullscreen>\u003C\u002Fiframe>\n\nТакже в бета-режиме доступен [Spring MCP](https:\u002F\u002Fhabr.com\u002Fru\u002Fcompanies\u002Fhaulmont\u002Farticles\u002F976872\u002F) — набор инструментов для LLM-агентов, который передаёт модели структурированную информацию о проекте: бины, эндпоинты, зависимости, конфигурацию. Агент работает с проектом на уровне фреймворка, а не сырых файлов, что снижает количество галлюцинаций и расход токенов на контекст.\n\n\u003Ciframe src=\"https:\u002F\u002Fstorage.yandexcloud.net\u002Famplicode-site\u002Farticles\u002Fmcp\u002Fmcp-demo.mp4\" width=\"100%\" height=\"368\" allow=\"autoplay; encrypted-media; fullscreen; picture-in-picture; screen-wake-lock;\" frameborder=\"0\" allowfullscreen>\u003C\u002Fiframe>\n\n\u003Ch2 id=\"http-client\">HTTP Client\u003C\u002Fh2>\n\nВ OpenIDE под крылом Amplicode развивается собственный HTTP-клиент [Connekt](https:\u002F\u002Famplicode.ru\u002Fhttp-client\u002F), построенный на Kotlin DSL. В 2025.3 добавлены комментарии к запросам, power asserts (наглядный вывод, где именно упала проверка) и автогенерация paging-параметров для pageable-эндпоинтов. Connekt поддерживает импорт .http-файлов из стандартного HTTP Client IntelliJ IDEA и коллекций из Postman, работает с OAuth2, SSL-сертификатами, бинарными файлами.\n\n\u003Ciframe src=\"https:\u002F\u002Fstorage.yandexcloud.net\u002Famplicode-plugin-description\u002Fwhatsnew\u002F253\u002Fvideos\u002Fpower-asserts.webm\" width=\"100%\" height=\"368\" allow=\"autoplay; encrypted-media; fullscreen; picture-in-picture; screen-wake-lock;\" frameborder=\"0\" allowfullscreen>\u003C\u002Fiframe>\n\nДля пользователей OpenIDE Connekt фактически закрывает потребность в HTTP-клиенте, которого в Community Edition никогда не было. Запросы можно генерировать по существующим эндпоинтам, выполнять прямо в IDE и включать в CI\u002FCD через CLI-инструмент.\n\n\u003Ch2 id=\"docker\">Docker\u003C\u002Fh2>\n\nOpenIDE продолжает развивать собственный [Docker-плагин](https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Fdockerbeta\u002F339\u002F), реализованный консорциумом.\n\n![6.png]({{strapiUrl}}\u002Fuploads\u002F6_142fb70fbd.png)\n\nAmplicode дополняет это генерацией Docker-файлов для продакшена (с настройками heap dump, GC-логов, JFR, JMX, Spring Actuator), а также созданием и редактированием Docker Compose-файлов.\n\n![7.png]({{strapiUrl}}\u002Fuploads\u002F7_84c977d8ec.png)\n\n\u003Ch2 id=\"marketplejs-clojure-i-drugie-plaginy\">Маркетплейс: Clojure и другие плагины\u003C\u002Fh2>\n\nВ маркетплейсе OpenIDE появились два плагина для Clojure: [Clojure LSP](https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Fclojure-lsp\u002F402\u002F) и [Clojure REPL](https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Fclojure-repl\u002F401\u002F). Первый добавляет поддержку clojure-lsp и статический анализ через clj-kondo: навигацию по коду, переход к определениям, поиск символов. Второй позволяет запускать nREPL, загружать файлы в сессию, выполнять выражения под курсором, запускать тесты по namespace.\n\n![8.png]({{strapiUrl}}\u002Fuploads\u002F8_cefb8c1f82.png)\n\nПлагины были добавлены по [предложению](https:\u002F\u002Fgitflic.ru\u002Fproject\u002Fopenide\u002Fopenide\u002Fissue\u002F260) участника сообщества.\n\n![9.png]({{strapiUrl}}\u002Fuploads\u002F9_eff62c842a.png)\n\n\u003Ch2 id=\"peredovye-tekhnologii\">Передовые технологии: Null Safety, JUnit 6, Gradle 9, Groovy 5\u003C\u002Fh2>\n\nИз апстрима IntelliJ IDEA 2025.3 пришла поддержка нескольких новых версий инструментов и библиотек.\n\n- JSpecify стал предпочтительным источником информации о nullability. Когда аннотации JSpecify (1.0.0) присутствуют в classpath, IDE автоматически их распознаёт и генерирует через quick-fix и рефакторинги. Команды IntelliJ IDEA и NullAway согласовали поведение инструментов: теперь результаты анализа в IDE совпадают с результатами сборки, а suppression-константы работают одинаково в обоих инструментах.\n- JUnit 6 унифицирует версионирование артефактов для всех модулей JUnit и поднимает минимальную версию Java до 17. В Spring Boot 4 и Spring Framework 7 JUnit 6 используется как тестовый фреймворк по умолчанию.\n- Gradle 9 делает Configuration Cache режимом работы по умолчанию для ускорения сборок. Groovy 5 поднимает целевую версию JDK до 11 и улучшает совместимость с фичами Java 25 при смешанном использовании Groovy и Java.\n\n\u003Ch2 id=\"chto-novogo-u-soobshhestva-openide\">Что нового у сообщества OpenIDE\u003C\u002Fh2>\n\nС момента последнего релиза мы выпустили много материалов про разработку ПО. Если хотите почитать или посмотреть про актуальные технологии, фреймворки и решения — собрал всё в одном месте:\n\nВидео (ссылки на ТГК, там ссылки на YouTube, RUTUBE и VK Видео):\n- [Haiku обошла Opus | Claude слил $1.78 млн | Нейросеть впаяли в кремний](https:\u002F\u002Ft.me\u002Fopenide_official\u002F93)\n- [Андрей Карпатый переписал GPT | Openclaw объявил войну | Telegram снова блокируют](https:\u002F\u002Ft.me\u002Fopenide_official\u002F91)\n- [Kubernetes – это база!](https:\u002F\u002Ft.me\u002Fopenide_official\u002F84)\n- [Fullstack проект на React, Python, Go и Spring: OpenIDE в действии](https:\u002F\u002Ft.me\u002Fopenide_official\u002F83)\n- [Из Postman в код: Connekt и новый взгляд на тестирование API](https:\u002F\u002Ft.me\u002Fopenide_official\u002F81)\n- [Роман Елизаров про AI в разработке ПО, OpenSource и культуру IT](https:\u002F\u002Ft.me\u002Fopenide_official\u002F78)\n\nУже сейчас OpenIDE позволяет разрабатывать проекты на Java, Spring, Python, Go, JavaScript и TypeScript! А поддержка Docker и 300+ плагинов доступны абсолютно бесплатно в[ маркетплейсе](https:\u002F\u002Fmarketplace.openide.ru\u002F). Пробуйте российскую IDE в деле и подписывайтесь на нас в [Telegram](https:\u002F\u002Ft.me\u002Fopenide_official) или [Max](https:\u002F\u002Fmax.ru\u002Fopenide), чтобы не пропустить свежие обновления и полезные материалы.",[30],{"title":31,"links":32},"Содержание",[33,36,39,42,45,48,51,54,57,60,63],{"label":34,"href":35},"Наш ответ Чемберлену! Дополнение через..","#nash-otvet-chemberlenu",{"label":37,"href":38},"Поддержка Java 25","#podderzhka-java-25",{"label":40,"href":41},"Тема Islands по умолчанию","#tema-islands-po-umolchaniyu",{"label":43,"href":44},"Поддержка Go","#podderzhka-go",{"label":46,"href":47},"Поддержка Frontend технологий","#podderzhka-frontend-tekhnologij",{"label":49,"href":50},"Поддержка Spring","#podderzhka-spring",{"label":52,"href":53},"HTTP Client","#http-client",{"label":55,"href":56},"Docker","#docker",{"label":58,"href":59},"Маркетплейс: Clojure и другие плагины","#marketplejs-clojure-i-drugie-plaginy",{"label":61,"href":62},"Передовые технологии: Null Safety, JUnit 6, Gradle 9, Groovy 5","#peredovye-tekhnologii",{"label":64,"href":65},"Что нового у сообщества OpenIDE","#chto-novogo-u-soobshhestva-openide","2026-02-27T11:41:10.833Z","2026-03-03T10:44:58.555Z","2026-03-03T10:44:58.593Z",{"id":70,"documentId":71,"title":72,"seo_title":72,"summary":73,"seo_description":73,"slug":74,"published_date":75,"body":76,"content":77,"createdAt":102,"updatedAt":103,"publishedAt":104},70,"k8ukculxiumui7iuub0x9p1d","OpenIDE Pro: публичный релиз для всех! Java, Kotlin, Go, TypeScript, Python, PHP и DB-клиент в одном дистрибутиве","Выпущена OpenIDE Pro — профессиональная версия среды разработки для корпоративных клиентов. Один дистрибутив объединяет полноценную поддержку популярных языков программирования, встроенный DB-клиент и открытые протоколы MCP\u002FACP для подключения AI-агентов.","openide-pro-publichnyj-reliz-dlya-vseh","2026-07-15","Прошло больше года с момента публичного релиза первой версии OpenIDE. Сейчас ею пользуются на постоянной основе десятки тысяч разработчиков в сотнях российских компаний.\n\nИ практически с самого первого дня к нам начали обращаться крупные компании, не с просьбой добавить фичу, а с предложением заплатить. Потому что когда организация всерьёз рассматривает IDE для команды в несколько сотен человек, ей важно знать: есть договор, есть SLA, есть кто-то, кто несёт ответственность и завтра никуда не денется. Бесплатный open-source продукт эту уверенность не даёт сам по себе, как бы качественно он ни был сделан.\n\nИ несмотря на то, что изначально запрос шёл со стороны компаний, мы не хотели делать продукт для галочки. Мы постарались закрыть большинство сценариев использования IDE разработчиками самых разных стеков.\n\n**Так появилась [OpenIDE Pro](https:\u002F\u002Fopenide.ru\u002Fdownload).**\n\nПо истечении триального периода мы предложим варианты продления триальной подписки, а также возможность приобрести подписку всем желающим.\n\n**Также доступны бесплатные пилоты для корпоративных клиентов с раширенным триальным периодом. Достаточно просто оставить [заявку через форму](https:\u002F\u002Fopenide.ru\u002Fpro).**\n\nНа российском рынке есть точка зрения, что Pro-версию IDE нужно сначала купить или подписать многостраничный NDA, и только потом уже можно будет оценить её работоспособность. Мы придерживаемся противоположной позиции. Двухмесячный триал, без регистрации, [скачивайте](https:\u002F\u002Fopenide.ru\u002Fdownload) прямо сейчас без ограничений. В конце концов мы должны были оправдать «Open» в названии)\n\nИдея одной IDE под все стеки кажется нам правильной. JetBrains исторически шёл другим путём: GoLand, WebStorm, DataGrip, Rider — отдельные продукты под каждый язык. Наверное, в своё время это было оправдано. Но сейчас кажется странным. Один дистрибутив, одна лицензия, одни настройки. Мы считаем, что такой подход удобнее многоязычным командам и большим компаниям. И не имеет минусов для тех, кто разрабатывает на каком-то одном стеке.\n\n![openide pro release 1.png]({{strapiUrl}}\u002Fuploads\u002Fopenide_pro_release_1_4d95ca39ab.png)\n\nДальше расскажу про каждый стек: что уже есть в OpenIDE для каждой категории разработчиков. Это не исчерпывающий список фич — скорее ориентир. В ближайшее время мы опубликуем серию отдельных материалов про поддержку каждого языка. Подписывайтесь на наш [Telegram](https:\u002F\u002Ft.me\u002Fopenide_official)\u002F[Max](https:\u002F\u002Fmax.ru\u002Fopenide), чтобы не пропустить.\n\n\u003Ch2 id=\"podderzhka-java-kotlin-i-spring\">Поддержка Java, Kotlin и Spring\u003C\u002Fh2>\n\nПоддержка Java и Kotlin в OpenIDE досталась нам практически бесплатно благодаря open-source версии IntelliJ Platform, на базе которой построены все IDE от компании JetBrains. Конечно, без определенных усилий с нашей стороны не обошлось: регулярная миграция платформы на новую версию, совместимость всех плагинов из нашего маркетплейса с обновлениями платформы, а также интеграция наших собственных наработок в итоговый продукт.\n\n**В результате мы стали первыми на российском рынке, чья IDE поддерживала Java 24, Java 25 и в ближайшие недели будет поддерживать Java 26 благодаря миграции на IntelliJ Platform 2026.2.**\n\nНо куда же без Spring, когда мы говорим про Java и Kotlin? Spring в IntelliJ IDEA всегда был проприетарным и был доступен только с подпиской. В OpenIDE Pro полноценную поддержку Spring обеспечивает \u003Ca href=\"https:\u002F\u002Famplicode.ru\u002F?utm_source=openide&utm_medium=referral&utm_campaign=openide-pro-publichnyj-reliz-dlya-vseh\" target=\"_blank\">Amplicode\u003C\u002Fa> — плагин, который Haulmont (один из соучредителей консорциума OpenIDE) разрабатывал несколько лет.\n\nБлагодаря нему OpenIDE поддерживает самые популярные модули экосистемы Spring (Boot\u002FMVC\u002FData\u002FSecurity и другие), а также самые востребованные библиотеки и инструменты экосистемы Spring (JPA\u002FHibernate, MapStruct, Liquibase\u002FFlyway, Kafka и другие).\n\n![openide pro release 2.png]({{strapiUrl}}\u002Fuploads\u002Fopenide_pro_release_2_a53b459b29.png)\n\n**Отдельно можно отметить \u003Ca href=\"https:\u002F\u002Famplicode.ru\u002Fai-spring-agent?utm_source=openide&utm_medium=referral&utm_campaign=openide-pro-publichnyj-reliz-dlya-vseh\" target=\"_blank\">Spring Agent Toolkit\u003C\u002Fa>: набор MCP-инструментов и SKILLS, написанные и проверенные экспертами по Spring. Для Spring-разработчиков использование этого набора приводит к повышенной скорости генерации кода, соответствию его best practices и обходится дешевле (если вы платите за токены).**\n\nПри этом базовая поддержка Spring доступна в OpenIDE бесплатно: навигация по бинам, базовый комплишн и простые генерации кода.\n\n>Я пользуюсь OpenIDE практически с самых первых версий. За это время инструмент заметно вырос и стал более стабильным. При этом всегда есть возможности для дальнейшего развития, например, в части отладки Spring-приложений.\n>Относительно недавно в IDE от JetBrains появились очень продвинутые возможности для отладки Spring-приложений через плагин Spring Debugger. Он позволяет детально инспектировать состояние Environment, бинов в рамках контекста, открытых транзакций и т.д.\n>Мне кажется, что подобный инструментарий был бы отличным дополнением для OpenIDE. Например, в рамках плагина Amplicode. Я искренне верю, что отладка сложных кейсов в IDE (именно то, для чего полезны инструменты вроде Spring Debugger) останется актуальной надолго, даже в эпоху AI-агентов. Поэтому было бы здорово увидеть развитие возможностей глубокой отладки Spring-приложений в OpenIDE.\n> \n> **Михаил Поливаха** \u003Cbr>\n> _Эксперт Spring АйО, активный участник open source, контрибьютор в проекты spring-data-cassandra, spring-data-jdbc и другие._\n\n\u003Ch2 id=\"podderzhka-go\">Поддержка Go\u003C\u002Fh2>\n\nНа каждой конференции к нам подходили разработчики и спрашивали про поддержку Go. GoLand всегда был отдельным платным продуктом, и альтернатив ему практически не было. Те, кто были вынуждены перейти на VS Code после ухода JetBrains, сильно страдали.\n\nМы реализовали Go-поддержку для OpenIDE с нуля.\n\n![openide pro release 3.png]({{strapiUrl}}\u002Fuploads\u002Fopenide_pro_release_3_6fae5f9485.png)\n\n>В эпоху code-gen агентов, которыми уже пользуются повсеместно, ручные правки никуда не делись. И здесь OpenIDE радует: даёт тот самый привычный флоу, к которому я привык за годы работы с Go в GoLand: рефакторинги, навигации, комплишены. А самое приятное лично для меня то, что ребята уже интегрировали поддержку протокола ACP для подключения внешних агентов. Без этого IDE не IDE.\n> \n> **Эдгар Сипки** \u003Cbr>\n> _RPC & Open Source евангелист, основатель open source инструмента EasyP_\n\nOpenIDE Pro закрывает весь рабочий день Go-разработчика: от ежедневного написания кода и тестов до того, ради чего команды обычно платят за GoLand — отладки, профилирования, контроля качества кода. \n\nПоддержка включает мастер миграции настроек из GoLand, отладку через Delve вплоть до удалённых сервисов в Kubernetes, профилирование CPU и памяти через встроенный профайлер, интеграцию с golangci-lint и покрытие тестов прямо в редакторе.\n\n\u003Ch2 id=\"podderzhka-python\">Поддержка Python\u003C\u002Fh2>\n\nДля разработчиков на Python в OpenIDE Pro подсветка, автодополнение, навигация, рефакторинги, запуск и тесты через pytest, отладка. Это тот же уровень поддержки, который ожидаешь от PyCharm для ежедневной разработки.\n\nПоверх базового набора уже есть точечная поддержка под популярные фреймворки: автодополнение в шаблонах Django, типизация Django ORM и Flask, плюс несколько специфичных правил линтинга.\n\n![openide pro release 4.png]({{strapiUrl}}\u002Fuploads\u002Fopenide_pro_release_4_6322c3a77a.png)\n\nПри этом мы понимаем: поддержав пару аннотаций, нельзя называть поддержку фреймворка полноценной. Таким же образом можно было бы заявить поддержку 10, 20 или даже 100 фреймворков для любого языка — просто смысла в этом немного. Текущий уровень мы считаем достаточным для повседневной разработки, но не пределом: будем делать его лучше.\n\nСейчас мы активно занимаемся направлением глубокой поддержке Python-фреймворков — Django, Flask, FastAPI: от детекта фреймворка проекта и визардов создания до окна со всеми HTTP-эндпоинтами и framework-specific инспекций. Как только дойдём до реализации — расскажем подробно.\n\n\u003Ch2 id=\"podderzhka-javascript-typescript\">Поддержка JavaScript и TypeScript\u003C\u002Fh2>\n\nTypeScript и JavaScript в OpenIDE Pro получили полноценную поддержку: подсветка, автодополнение, навигация по коду, рефакторинги, диагностика типов через language service из коробки.\n\n\n>Третьего дня, по совету проверенных камрадов, поставил себе OpenIDE Pro. Дрожащими пальцами выполнил старт из терминала на линуксе и сразу выполнил миграцию расширений из Cursor'а. Интерфейс – моё почтение! Настоящий космолёт OpenIDE сделали! Даже мой, привыкший к терминальному UI, мозг легко разобрался, где что находится, а миграция настроек сохранила значительную часть хоткеев. \n>Ощущения – атас! Работает клик по селектору во Vue компонентах, всё за меня подсказывает: какие есть npm скрипты в разных пакетах turborepo, какие версии Node в системе можно выбрать. Порадовало, что это в коробке, а не ставится отдельно. ESLint отработал тоже из коробки.\n> **Роман Троицкий** \u003Cbr>\n> _Frontend-разработчик в Сбере, член ПК HolyJS_\n\nИз фреймворков на старте — React, Angular и Vue. Для каждого фреймворка есть визард создания проекта, отдельно — для Vite и Next.\n\n![openide pro release 5.png]({{strapiUrl}}\u002Fuploads\u002Fopenide_pro_release_5_a5a9020920.png)\n\nИз инструментов качества кода — ESLint и Stylelint с диагностикой и быстрыми фиксами, которые корректно работают в подмодулях монорепы, и Prettier, читающий конфиг проекта и работающий в связке с ESLint.\n\nЛюбимый всеми Git-клиент тоже входит в состав OpenIDE Pro:\n\n![openide pro release 6.png]({{strapiUrl}}\u002Fuploads\u002Fopenide_pro_release_6_df300ca867.png)\n\n\u003Ch2 id=\"podderzhka-php\">Поддержка PHP\u003C\u002Fh2>\n\nЕсли про всё, что мы писали выше, было известно довольно давно, про поддержку PHP мы публично никогда не высказывались. Но запрос со стороны российского сообщества PHP-разработчиков был таким большим, что мы не смогли обойти его стороной.\n\nПару недель назад плагин [PHP for OpenIDE](https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Fphp-for-openide-beta) вышел в бета-версии и закрывает обычный рабочий день PHP-разработчика: типы, автодополнение, навигация, инспекции, плюс нативная интеграция с PHPStan, Psalm и другими анализаторами. Из фреймворков на старте — Laravel, Symfony, даже чуть-чуть коснулись Bitrix! Для отладки есть Xdebug с профилировщиком.\n\n**Отдельно благодарим самых активных участников закрытого бета-тестирования. Именно благодаря вашему фидбеку возможности появились быстрее даже наших собственных ожиданий.**\n\n\u003Ch2 id=\"rabota-s-bd-pryamo-iz-ide\">Работа с БД прямо из IDE\u003C\u002Fh2>\n\nВ OpenIDE Pro уже сейчас нативно закрыты самые главные хотелки разработчиков для работы с базами данных и SQL прямо из IDE: подключения к базе, SQL-консоль с результатами в виде таблицы, визуальное редактирование данных, диаграмма схемы БД. Мы написали собственную грамматику SQL под PostgreSQL, MySQL и ClickHouse, поэтому автодополнение и инспекции работают по реальной схеме конкретной базы, а не по общему синтаксису SQL.\n\nПоддерживаемые СУБД сейчас: PostgreSQL, MySQL, ClickHouse, Oracle, SQLite. В планах SQL Server, Redis и MongoDB.\n\n\u003Ch2 id=\"ai-i-agenty\">AI и агенты\u003C\u002Fh2>\n\nВместо одного ИИ-агента в рамках OpenIDE мы сделали ставку на инфраструктуру: открытые протоколы MCP и ACP, через которые к IDE подключается любой агент на выбор разработчика. К тому же в нашем маркетплейсе доступны популярные западные и российские AI-плагины.\n\n![openide pro release 8.png]({{strapiUrl}}\u002Fuploads\u002Fopenide_pro_release_8_8bd5231a60.png)\n\n**Если у вас уже есть любимый агент, который поддерживает ACP, то он без проблем заработает в OpenIDE! Подробнее про ACP читайте в статье \"[Вот почему твоему ИИ-агенту нужен ACP в IDE](https:\u002F\u002Fhabr.com\u002Fru\u002Fcompanies\u002Fhaulmont\u002Farticles\u002F1015342\u002F)\".**\n\nОтдельно занимаемся скиллами для агентов. Пока что они доступны только для Spring, но это именно то, что разработчики просят и что даёт ощутимый буст при работе с AI. Планируем расширять набор скиллов на другие стеки, которые поддерживает OpenIDE.\n\n\u003Ch2 id=\"plany-na-budushee\">Планы на будущее\u003C\u002Fh2>\n\nДо конца этого года мы продолжим развивать все описанные выше направления OpenIDE: Spring, Go, JS\u002FTS, Python, PHP, работа с БД, профилирование. Будем рады фидбеку, заведённым issue и вопросам в чат! Уже в работе: удалённая разработка по SSH и поддержка .NET стека (C#).\n\n![openide pro release 9.png]({{strapiUrl}}\u002Fuploads\u002Fopenide_pro_release_9_766b207a10.png)\n\n[OpenIDE Pro](https:\u002F\u002Fopenide.ru\u002Fdownload) позволяет разрабатывать проекты на Java, Spring, Python, Go, PHP, JavaScript и TypeScript! А полноценный [DB-клиент](https:\u002F\u002Ftelegram.me\u002Fopenide_official\u002F167), поддержка Docker и 300+ плагинов доступны абсолютно бесплатно в [маркетплейсе](https:\u002F\u002Fmarketplace.openide.ru). Пробуйте российскую IDE в деле и подписывайтесь на нас в [Telegram](https:\u002F\u002Ft.me\u002Fopenide_official) или [Max](https:\u002F\u002Fmax.ru\u002Fopenide), чтобы не пропустить свежие обновления и полезные материалы.\n",[78],{"title":31,"links":79},[80,83,84,87,90,93,96,99],{"label":81,"href":82},"Поддержка Java, Kotlin и Spring","#podderzhka-java-kotlin-i-spring",{"label":43,"href":44},{"label":85,"href":86},"Поддержка Python","#podderzhka-python",{"label":88,"href":89},"Поддержка JavaScript\u002FTypeScript","#podderzhka-javascript-typescript",{"label":91,"href":92},"Поддержка PHP","#podderzhka-php",{"label":94,"href":95},"Работа с БД прямо из IDE","#rabota-s-bd-pryamo-iz-ide",{"label":97,"href":98},"AI и агенты","#ai-i-agenty",{"label":100,"href":101},"Планы на будущее","#plany-na-budushee","2026-07-15T12:39:17.406Z","2026-07-20T08:29:43.233Z","2026-07-20T08:29:43.286Z",{"id":106,"documentId":107,"title":108,"published":13,"weight":14,"slug":109,"createdAt":110,"updatedAt":111,"publishedAt":112,"color":18,"blogposts":113},2,"dknf6k813ycurqrfx3y3slsy","Статьи","articles","2025-08-25T10:43:34.955Z","2025-08-25T10:43:40.058Z","2025-08-25T10:43:40.018Z",[114,140,169,201,236,271,326],{"id":115,"documentId":116,"title":117,"seo_title":117,"summary":118,"seo_description":118,"slug":119,"published_date":120,"body":121,"content":122,"createdAt":137,"updatedAt":138,"publishedAt":139},28,"yoz5ujeea6xu4r1t3a0vmuzj","Облако не должно быть загадкой: собираем прод за минуты, а не за ночь","В статье разберемся, как от использования UI консоли приходят к Terraform, и как OpenIDE позволяет вернуть легкость UI консоли при работе с Terraform.","oblako-ne-dolzhno-byt-zagadkoj","2026-02-17","Разворачивать приложения в облаке должно быть просто. Но на деле - всё наоборот. Вместо “вжух-вжух и в продакшн” получаем вечер с документацией, пляски с параметрами Terraform и постоянную проверку, правильно ли связались ресурсы.\n\nВ статье разберемся, как от использования UI консоли приходят к Terraform, и как [OpenIDE](https:\u002F\u002Fopenide.ru\u002F) позволяет вернуть легкость UI консоли при работе с Terraform.\n\n## Почему развертывание в облако до сих пор сложно?\n\nОблака сейчас повсюду, но до сих пор многим развертывание приложений в них кажется \"загадкой\". Вроде начинается с простого - заходишь в UI консоль облака, создаешь виртуальную машину, разворачиваешь на неё приложение, например с docker-compose, и всё готово. И для самого простого тестового приложения действительно достаточно. Но как только дело доходит до рабочего развертывания, всё усложняется. \n\nВо-первых, ресурсов становится больше - появляются виртуальные сети, группы виртуальных машин, балансировщики нагрузки, разнообразные управляемые сервисы облаков. И уже никто точно не знает, что где настроено. Повторить один-в-один такое развертывание будет проблематично. \n\nВсё ещё больше усложняется, когда нужно одновременно иметь несколько окружений (dev, stage, prod). Постепенно появляются расхождения в окружении, и всё чаще из уст разработчиков звучит фраза: “У меня на окружении всё работает, разбирайтесь с продом сами”.\n\nБолее того, с ростом проекта, как правило, растет и команда разработки. И теперь знания о развертывании есть только “в головах” определенных людей. Команды начинают задумываться об автоматизации развертывания и настройке CI\u002FCD.\n\n### Начинаем писать скрипты\n\nПервое, что приходит на ум, - это описать процесс развертывания инфраструктуры в виде императивных скриптов, состоящих из вызовов API или CLI облака. Это решает проблему воспроизводимости и масштабирования на несколько окружений - одни и те же скрипты можно запустить несколько раз на пустых окружениях и получить одинаковый результат. Кроме того, скрипты хранятся в Git, поэтому всегда можно отследить изменения. \n\nОдни проблемы решили - и сразу получили новые.\n\n- Мы потеряли простоту изменения облака. Вместо понятного UI теперь документация, описывающая множество команд с различными флагами.\n- Хорошие скрипты писать тяжело. Императивный скрипт не знает текущего состояния облака, поэтому разработчику приходится вручную проверять, был ли ранее создан ресурс и в корректном ли состоянии он находится. Порядок создания и обновления ресурсов также полностью ложится на разработчика.\n- Заранее понять, какие изменения произойдут в облаке после применения скриптов, зачастую невозможно. Цена ошибки в императивных скриптах высока: если выполнение прервётся на середине, инфраструктура может оказаться в частично изменённом состоянии. Быстро и безопасно вернуться к предыдущей конфигурации в таком случае зачастую затруднительно.\n\n### Переходим к IaC\n\nДля решения этих проблем в индустрии давно используется подход **инфраструктура как код** (IaC). Среди подобных инструментов лидируют **Terraform** и его форк **OpenTofu**. \n\nВ Terraform инфраструктура описывается декларативно на собственном языке HCL. Не нужно самому думать над порядком создания ресурсов - описывается желаемое состояние инфраструктуры, а всё остальное Terraform делает “под капотом”. Terraform хранит состояние инфраструктуры и на его основе сравнивает текущее состояние с ожидаемым. \n\n![2.png]({{strapiUrl}}\u002Fuploads\u002F2_b2579c99e1.png)\n\nTerraform позволяет уменьшить частоту ошибок за счёт построения плана. План представляет собой “пробный прогон” Terraform-конфигурации, в результате которого получается список ресурсов, которые будут созданы, изменены и удалены. Построение плана и его ревью перед применением конфигурации позволяют избежать случайных удалений или изменений облачных ресурсов.\n\nИ хотя Terraform существенно повышает надёжность и воспроизводимость инфраструктуры, простоты создания ресурсов в облаке, сравнимой с UI-консолью, в нём по-прежнему нет. Теперь даже для описания относительно простой инфраструктуры с несколькими виртуальными машинами и управляемыми сервисами требуется освоить синтаксис Terraform и разобраться в документации облачного провайдера.\n\n## Как вернуть простоту работы с облаком?\n\nМы задумались, может ли IDE вернуть часть простоты UI-консоли, не жертвуя преимуществами Terraform и подхода IaC. В составе OpenIDE идет Amplicode, который уже помогает разработчикам автоматизировать рутинные действия при написании приложений на Spring Boot, предоставляя визуальные инструменты и генераторы. И этот опыт отлично ложится на работу с Terraform!\n\n### Палитра облачных ресурсов\n\nОткрыв любой файл Terraform конфигурации, в панели **Amplicode Designer** можно увидеть палитру поддерживаемых облачных ресурсов.\n\n\u003Ciframe src=\"https:\u002F\u002Fstorage.yandexcloud.net\u002Famplicode-site\u002Farticles\u002Fterraform\u002Fpalette.mp4\" width=\"100%\" height=\"368\" allow=\"autoplay; encrypted-media; fullscreen; picture-in-picture; screen-wake-lock;\" frameborder=\"0\" allowfullscreen>\u003C\u002Fiframe>\n\nЧтобы добавить в свою Terraform конфигурацию ресурс достаточно дабл-кликнуть нужный элемент в палитре. Откроется диалоговое окно, в котором IDE предложит указать основные параметры ресурса.\n\nДопустим, мы хотим развернуть тестовое окружение для приложения в Yandex Cloud. Возьмем, например, Spring Petclinic. Это веб-приложение, использующее PostgreSQL в качестве базы данных. Чтобы развернуть его в самом простом виде, нам понадобятся кластер PostgreSQL и виртуальная машина для запуска приложения внутри Docker.\n\nСоздаем новую Terraform конфигурацию и добавляем провайдер для Yandex Cloud из палитры. IDE добавит блок провайдера yandex и автоматически объявит его в секции 'required_providers'.\n\n\u003Ciframe src=\"https:\u002F\u002Fstorage.yandexcloud.net\u002Famplicode-site\u002Farticles\u002Fterraform\u002Fprovider.mp4\" width=\"100%\" height=\"368\" allow=\"autoplay; encrypted-media; fullscreen; picture-in-picture; screen-wake-lock;\" frameborder=\"0\" allowfullscreen>\u003C\u002Fiframe>\n\nПосле добавления провайдера создаем из палитры ресурс **Managed PostgreSQL Cluster**. На первом шаге задаем настройки кластера - версию PostgreSQL, класс хостов, тип и размер дискового хранилища, набор хостов и их сетевое размещение. На следующем шаге задаются параметры базы данных и пользователя. Параметры можно задать явно или вынести в Terraform-переменные.\n\n\u003Ciframe src=\"https:\u002F\u002Fstorage.yandexcloud.net\u002Famplicode-site\u002Farticles\u002Fterraform\u002Fpostgres.mp4\" width=\"100%\" height=\"368\" allow=\"autoplay; encrypted-media; fullscreen; picture-in-picture; screen-wake-lock;\" frameborder=\"0\" allowfullscreen>\u003C\u002Fiframe>\n\nТеперь создадим виртуальную машину для приложения. Аналогично выбираем из палитры **Instance with Docker Compose** и заполняем параметры в открывшемся диалоговом окне. При создании виртуальной машины IDE сразу предлагает создать сервисный аккаунт для виртуальной машины и подсказывает выдать роль _container-registry.images.puller_ для доступа к Yandex Container Registry.\n\n\u003Ciframe src=\"https:\u002F\u002Fstorage.yandexcloud.net\u002Famplicode-site\u002Farticles\u002Fterraform\u002Fvm.mp4\" width=\"100%\" height=\"368\" allow=\"autoplay; encrypted-media; fullscreen; picture-in-picture; screen-wake-lock;\" frameborder=\"0\" allowfullscreen>\u003C\u002Fiframe>\n\n[Amplicode](https:\u002F\u002Fopenide.ru\u002F) создал ресурсы для виртуальной машины, сервисного аккаунта, а также файл docker-compose.yaml, который будет запускаться вместе с виртуальной машиной. Осталось добавить сервис в файл Docker Compose и передать параметры подключения к PostgreSQL. В Docker Compose файлах Amplicode также предоставляет палитру, в которой выбираем **Spring Boot Application**.\n\n\u003Ciframe src=\"https:\u002F\u002Fstorage.yandexcloud.net\u002Famplicode-site\u002Farticles\u002Fterraform\u002Fcompose.mp4\" width=\"100%\" height=\"368\" allow=\"autoplay; encrypted-media; fullscreen; picture-in-picture; screen-wake-lock;\" frameborder=\"0\" allowfullscreen>\u003C\u002Fiframe>\n\nОбъявляем переменные окружения и передаем соответствующие значения в Terraform, используя templatefile.\n\n\u003Ciframe src=\"https:\u002F\u002Fstorage.yandexcloud.net\u002Famplicode-site\u002Farticles\u002Fterraform\u002Fenvs.mp4\" width=\"100%\" height=\"368\" allow=\"autoplay; encrypted-media; fullscreen; picture-in-picture; screen-wake-lock;\" frameborder=\"0\" allowfullscreen>\u003C\u002Fiframe>\n\nКонфигурация полностью готова! Её создание заняло у нас не более 2 минут, при этом большая часть конфигурации была сгенерирована и настроена с помощью визуальных инструментов IDE. OpenIDE не отменяет привычные практики работы с инфраструктурой: вся сгенерированная конфигурация остаётся обычным Terraform-кодом и может свободно редактироваться вручную. Дальше конфигурацию можно развернуть в облаке через локальный вызов 'terraform plan' и 'apply' или настроить CI\u002FCD-пайплайн с вызовом этих команд.\n\nНа данный момент палитра содержит большинство ресурсов Yandex Cloud, которые чаще всего используются разработчиками при развертывании прикладных сервисов. В дальнейшем мы планируем поддержать остальные сервисы Yandex Cloud, а также рассматриваем возможность поддержки других провайдеров\n\nС созданием новых конфигураций разобрались, но одно дело создавать с нуля - совсем другое редактировать существующие конфигурации. Но и тут OpenIDE может помочь!\n\n### Обзор Terraform конфигураций\n\nДля всех Terraform конфигураций в проекте панель **Amplicode Explorer** отображает список ресурсов в иерархическом виде.\n\n![3.png]({{strapiUrl}}\u002Fuploads\u002F3_28abeb5872.png)\n\nТакое отображение позволяет быстро ознакомиться с Terraform конфигурацией, без необходимости просматривать каждый отдельный файл. Отсюда же можно быстро перейти к описанию любого ресурса в конфигурации.\n\n### Обзор связей между ресурсами\n\nДругой частой задачей при работе с Terraform конфигурациями - это поиск и быстрый переход к связанным ресурсам. Можно построить граф ресурсов с помощью terraform graph, потом визуализировать его с помощью GraphViz, а потом искать нужный ресурс в графе... но почему опять так сложно?\n\nOpenIDE предлагает другое решение. Для каждого ресурса в Terraform конфигурации появляется специальная иконка, нажав на которую, можно увидеть его место в иерархии зависимостей между ресурсами. Отсюда также можно быстро перейти к любому другому ресурсу в иерархии, чтобы изменить его.\n\n\u003Ciframe src=\"https:\u002F\u002Fstorage.yandexcloud.net\u002Famplicode-site\u002Farticles\u002Fterraform\u002Fnavigation.mp4\" width=\"100%\" height=\"368\" allow=\"autoplay; encrypted-media; fullscreen; picture-in-picture; screen-wake-lock;\" frameborder=\"0\" allowfullscreen>\u003C\u002Fiframe>\n\n## Наши планы\n\nМы не собираемся останавливаться на достигнутом и планируем и дальше развивать поддержку Terraform в OpenIDE. Одно направление, как я отмечал выше, - это поддержка большего числа облаков, в первую очередь отечественных. \n\nСейчас повсюду говорят о программировании с помощью ИИ агентов. Команда Amplicode активно работает над [Spring MCP](https:\u002F\u002Fhabr.com\u002Fru\u002Fcompanies\u002Fhaulmont\u002Farticles\u002F976872\u002F), который дает ИИ агентам набор инструментов для работы с проектами на Spring. Аналогичный подход мы планируем применить и к Terraform-конфигурациям, предоставив ИИ-агентам инструменты для анализа, навигации и модификации инфраструктурного кода.\n\n## Как попробовать?\n\nПопробовать на практике можно уже сейчас. [Скачивайте](https:\u002F\u002Fopenide.ru\u002Fdownload) OpenIDE и изучайте возможности на любом Spring Boot проекте (например, [Petclinic](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-petclinic)). На текущий момент описанная в статье функциональность находится в preview и доступна только для Spring Boot проектов. В начале 2026 года мы сделаем ее доступной для любых проектов.\n\n--- \n\nПрисоединяйтесь к  Telegram-каналам \u003Ca href=\"https:\u002F\u002Ft.me\u002F+61PSyoKNFAdhN2Ey\" target=\"_blank\">Axiom JDK\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Ft.me\u002Fopenide_official\" target=\"_blank\">OpenIDE\u003C\u002Fa> и \u003Ca href=\"https:\u002F\u002Ft.me\u002Fhaulmont_ru\" target=\"_blank\">Haulmont\u003C\u002Fa>, чтобы первыми получать важные обновления, разборы по Java-стеку, приглашения на важные события и экспертные материалы.",[123],{"title":31,"links":124},[125,128,131,134],{"label":126,"href":127},"Почему развертывание в облако до сих пор сложно?","#pochemu-razvertyvanie-v-oblako-do-sikh-por-slozhno",{"label":129,"href":130},"Как вернуть простоту работы с облаком?","#kak-vernut-prostotu-raboty-s-oblakom",{"label":132,"href":133},"Наши планы","#nashi-plany",{"label":135,"href":136},"Как попробовать?","#kak-poprobovat","2026-02-15T13:02:42.681Z","2026-02-15T13:20:07.652Z","2026-02-15T13:20:07.677Z",{"id":141,"documentId":142,"title":143,"seo_title":143,"summary":144,"seo_description":144,"slug":145,"published_date":146,"body":147,"content":148,"createdAt":166,"updatedAt":167,"publishedAt":168},34,"lot9gug4qzct8g7wcoaz96h3","Тестируем новый TypeScript-Go в OpenIDE: что на самом деле даёт порт компилятора","Недавно команда TypeScript представила TypeScript 7 — новую версию, переписанную на Go. Главные обещания: до 10× ускорения компиляции и до 8× более быстрый старт анализа проекта. Но самое интересное спрятано чуть глубже: вместе с TS-Go появляется полноценный LSP-сервер, встроенный прямо в компилятор.","testiruem-novyj-typescript-go-v-openide-chto-na-samom-dele-dayot-port-kompilyatora","2026-02-16","Недавно команда TypeScript [представила](https:\u002F\u002Fdevblogs.microsoft.com\u002Ftypescript\u002Ftypescript-native-port\u002F) TypeScript 7 — новую версию, переписанную на Go. Главные обещания: **до 10× ускорения компиляции и до 8× более быстрый старт анализа проекта**. Но самое интересное спрятано чуть глубже: вместе с TS-Go появляется **полноценный LSP-сервер**, встроенный прямо в компилятор.\n\nДля многих IDE это шаг вперёд.\nДля нас, команды **OpenIDE**, — это ещё и освобождение от ограничений, с которыми TypeScript приходилось поддерживать долгие годы.\n\nВ статье делимся контекстом, собственными экспериментами и наблюдениями — что уже работает, что нет и как новый сервер ощущается в реальной IDE.\n\n## Почему это важно для OpenIDE\n\nМы активно развиваем поддержку TypeScript\u002FJavaScript. И здесь важно помнить исторический факт: официальный tsserver **не являлся LSP-сервером**. Он появился раньше стандарта LSP и использовал собственный RPC-протокол — идеально для VS Code, но неудобно для всех остальных.\n\nЧтобы интегрировать TS\u002FJS в OpenIDE, приходилось держать «мост» между IDE и нестандартным сервером, вручную сопоставлять команды, обрабатывать исключения и частные случаи. Это была нормальная инженерная реальность… но не самая приятная.\n\nС появлением TypeScript-Go ситуация меняется:\n\n### Впервые в комплекте с компилятором идёт официальный LSP-сервер\n\nЭто означает:\n\n- единый формат взаимодействия с IDE,\n- предсказуемую структуру запросов и ответов,\n- меньше обходных путей и кастомных адаптаций,\n- меньше расхождений с VS Code,\n- и проще развитие поддержки ЯП внутри IDE.\n\nПо сути, язык впервые предоставляет **«всё в одном»: компилятор + анализатор + языковой сервер**, собранные вокруг одного источника истины.\n\n## Но что именно даёт компилятор IDE?\n\nКомпилятор — это не просто превращение TS в JS. Чтобы компилировать, нужно:\n\n- разбирать синтаксис,\n- определять типы,\n- резолвить символы и импорты,\n- отслеживать зависимости между файлами,\n- делать инкрементальный анализ.\n\nТо есть компилятор обладает наиболее полным и точным знанием о коде.\nИменно поэтому большинство современных языков (Go, Rust, Kotlin, Swift, Zig) идут в сторону **официального LSP поверх компилятора**.\n\n## Что уже работает, а что нет\n\nПока в TypeScript-Go заметны недочёты:\n\n- не реализованы semanticTokens, foldingRange и часть других методов;\n- статус Language service и API пока не позволяют добавить поддержку Angular и Vue;\n- есть проблемы с резолвингом модулей — и да, **они воспроизводятся и в VS Code**, это важно.\n\nТо есть если что-то «ломается» — это не проблема конкретной IDE, а состояние экосистемы на ранней стадии.\n\n## Как мы тестировали производительность\n\nЦифры Microsoft касаются компилятора. Но поведение IDE определяется временем ответа LSP-сервера на сотни операций:\n\n- hover,\n- completion,\n- definition,\n- references,\n- codeAction,\n- операции фонового анализа.\n\nПоэтому мы решили проверить именно **реакцию LSP-сервера**.\n\n### Методика\n\nМы взяли проект самого TypeScript, открыли его в OpenIDE и:\n\n1. Запустили одинаковые последовательности действий для двух серверов.\n(Полная автоматизация через макросы затруднена: они не пишут действия мышью и могут воспроизводиться нестабильно.)\n\n2. Записали логи времени выполнения запросов.\n\n3. Сравнили медианы — чтобы исключить редкие лаги.\n\n![1.png]({{strapiUrl}}\u002Fuploads\u002F1_203c8e55fe.png)\n_Статистика проекта Typescript_\n\nTypeScript быстрый, запросы обрабатываются в микросекундах–десятках миллисекунд. Но медиана — более честная метрика.\n\n### Наблюдения\n\n![](https:\u002F\u002Fhabrastorage.org\u002Fgetpro\u002Fhabr\u002Fupload_files\u002F44d\u002Fbd1\u002F931\u002F44dbd19311b379616ac4ed507836e378.gif)\n_textDocument\u002Fdefinition, textDocument\u002Freferences, textDocument\u002Fimplementation_\n\n![2.png]({{strapiUrl}}\u002Fuploads\u002F2_139f96c061.png)\n\n![](https:\u002F\u002Fhabrastorage.org\u002Fgetpro\u002Fhabr\u002Fupload_files\u002Fd4e\u002F01e\u002F585\u002Fd4e01e585e98a62c805d405bf823adfd.gif)\n_textDocument\u002FtypeDefinition_\n\n![3.png]({{strapiUrl}}\u002Fuploads\u002F3_5899d0ee2b.png)\n_Время выполнения textDocument\u002FtypeDefinition_\n\n![](https:\u002F\u002Fhabrastorage.org\u002Fgetpro\u002Fhabr\u002Fupload_files\u002F6d5\u002F35e\u002F15c\u002F6d535e15ce2e215e63b1e7941ac8b4f9.gif)\n_textDocument\u002Fcompletion_\n\n![4.png]({{strapiUrl}}\u002Fuploads\u002F4_df879a5104.png)\n_Время выполнения textDocument\u002Fcompletion_\n\n![](https:\u002F\u002Fhabrastorage.org\u002Fgetpro\u002Fhabr\u002Fupload_files\u002F1ac\u002F057\u002F54b\u002F1ac05754b455101754de4d828460e75a.gif)\ncompletionItem\u002Fresolve\n\n![5.png]({{strapiUrl}}\u002Fuploads\u002F5_bb87b6835c.png)\n_Время выполнения completionItem\u002Fresolve_\n\n![](https:\u002F\u002Fhabrastorage.org\u002Fgetpro\u002Fhabr\u002Fupload_files\u002F386\u002F206\u002F12f\u002F38620612ff010fbc9dccd47396e5cd31.gif)\n_textDocument\u002FdocumentHighligt, textDocument\u002FdocumentSymbol_\n\n![6.png]({{strapiUrl}}uploads\u002F6_579f29ad93.png)\n\n![](https:\u002F\u002Fhabrastorage.org\u002Fgetpro\u002Fhabr\u002Fupload_files\u002Fd6c\u002F8f3\u002F7d4\u002Fd6c8f37d4967312d4603f788be576379.gif)\n_textDocument\u002Fhover_\n\n![7.png]({{strapiUrl}}\u002Fuploads\u002F7_876046fed0.png)\n_Время выполнения textDocument\u002Fhover_\n\n![8.png]({{strapiUrl}}\u002Fuploads\u002F8_f4e332c82b.png)\n_Сводный график времени выполнения lsp запросов_\n\nПока можно осторожно сказать:\n- **TypeScript-Go действительно быстрее в ряде навигационных запросов.**\n- **Hover\u002Fdefinition\u002FcodeAction работают примерно так же**, как и в старом сервере.\n- Иногда можно увидеть десятикратную разницу в выполнении операции, но ее стоит рассматривать аккуратно — такое может быть следствием кэширования или особенностей выполнения.\n\nТо есть новых «магических ускорений» в IDE пока нет — но переход на LSP даёт более структурную выгоду: архитектура становится проще, чище и надёжнее.\n\n## Попробуйте сами — поддержка TS-Go уже встроена в OpenIDE\n\nМы добавили возможность переключиться на TypeScript-Go в плагине [**WebTools**](https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Fweb-toolsbeta\u002F367). Можно протестировать всё прямо в рабочем проекте:\n\n**Settings → Languages & Frameworks → Web Tools → TypeScript version → “TypeScript-Go (Experimental)”**\n\n![9.png]({{strapiUrl}}\u002Fuploads\u002F9_f3493c9115.png)\n\nСравните поведение, дайте фидбек — нам важно видеть реальные сценарии.\n\n## Что дальше\n\nМы ожидаем, что в ближайшие месяцы:\n- появятся отсутствующие методы LSP,\n- улучшится резолвинг,\n- стабилизируется работа плагинов,\n- экосистема выйдет из стадии эксперимента.\n\nДля IDE это долгожданное выравнивание: наконец появится официальный, стандартный, предсказуемый способ интеграции TS\u002FJS.\n\nВ [OpenIDE](https:\u002F\u002Fopenide.ru\u002F) мы продолжаем развивать поддержку веб-технологий так, чтобы новые инструменты органично становились частью ежедневной разработки. Следите за обновлениями здесь и в нашем [Telegram](https:\u002F\u002Ft.me\u002Fopenide_official) канале: впереди ещё много улучшений, которые сделают работу с JavaScript и TypeScript в OpenIDE быстрее, стабильнее и удобнее.",[149],{"title":31,"links":150},[151,154,157,160,163],{"label":152,"href":153},"Почему это важно для OpenIDE","#pochemu-eto-vazhno-dlya-openide",{"label":155,"href":156},"Что уже работает, а что нет","#chto-uzhe-rabotaet-a-chto-net",{"label":158,"href":159},"Как мы тестировали производительность","#kak-my-testirovali-proizvoditelnost",{"label":161,"href":162},"Попробуйте сами — поддержка TS-Go уже встроена в OpenIDE","#poprobujte-sami--podderzhka-ts-go-uzhe-vstroena-v-openide",{"label":164,"href":165},"Что дальше","#chto-dalshe","2026-02-17T12:39:16.710Z","2026-02-18T07:33:30.826Z","2026-02-18T07:33:30.857Z",{"id":170,"documentId":171,"title":172,"seo_title":172,"summary":173,"seo_description":174,"slug":175,"published_date":146,"body":176,"content":177,"createdAt":198,"updatedAt":199,"publishedAt":200},42,"o9brsxu0wpro5t7iqhi52a6n","Плагины с человеческим лицом: истории комьюнити OpenIDE","Мы в OpenIDE хорошо понимаем, что среда разработки — это не просто набор инструментов и функций. Это пространство, в котором разработчик проводит значительную часть своего времени: думает, экспериментирует, ошибается и создаёт новое. Именно поэтому для нас особенно важны открытость, доступность и ощущение живого диалога внутри экосистемы. ","Серия интервью с участниками нашего комьюнити — людьми, которые создают плагины для OpenIDE.","plaginy-s-chelovecheskim-liczom-istorii-komyuniti-openide","Мы в OpenIDE хорошо понимаем, что среда разработки — это не просто набор инструментов и функций. Это пространство, в котором разработчик проводит значительную часть своего времени: думает, экспериментирует, ошибается и создаёт новое. Именно поэтому для нас особенно важны открытость, доступность и ощущение живого диалога внутри экосистемы. \n\nIDE - это не только кодовый редактор, вспомогательные инструменты и графические интерфейсы. IDE - это комьюнити. Люди, которые расширяют возможности платформы, находят нестандартные решения, закрывают реальные боли и делятся своим опытом с другими. Именно они превращают среду разработки из продукта в экосистему — живую и дышащую.\n\nМы поговорили с разработчиками, которые вкладывают своё время, знания и идеи в то, чтобы OpenIDE становилась лучше, удобнее и сильнее. У каждого из них — своя история, мотивация и собственный взгляд на то, каким должен быть современный инструмент для разработки.\n\nЭто истории не столько про технологии, сколько про идеи, мотивацию и путь от «а что если» до готового инструмента, которым пользуются другие. Формат, который позволяет выдохнуть, вдохновиться и спокойно войти в новый год.\n\nМы хотим сделать этих людей видимыми. Показать, что за каждым плагином стоит не абстрактная функция, а конкретный человек или команда, которым действительно не всё равно. И, возможно, вдохновить других стать частью этого сообщества - потому что OpenIDE развивается именно так: вместе с людьми и благодаря людям.\n\nИтак, пришло время познакомиться с нашими героями.\n\nВ маркетплейсе OpenIDE представлено множество плагинов, и охватить их все в одном обзоре невозможно. Поэтому мы выбрали несколько конкретных решений и поговорили с людьми, которые стоят за их созданием.\n\n## InitSpring\n\n**InitSpring** - плагин для интеграции со [start.spring.io](http:\u002F\u002Fstart.spring.io\u002F), позволяющий создавать новые Spring-проекты прямо из интерфейса IDE.\n\nСсылка на маркетплейс: https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Finit-spring\u002F382\n\nСоздатель этого плагина - Илья Николаев. Мы поговорили с Ильёй о том, как возникла идея плагина, с какими трудностями он столкнулся в процессе разработки, а также о том, чем он занимается на работе и вне рабочего времени.\n\n\u003Cimg src=\"{{strapiUrl}}\u002Fuploads\u002F4ca9de976e9f5fe37d38e5e0ca963dfc_f9f43a71f6.png\" \u002F>\n\n**— Расскажи о себе коротко. Чем ты занимаешься на работе и в каком стеке работаешь?**\n\nНа данный момент я старший разработчик в IT-компании МегаФона - МегаТех. Мы занимаемся разработкой B2X-решений как для внутренних, так и для внешних клиентов. Изначально основным направлением были IoT-решения - одним из ключевых продуктов является платформа «МегаФон Экология». Сейчас я также участвую в проектах, не связанных напрямую с IoT, но подробности о них пока раскрывать рано - они ещё не были анонсированы публично.\n\nСо временем мои задачи стали заметно шире, чем просто разработка. Всё чаще это консультации, обучение команды и смежных команд, код-ревью и различные околорасработческие и организационные активности. При этом писать код я продолжаю в достаточно большом объёме - это по-прежнему важная часть моей работы.\n\nОсновной язык - Java. Базовый стек - Java и Spring разных версий. Мы стараемся держаться свежих технологий: новые проекты уже запускаем на Java 25 и Spring 7 \u002F Spring Boot 4. Из «совсем старого» практически ничего не осталось - всё успешно мигрировано на Java 17 или 21 и Spring Boot 3.5.x. Также были эксперименты с Quarkus и GraalVM.\n\n**— Как ты пришёл к тому, чтобы написать плагин? Сколько времени это заняло?**\n\nСкажем так - прижало. Работать в IntelliJ IDEA, особенно в Ultimate, в последнее время становится всё сложнее без определённых «танцев с бубном». Я давно начал присматриваться к альтернативам и в итоге именно OpenIDE пришлась мне по вкусу.\n\nВо многом - из-за того, что там из коробки установлен Amplicode, который заметно улучшает работу со Spring-проектами даже в бесплатной версии. Там есть и своя вариация создания Spring-проектов, хотя на тот момент функциональность была более урезанной по сравнению с IDEA Ultimate - например, можно было создать только Maven-проект и нельзя было выбирать зависимости.\n\nПереломным моментом стало ужесточение требований безопасности внутри компании. В какой-то момент вся разработка переехала с локальных машин на удалённые рабочие столы, где из инструментов были доступны только VS Code и Notepad++. Нас сразу предупредили, что затащить туда продукты JetBrains будет крайне сложно, и предложили подумать над аналогами. Тогда я понял, что переезд с Ultimate всё-таки неизбежен, и хотелось забрать с собой хотя бы часть привычного инструментария. Подобным плагином в Ultimate я пользовался довольно часто.\n\nВ целом показалось, что сделать обёртку над [start.spring.io](http:\u002F\u002Fstart.spring.io\u002F) не так сложно — сомнения были в основном по части UI.\n\nПервая версия плагина заняла около трёх недель. Но если учитывать, что я тратил на него не больше двух часов в день, то суммарно это примерно 40 часов.\n\n**— Не думал о совместной работе с Axiom Spring? Они ведь тоже делают init-плагин для OpenIDE.**\n\nЧестно говоря, до этого интервью я вообще не знал про Axiom Spring - пришлось даже спросить про них у Яндекса. Поэтому, конечно, не думал о совместной работе. В целом это выглядит как логичное продолжение истории с Axiom JDK. Возможно, если бы я знал, что они тоже делают init-плагин, то и сам не стал бы заморачиваться. Ребята знают свое дело и точно лучше меня в этом разбираются. Но, я подумаю о коллаборации.\n\n**— Какие у тебя хобби вне работы?**\n\nНе могу сказать, что есть какие-то серьёзные хобби. Иногда поиграть в казуальные игры, посмотреть сериал. В последнее время всё чаще в свободное время тоже пишу код и ковыряю различных ИИ-ассистентов, проверяя, насколько они действительно полезны.\n\n**— Как часто ты обновляешь плагин? Делаешь это в рабочее время или внеурочно?**\n\nБуквально сегодня вышла третья версия - с очередным техническим исправлением. Поводом стала обратная связь от Ильи Сазонова из Axiom, за что ему большое спасибо. Он нашёл у меня пару косяков, до которых я сам, скорее всего, не докопался. Хотя подозрения, что что-то реализовано не совсем правильно, у меня были.\n\nУ меня полностью отсутствовал опыт разработки плагинов, а у JetBrains, на мой взгляд, отсутствует адекватная документация - особенно для последних версий API и особенно для Java.\n\nПлагином я занимался исключительно внеурочно, в свободное время, и в первую очередь для себя.\n\nСтоило ли оно того? Для меня - однозначно да. Мне всегда было интересно сделать полезный инструмент, который выглядел бы и ощущался именно так, как мне хочется. При этом достойной и общедоступной альтернативы плагину из Ultimate я не встречал. А то, что кто-то ещё пользуется моим творением - это отдельное удовольствие. \n\n**— Планируешь ли ты выпускать другие плагины?**\n\nДа, планирую. Сейчас работаю над плагином под кодовым названием Cron Hints. Это снова будет аналог функциональности из Ultimate - подсказки с расшифровкой cron-выражений. Мне очень нравится этот инструмент.\n\nПри этом хочется сделать больший акцент на качественной поддержке русского языка, чтобы подсказки можно было читать без боли. Также хочу, чтобы UI был максимально близок к тому, что предлагает IntelliJ Platform, в отличие от того, что сейчас есть в маркетплейсе JetBrains. В общем, планы есть, но второй плагин ощущается уже более серьезным вызовом.\n\n**— Что бы ты посоветовал людям, которые только думают о создании своего плагина?**\n\nНа мой взгляд, самое важное - это чётко сформулировать и визуализировать то, что ты хочешь сделать. А дальше просто брать и делать. Потом переделывать. И снова переделывать — до тех пор, пока не получится именно то, о чём мечталось. До первого релиза я три раза начинал писать плагин с нуля. Сначала удалось реализовать интерфейс, но там использовалось много deprecated-классов и старых API, от которых хотелось избавиться. Потом были сложности с UX и многошаговым визардом. И только с третьей попытки всё наконец сошлось.\n\n**— Ты делаешь плагин один или в коллаборации?**\n\nОдин. Если не считать двух merge-request’ов от Ильи Сазонова из Axiom, где он поправил пару моих ошибок, связанных с корректным выбором директории при создании проекта.\n\n**— Используешь ли ты OpenIDE в работе?**\n\nПостепенно внедряю его в рабочий процесс. Не скажу, что работаю в OpenIDE со всеми проектами, но все больше стремлюсь к этому. OpenIDE удалось согласовать с ИБ и установить на удалённые рабочие столы, и сегодня значимую часть рабочих задач я уже делаю именно в нём.\n\n## RadMan\n\n**RADioMANiac** - это плагин, который позволяет получать URL радиостанций с сайта [radio-browser.info](http:\u002F\u002Fradio-browser.info\u002F) по жанрам и воспроизводить их прямо в редакторе IDE. Разработчик этого плагина - Алексей Назаров. Его творение - это безусловно один из самых нестандартных плагинов в маркетплейсе и настоящий панк-рок в мире IDE-плагинов.\n\nСсылка на маркетплейс: https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Fradman\u002F345\n\n![2.png]({{strapiUrl}}\u002Fuploads\u002F2_eeb970f70b.png)\n\n**— Как появилась идея плагина и сколько времени ушло на его реализацию?**\n\nКогда я только начал изучать Java, мне казалось, что написание плагинов для IDE - это какое-то волшебство и высший пилотаж. О таком я даже мечтать не мог, поэтому к созданию плагина пришёл далеко не сразу.\n\nВсё началось с того, что я сделал Android-приложение - плеер радиостанций - и захотел упростить корректировку списков радиостанций. Для этого я решил написать отдельное приложение, в котором можно было бы редактировать списки и отправлять их в Git.\n\nНачал накидывать функциональность и понял, что мне нужен редактор, интеграция с Git… И тут пришла мысль: редактор плюс Git - это же по сути IDE. Зачем изобретать велосипед, если можно просто расширить существующий инструмент?\n\nДальше, когда я реализовал загрузку списков радиостанций через API радио-комьюнити, стало понятно, что не все ссылки актуальны и формат вещания не всегда совпадает со вкусами слушателя. Так появилась идея добавить возможность прослушивать поток прямо в IDE.\n\nНа реализацию MVP ушло примерно две недели, а первый релиз я выложил через три–четыре месяца разработки.\n\n**— Почему именно радио?**\n\nЯ люблю слушать музыку, и когда стал программистом, захотел делать это прямо в IDE. Но оказалось, что подобных решений почти нет. В целом всё довольно просто - в тот момент возникла конкретная потребность, а подходящего инструмента не нашлось.\n\n**— Расскажи о своём профессиональном опыте и основном технологическом стеке.**\n\nПоследние шесть лет я работаю Java-разработчиком, в основном в финтехе. Стек достаточно стандартный: Java 17-21, Spring Boot, PostgreSQL, Kafka. В IT я пришёл в 2011 году из юристов, так что, можно сказать, я классический свитчер.\n\n**— Чем ты любишь заниматься в свободное время?**\n\nПо сути, программирование и есть моё главное хобби. Универсальность Java даёт огромные возможности, поэтому я постоянно пробую что-то новое.\n\nВ какой-то момент увлекался Android-разработкой — понравилось, что можно довольно просто делать UI и немного побыть дизайнером. Потом написал десктопное приложение на AWT - до сих пор использую эту панельку в работе, и каждый раз удивляюсь, как легко можно создавать графический интерфейс.\n\nКакое-то время увлекался плагинами для IDE и на стадии прототипов замерли два плагина, возможно, когда-нибудь к ним вернусь. Я также интересуюсь демосценой и недавно пробовал писать демки: результат получился интересным, но сам процесс разработки меня не слишком увлёк. Сейчас думаю попробовать сделать что-нибудь с использованием ИИ.\n\n**— Ты делаешь плагин один или в коллаборации?**\n\nОдин.\n\n**— Как часто ты обновляешь плагин? И делаешь ли это в рабочее время?**\n\nОбновления выходят с разной регулярностью. Первые пару лет я обновлял плагин каждые два месяца, а иногда и чаще - по мере добавления нового функционала. Сейчас в основном выпускаю обновления, когда получаю сообщения о том, что плагин использует устаревшие API.\n\nОбновление версии - это всегда кайф, даже если после работы чувствуешь усталость. С одной стороны, это твоё детище, а с другой — ответственность перед пользователями: хочется дать им лучшее, что возможно. Поэтому обновления всегда немного волнительно и, конечно, делаются в нерабочее время, чтобы можно было полностью погрузиться в задачу.\n\n**— Используешь ли ты OpenIDE в работе?**\n\nДома - на 100%. На работе сложнее: в финтехе требования по безопасности довольно жёсткие, поэтому я использую IDE, которые предоставляет банк. Но я с нетерпением жду победного шествия OpenIDE в корпоративном секторе.\n\n**— Планируешь ли ты выпускать другие плагины?**\n\nВ маркетплейсе JetBrains у меня был ещё курс по Java 21 Stream API, но его удалили вместе с плагином «по результатам внутреннего аудита». Причины мне так и не стали понятны, да я и не стал разбираться.\n\nКроме того, как я уже говорил, у меня есть два плагина на стадии MVP - возможно, со временем я их допилю. Идей и потребностей хватает, так что, скорее всего, что-то из этого будет реализовано.\n\n**— Какое предновогоднее напутствие ты бы дал тем, кто только задумывается о создании собственных плагинов?**\n\nЕсли у вас есть идея или мечта, то постройте роадмап, разделите её на маленькие шаги, в идеале такие, чтобы каждый шаг можно было реализовать за два - три вечера. А дальше просто двигайтесь по плану, понемногу. Самое главное - получать удовольствие от процесса. И не пытаться сразу сделать идеально: итерация за итерацией улучшайте своё детище. Рабочий код в проекте всегда лучше, чем идеальный код в мечтах.\n\n## CodeScoring\n\nОбнаружение и устранение уязвимых зависимостей в проектах с помощью сканирования в реальном времени, умной подсветки и исправлений в один клик - именно над таким инструментом работает команда, с руководителем которой мы поговорили в этом интервью.\n\nСсылка на маркетплейс: https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Fcodescoring-sca\u002F378\n\n![3.png]({{strapiUrl}}\u002Fuploads\u002F3_129b20d43e.png)\n\nИтак, диалог с Антоном Володченко.\n\n**— Расскажи о себе. Чем ты занимаешься на работе и какова твоя роль в создании плагина?**\n\nСразу скажу: формально я прошёл все шаги по загрузке плагинов, но по факту я руководитель разработки продуктов в компании. Сами плагины писали наши разработчики, а я в основном занимался организацией процесса и, конечно, тестировал результат. Так что это точно не моё единоличное детище. Это история про «мы» - про меня и команду.\n\n**— Чем вы занимаетесь глобально и на каком стеке работаете? Как называется ваша компания?**\n\nКомпания называется CodeScoring. Мы делаем платформу для безопасной разработки, а плагины - это один из интерфейсов для работы с нашим продуктом. Основной технологический стек: Go, Python и JavaScript.\n\n**— Сколько человек работает над плагином?**\n\nНа данный момент два разработчика, плюс ещё пара человек помогает с тестированием.\n\n**— Как вы пришли к идее сделать плагин? Сколько времени заняла разработка?**\n\nЭто решение родилось внутри компании. Мы хотим вовлекать разработчиков в вопросы безопасности и при этом давать им максимально удобный инструмент. А что может быть удобнее для разработчика, чем привычная глазу IDE?\n\nПо срокам сложно назвать точные даты, но активная разработка шла примерно с начала года. К лету у нас уже были версии, которые мы постепенно полировали и готовили к публикации в маркетплейсах.\n\n**— Как часто вы обновляете плагин? Это происходит в рабочее время или это  больше внеурочная активность? Это приятный досуг или скорее тяготит?**\n\nЭто рабочие задачи, поэтому обновления идут в рамках наших продуктовых планов. Сейчас пока только выстраиваем процесс по плагинам, так что дорожная карта в стадии формирования. В дальнейшем планируем выйти на стабильный цикл - примерно 5–6 релизов в год. Что касается удовольствия от процесса - думаю, в нашей компании большинству людей действительно нравится то, что они делают. В том числе и работа над плагинами. Мы сами пользуемся IDE, так что мотивация тут вполне естественная.\n\n**— Планируете ли вы выпускать другие плагины в маркетплейсе OpenIDE?**\n\nПока нет. На ближайшее время таких планов не было.\n\n**— Что помогает тебе отвлекаться от рабочих задач?**\n\nВоспитание детей (своих), спорт - бокс, футбол, волейбол, настольный теннис. Ну и немного музыки: иногда играю на гитаре.\n\n**— Что бы ты посоветовал тем, кто только думает о создании собственного плагина?**\n\nЭто отличный способ попробовать себя. Плагины сейчас очень актуальны: они сразу дают выход на большую аудиторию, позволяют настроить интеграцию с другими продуктами и реализовать именно ту функциональность, которой тебе самому не хватает в IDE.\n\n## Open Git Remote\n\nБыстрое открытие удалённого Git-репозитория по горячей клавише — именно такую небольшую, но полезную задачу решает плагин Open-Git-Remote. Мы поговорили с его автором, Владом Герасимовым, о том, как появилась идея плагина, зачем нужны такие инструменты и почему простые решения часто оказываются самыми востребованными.\n\nСсылка на маркетплейс: https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Fopen-git-remote\u002F360\n\n![4.png]({{strapiUrl}}\u002Fuploads\u002F4_d0f14826b6.png)\n\n**— Чем ты занимаешься в работе сейчас и над какими задачами тебе приходится чаще всего работать?**\n\nМеня зовут Влад Герасимов, я Backend Java\u002FKotlin-разработчик. Основные рабочие задачи - проектирование и разработка микросервисов в энтерпрайс-среде крупного банка в составе продуктовых команд.\n\nСтек достаточно современный и, я бы сказал, стандартный: Java 21, Kotlin 2, Spring Boot 3, PostgreSQL, Kubernetes. Из более новых и интересных направлений - разработка ИИ-агентов и RAG-решений: много экспериментов, проверки гипотез, формат внутреннего стартапа. Активно использую LLM и агентов как копайлотов при написании кода.\n\nОтдельно очень люблю писать автотесты сервисов - особенно интеграционные тесты с поднятием Spring Boot-контекста на Testcontainers.\n\n**— С какой задачи или боли началась история плагина Open-Git-Remote?**\n\nПлагин получился максимально простым, но его функциональность мне действительно нужна каждый день. Он позволяет максимально быстро и удобно перейти в удалённый репозиторий сервиса в браузере - например, чтобы создать Pull Request после коммита и пуша в ветку. Я пользуюсь этим по нескольку раз в день. Раз это нужно мне, значит, возможно, пригодится и кому-то ещё. На написание плагина ушло буквально 1–3 вечера. Разрабатывал его самостоятельно и исключительно вне работы.\n\n**— Как проходила разработка плагина и с какими сложностями ты столкнулся по пути?**\n\nОсновная сложность была в том, чтобы разобраться с самой методикой написания плагинов под IntelliJ-платформу: работа с внутренними компонентами и SDK, понимание того, как правильно взаимодействовать с элементами интерфейса. В целом это оказался новый и довольно интересный опыт.\n\n**— Когда и почему ты решил полностью перейти на OpenIDE в рабочем процессе?**\n\nНа работе я использую только OpenIDE. Полноценно перешёл на неё весной 2025 года. Постепенно подсаживаю и коллег - особенно в тех случаях, когда в IntelliJ IDEA что-то ломается, а в OpenIDE всё стабильно работает.\n\n**— Чем ты увлекаешься за пределами работы и разработки?**\n\nЛюблю рок-музыку, в основном русский рок, часто хожу на концерты. Интересуюсь татуировками как культурой. Со школы и в институте занимался пауэрлифтингом, выступал на областных соревнованиях - сначала по юношам (до 18 лет), потом по юниорам (до 21 года). Сейчас уже не занимаюсь, но опыт остался.\n\n**— Есть ли у тебя личные связи или история взаимодействия с комьюнити OpenIDE?**\n\nДа, с Фёдором и Ильёй Сазоновым мы лично знакомы. С Фёдором работали вместе на моей самой первой работе, а Илья чуть позже проводил у меня собеседование к себе. Это было довольно давно - я тогда ещё был совсем «зелёным».\n\n## PVS-Studio\n\nСтатический анализ кода прямо в IDE, интеграции с разными средами разработки и внимание к качеству кода как части повседневной работы разработчика - именно над этим много лет работает команда PVS-Studio. В этом интервью мы поговорили с Валерием Филатовым о плагине для OpenIDE, роли статического анализа в разработке, инженерной культуре и о том, почему инструменты должны быть не только мощными, но и удобными для разработчиков.\n\nСсылка на маркетплейс: https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Fpvs-studio-for-openide\u002F362\n\n![5.jpg]({{strapiUrl}}\u002Fuploads\u002F5_5443dab0d2.jpg)\n\n**— Чем ты занимаешься в PVS-Studio и какие задачи входят в твою зону ответственности? C какими языками и технологиями тебе приходится работать?**\n\nВ PVS-Studio занимаюсь поддержкой нашей сборочной\u002Fтестовой инфраструктуры и разработкой различных тулзов. У нас есть как внутренние утилиты, например, для конвертации отчёта или рассылки результатов, так и внешние интеграции с различными средами разработки, веб-дашбордами, сборочными системами и всяким другим интересным.\n\nНу и помимо разработки я активное участие принимаю в нашем маркетинге: выступаю с докладами, пишу статьи для нашего блога и Хабра.\n\nПо стеку, честно сказать, тут довольно интересно. Сам по себе я Python разработчик, но в силу широты решаемых нашим отделом задач пишу на TypeScript, C#, Java, иногда даже в C++ приходится погружаться ненадолго :)\n\n**— Как и в какой момент появилась идея плагина? Как развивалась эта история со временем?**\n\nК написанию плагина пришли, в целом, в тот момент, когда у нас появился анализатор Java кода (в 2019 году). Тогда мы сделали плагин для IntelliJ IDEA, а на его основе уже позже сделали и плагины для CLion и Rider. В прошедшем 2025 году же мы плагин для IntelliJ IDEA проверили на совместимость с OpenIDE и всё отлично заработало.\n\nПлагин для использования статического анализатора в IDE очень полезен для разработчиков, поскольку использование программистом статического анализатора во время написания кода – это важная часть процесса регулярного анализа. Поэтому мы стараемся обеспечивать своими плагинами все популярные IDE.\n\nПо времени, насколько понимаю, это была довольно серьёзная задача, но конкретных чисел назвать не смогу, за 6 лет уже много воды утекло...\n\n**— Чем ты живёшь вне работы? Есть ли у тебя хобби и много ли общения за пределами компании? И кстати, откуда взялось название PVS-Studio?**\n\nИногда кажется, что кроме работы ничего и не существует, но это нужно просто внимательнее посмотреть :)\n\nЯ ещё в школьные годы получил музыкальное образование, что определило моё хобби уже во взрослой жизни. Только если в школе я играл классическую музыку на аккордеоне и фортепиано, то сейчас играю всякий тяжёлый металл на гитаре и ударных. Ещё люблю попеть, благо, что в предпочитаемых мной ответвлениях жанра обладать сильным голосом не нужно :)\n\nС коллегами за пределами PVS-Studio общаюсь довольно часто, но это у меня работа такая. Позиция Developer Advocate в моей трудовой книжке расшифровывается как «Инженер по связям с разработчиками», так что общений действительно много. Я и наш подкаст «Разбаговка» веду, где с разными коллегами общаюсь (у нас, кстати, был выпуск с Фёдором Сазоновым из OpenIDE!), и на конференциях общаюсь с кем только можно и до потери голоса. Название наше пошло от названия компании. PVS расшифровывается как Program Verification Systems, а приставка Studio означает, что в нашем продукте на самом деле несколько инструментов – это и несколько анализаторов, и утилиты, и интеграции в различные другие инструменты.\n\n**— Как устроен процесс обновления плагина и как ты сам относишься к работе над ним?**\n\nНаш плагин, как и все остальные компоненты продукта, обновляется раз в два месяца. Это наш стандартный релизный цикл. Соответственно, и делаем всё в рабочее время.\n\nЕсли работа стоит моральных усилий, то это, вероятно, какая-то не такая работа. Хотя на самом деле иногда бывают довольно болезненные штуки. Например, когда что-то сломалось и ты долго не можешь понять, в чём именно дело. Но конкретно с плагином, который доступен в маркетплейсе OpenIDE такого я не помню уже давно, обычно всё обходится без сделок с совестью :)\n\n«Попрограммировать в кайф», как будто это всё же больше про пет-проекты, чем про работу. Это не значит, что писать код на работе мне не нравится, просто дело в подходе. При решении рабочих задач нужно не забывать, что в первую очередь ты решаешь либо проблему пользователя, либо закрываешь какую-то конкретную потребность бизнеса (иногда и всё вместе). «Программировать в кайф», как по мне, это всё же делать что-то новое и без таких серьёзных ограничений. Но это, как говорится, in my humble opinion.\n\n**— Планируете ли вы развивать направление плагинов дальше или всё будет развиваться в рамках одного продукта?**\n\nДа, действительно, от нас в маркетплейсе пока есть только плагин для анализа Java проектов. Так как OpenIDE целится в мультиязычность, то и нам, конечно, хотелось бы, чтобы пользователи могли анализировать и проекты на других языках.\n\nНо пока что это только выраженное желание, конкретных планов в этом направлении мы ещё не строили.\n\n**— Какой совет ты мог бы дать тем, кто только задумывается о создании собственного плагина или инструмента?**\n\nСправедливости ради, я не был у истоков плагина, я относительно молодой сотрудник. Но всё равно поимею смелость ответить на вопрос :)\n\nНу, если какой-то метафорический человек мечтает что-то сделать, то пора бы уже перестать мечтать и начать делать.\n\nПолезно было бы посмотреть на то, как те или иные проблемы решают другие разработчики. Велосипед уже давно изобретён, и попытка переоткрыть его просто приведёт к тому, что пользователь не разберётся, как ваш инструмент работает.\n\n**— Сколько человек участвует в развитии продукта и конкретно этого плагина?**\n\nВ компании на данный момент работает 69 человек, конкретно в отделе Tools&DevOps, отвечающем за разработку и поддержку интеграций работает 7. В целом, за годы поддержки этого плагина, к нему все из нашего отдела успели притронуться :)\n\n**— Используешь ли ты OpenIDE в своей повседневной работе?**\n\n«Проплачено!» могут сказать читатели, услышав мой последующий ответ, но да, я пользуюсь OpenIDE на работе. Как раз, чтобы внести правки в плагин, а недавно я писал статью про проверку проекта LanguageTool с помощью нашего анализатора и как раз использовал связку OpenIDE + PVS-Studio.\n\n## EasyP\n\nИнтеграция с экосистемой easyp и расширенная поддержка Protobuf. EasyP-плагин автоматически разрешает пути импортов для .proto-файлов на основе конфигурации проекта и помогает работать с правилами и стандартами. Мы поговорили с Эдгаром Сипки о том, как появился плагин и какие задачи он решает.\n\nСсылка на маркетплейс: https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Feasyp\u002F385\n\n![6.png]({{strapiUrl}}\u002Fuploads\u002F6_14732e14ec.png)\n\n**— Кто работает над плагином? Это соло-проект или командная история?**\n\nНас трое: я, Василий и Хасбулат.\n\n![7.png]({{strapiUrl}}\u002Fuploads\u002F7_db126e0bc0.png)\n\n![8.png]({{strapiUrl}}\u002Fuploads\u002F8_b56a9d4d8d.png)\n\n**— Расскажи о своём профессиональном бэкграунде. Что навело на мысли о создании своего плагина?**\n\nДавай так: если коротко, у меня бэкграунд в Go - уже около 8 лет. Я много разрабатываю на Go, довольно плотно работал с gRPC. В какой-то момент ситуация на рынке сложилась так, что нормальных инструментов стало не хватать: появился [Buf.build](http:\u002F\u002Fbuf.build\u002F), а потом я и коллеги начали делать свой инструмент.\n\nУ нас есть инструмент для работы с gRPC - **EasyP**. Сейчас мы активно его развиваем, плюс появилась надежда на инвестиции, и стало понятно, что нам нужна хорошая интеграция с IDE. Начали с OpenIDE, затем планируем интеграцию с VS Code.\n\n**— Сложно делать плагин сколько по времени проходила его разработка?**\n\nЕсли честно, по времени сложно сказать точно. Сам плагин делал не я лично, а член нашей команды - Хасбулат. Он потратил примерно неделю part-time, в основном по вечерам. Причём большая часть этого времени ушла не на написание кода, а скорее на ресёрч: разобраться, как вообще всё правильно сделать.\n\n**— Чем ты увлекаешься вне работы?**\n\nЯ очень-очень люблю готовить. Прямо безумно люблю готовку. Ещё я очень люблю ходить - просто гулять, много и долго. Как бы я ни старался это рационализировать, для меня это всё равно хобби.Ну и сейчас планирую активно заниматься своим контентом: снимать блог, выпускать подкаст, развивать медиа-направление.\n\n**— Как часто вы обновляете плагин и как вообще устроен этот процесс?**\n\nСам софт мы обновляем часто, но это довольно тяжело, потому что делаем это фактически по ночам - нельзя смешивать основную работу и эту историю.\n\n**— Это ваш единственный плагин в маркетплейсе, есть планы на новые?**\n\nНа текущий момент - да, единственный. Есть шанс, что появится ещё один, мы это обсуждаем с коллегами. Основная проблема в том, что плагины для IDE нужно писать на Kotlin, а нам это, честно говоря, не очень нравится. Нам хотелось бы писать плагины на Go.\n\n**— Какой совет ты мог бы дать тем, кто задумывается о создании собственного плагина?**\n\nЕсли совсем честно, у нас сейчас всё довольно ситуативно. Плагины стоит писать тогда, когда есть конкретная проблема, которую действительно можно решить плагином. Если такая задача есть - делайте плагин.\n\n**— Используешь ли ты OpenIDE?**\n\nСейчас я спользую OpenIDE в личных проектах.\n\nНа этом мы завершаем предновогоднюю серию интервью. Это были разговоры не про фреймворки, версии и бенчмарки, а про людей - про идеи, мотивацию, большие и маленькие, но очень важные инструменты, которые делают повседневную разработку удобнее.\n\nМы благодарны всем участникам комьюнити, которые нашли время поделиться своими историями и показать, что OpenIDE - это не только продукт, но и живая экосистема, развивающаяся благодаря людям. Плагины, о которых мы рассказывали, разные по масштабу и задачам, но их объединяет одно - они родились из реальных потребностей и желания сделать рабочий процесс удобнее и лучше.\n\nНадеемся, эти интервью помогли выдохнуть в конце года, вдохновили на новые идеи и, возможно, подтолкнули кого-то к мысли: «А что если попробовать сделать свой плагин?»\n\nСпасибо, что были с нами. Увидимся уже совсем скоро - с новыми идеями, инструментами, плагинами и историями. \n\nВаша команда OpenIDE!!\n\n--- \n\nПрисоединяйтесь к  Telegram-каналам \u003Ca href=\"https:\u002F\u002Ft.me\u002F+61PSyoKNFAdhN2Ey\" target=\"_blank\">Axiom JDK\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Ft.me\u002Fopenide_official\" target=\"_blank\">OpenIDE\u003C\u002Fa> и \u003Ca href=\"https:\u002F\u002Ft.me\u002Fhaulmont_ru\" target=\"_blank\">Haulmont\u003C\u002Fa>, чтобы первыми получать важные обновления, разборы по Java-стеку, приглашения на важные события и экспертные материалы.",[178],{"title":31,"links":179},[180,183,186,189,192,195],{"label":181,"href":182},"InitSpring","#initspring",{"label":184,"href":185},"RadMan","#radman",{"label":187,"href":188},"CodeScoring","#codescoring",{"label":190,"href":191},"Open Git Remote","#open-git-remote",{"label":193,"href":194},"PVS-Studioи","#pvs-studio",{"label":196,"href":197},"EasyP","#easyp","2026-02-15T12:11:12.836Z","2026-02-19T11:49:34.982Z","2026-02-19T11:49:35.021Z",{"id":202,"documentId":203,"title":204,"seo_title":204,"summary":205,"seo_description":205,"slug":206,"published_date":207,"body":208,"content":209,"createdAt":233,"updatedAt":234,"publishedAt":235},44,"of8wxgkuu418v9txzz5yrwc0","Любая IDE от JetBrains бесплатно: что на самом деле происходит, когда вы запускаете “безобидный” активатор","Взлом IDE и последствия, о которых не говорят","lyubaya-ide-ot-jetbrains-besplatno","2026-02-11","\n>Дисклеймер: в тексте для простоты используется название IntelliJ IDEA. Описанные механизмы активации, внедрения Java-агента и связанные с этим риски применимы ко всем IDE и продуктам JetBrains, использующим ту же платформу и архитектуру лицензирования.\n\n\u003Ch2 id=\"Введение\">Введение\u003C\u002Fh2>\n\nМногие Java разработчики выбирают IntelliJ IDEA Ultimate для своей работы, но с [уходом JetBrains из России](https:\u002F\u002Fhabr.com\u002Fru\u002Fnews\u002F655249\u002F) и введением экспортных ограничений на покупку продуктов JetBrains возникли сложности с приобретением IntelliJ IDEA Ultimate. Некоторые из разработчиков начали использовать активаторы для IntelliJ IDEA. \n\nОдин из популярных активаторов основан на одном из известных фреймворков для Java-агентов и распространяется в виде shell-скрипта, который можно запустить и он выполнит активацию продуктов JetBrains. Скрипт работает стабильно, и многие считают его \"безобидной альтернативой\" покупке лицензии. Но что на самом деле происходит, когда вы запускаете скрипт? Какой код выполняется в вашей системе? И главное — затрагивает ли этот \"активатор\" только проверку лицензии, или его влияние гораздо шире?\n\n\n>Дисклеймер\nМы не хотим иметь отношение к распространению нелегального софта, поэтому не скажем, как называется упомянутый в статье активатор. Однако, понять, о чем идет речь, особенно для разработчиков, которые уже его использовали, труда не составит. Названия плагинов, использующихся в активаторе мы оставили оригинальные. Мы не хотим иметь отношение к распространению нелегального софта, поэтому не скажем, как называется упомянутый в статье активатор. Однако, понять, о чем идет речь, особенно для разработчиков, которые уже его использовали, труда не составит. Названия плагинов, использующихся в активаторе мы оставили оригинальные. \n\nМы изучили работу этого популярного активатора: проанализировали .sh скрипты и трансформеры байткода, проследили цепочки вызовов от высокоуровневых API до приватных методов в Java SDK.\n\nВ этой статье мы покажем основные технические детали. К концу вы поймёте:\n- Что скачивается с неизвестных серверов и какой код получает полный доступ к внутренностям JVM\n- Какие техники используются для сокрытия следов взлома \n- Как именно работает обход защиты на уровне Java Cryptography Architecture\n- Почему патчится 'BigInteger#oddModPow()' - фундаментальный метод для всей криптографии в JVM и какие побочные эффекты может иметь модификация криптографических примитивов для ваших проектов\n\nРассмотрим шаг за шагом работу активатора, начиная от shell-скрипта до модификации приватных методов стандартной библиотеки Java.\n\n\u003Ch2 id=\"shell-skript-ustanovki-pervaya-liniya-komprometaczii\">Shell скрипт установки. Первая линия компрометации\u003C\u002Fh2>\n\nЗапуск активатора выполняется при помощи .sh скрипта. Выглядит безобидно: скрипт приветствует нас сообщением: \"Welcome to JetBrains Activation Tool\" и ждет, пока пользователь нажмёт на Enter.\n\n### Инициализация окружения\n\nПосле нажатия Enter выполняется инициализация окружения и сбор данных для лицензии: \n- определяет тип операционной системы \n- указываются пути к рабочим директориям скрипта \n- у пользователя запрашивается имя лицензии и дата окончания лицензии. По умолчанию дата устанавливается на **2099-12-31** — то есть лицензия на 75 лет вперёд. Ни одна лицензия не выдается на такой срок, это явный признак нелегального инструмента \n\n### Установка зависимостей и первые опасности\n\nСкрипт проверяет наличие необходимых утилит curl и jq (для работы с JSON) в системе и если их нет, то происходит автоматическая установка. Процесс установки отличается для операционных систем macOS и Linux. \n\n**Установка для macOS**\n\nДля macOS установка дополнительных утилит происходит через Homebrew https:\u002F\u002Fbrew.sh\u002F. Если Homebrew не установлен, скрипт автоматически устанавливает его, выполняя команду скачивания и установки:\n\n```\n\u002Fbin\u002Fbash -c \"$(curl -fsSL https:\u002F\u002Fraw.githubusercontent.com\u002FHomebrew\u002Finstall\u002FHEAD\u002Finstall.sh)\n```\n\nВажно отметить, что активатору нужны утилиты curl и jq, но при этом загрузка Homebrew происходит через curl, команда не должна отработать, но утилита curl включена по умолчанию в дистрибутив macOS и активатору для своей работы потребуется только установить утилиту jq. \n\nВернемся к Homebrew, после его установки необходимо добавить его в PATH, скрипт активатор добавляет команду вида в файл ~\u002F.zshrc: \n\n```\neval \"$(\u002Fopt\u002Fhomebrew\u002Fbin\u002Fbrew shellenv)\"\n```\nИ после этого начинается установка дополнительных пакетов через команду\n\n```\nbrew install curl jq\n```\n**Риски для macOS**\n\nМодификация файла '~\u002F.zshrc' несет потенциальные проблемы с безопасностью. \n\n**1. Риск: изменения без вашего согласия**\n\nСкрипт модифицирует файл без создания резервной копии. Вы не даёте явного согласия на это изменение. **Существует риск перезаписи ваших важных настроек — алиасов, переменных окружения.**\n\n**2. Риск: команда выполняется при каждом запуске терминала**\n\nДобавленная строка будет автоматически выполняться каждый раз, когда вы открываете терминал. Это механизм персистентности — код запускается при каждом входе в систему.\n\nСегодня это команда для Homebrew. Но что, если завтра скрипт добавит туда что-то другое? Э**то потенциальный бэкдор — точка входа для вредоносного кода, который будет выполняться автоматически и незаметно.**\n\n**Установка для Linux**\n\nТеперь рассмотрим установку для Linux. Для Linux установка дополнительных недостающих утилит происходит через пакетные менеджеры 'apt', 'dnf', 'packman'. Команды выглядят так: \n\n```\nsudo apt install -y curl jq \nsudo dnf install -y curl jq \nsudo pacman -Sy --noconfirm curl jq \n```\n\n**Риски для Linux**\n\n**1. Риск: использование sudo**\n\nСкрипт запрашивает пароль для установки пакетов через sudo. Кажется, что вы выдаёте права только для одной команды 'sudo apt install curl jq'. Но это не так. \n\nПосле ввода пароля система кэширует ваш доступ примерно на 15 минут. Это значение задано параметром 'timestamp_timeout' в файле '\u002Fetc\u002Fsudoers'. \n\nВ течение этого времени **все команды sudo в скрипте выполняются без запроса пароля**. Фактически весь скрипт получает root-доступ, а не только команда установки пакетов. \n\nКакие опасные действия может выполнить скрипт: \n1.1.** Создать скрытого администратора** с заранее известным паролем\n1.2. **Выполнить модификацию критических системных файлов**, например изменить \u002Fetc\u002Fssh\u002Fsshd_config, чтобы разрешить удалённый доступ для root и добавить чужие SSH-ключи. \n1.3. **Установить бэкдор или кейлоггер** для постоянного контроля над системой\n\n**Вы вводите пароль один раз, а скрипт получает 15 минут неограниченных прав в вашей системе.**\n\n**2. Риск: флаги '-y' и '--noconfirm'**\n\nСкрипт использует команды установки с автоматическим подтверждением:\n\n```\nsudo apt install -y curl jq \nsudo dnf install -y curl jq \nsudo pacman -Sy --noconfirm curl jq\n```\nБез флага '-y' установка происходит более безопасно. При команде 'sudo apt install curl' система показывает полный список пакетов, которые будут установлены, включая зависимости.  Затем система запрашивает подтверждение \"Do you want to continue? [Y\u002Fn]\". \n\nВы видите список устанавливаемых пакетов, можете проверить его и при необходимости отменить установку.\n\n**С флагом -y установка происходит мгновенно**. Нет возможности увидеть список пакетов. Нет возможности отменить или проверить, что устанавливается.\n\nКакие риски это несёт:\n\n2.1. **Скрытая установка транзитивных небезопасных пакетов.** \n\nПакетные менеджеры автоматически устанавливают транзитивные зависимости. \n\nБез флага **'-y'** вы увидите список: \"The following NEW packages will be installed: curl libcurl4 ca-certificates some-library **malicious-dep**\" и сможете заметить подозрительный пакет. \n\nС флагом **'-y'** всё устанавливается скрыто. Вредоносный пакет уже в системе.\n\n2.2. **Тайпсквоттинг атака.** \n\nЗлоумышленники создают пакеты с похожими названиями. Например: 'node1js' вместо 'nodejs'. \n\nБез **'-y'* система покажет \"Installing: node1js\" и спросит подтверждение. Вы видите неправильное имя и можете остановить установку. \n\nС **'-y'* пакет установится автоматически.\n\n**Флаги -y и --noconfirm превращают установку пакетов в чёрный ящик – вы не видите, что именно попадает в вашу систему.**\n\n\u003Ch2 id=\"skachivanie-ispolnyaemogo-koda-i-vnedrenie-agenta\">Скачивание исполняемого кода и внедрение агента\u003C\u002Fh2>\n\n### Скачивание файлов с неизвестного сервера\n\nСкрипт скачивает файлы со стороннего сервера. Этот сервер контролируется создателями активатора и не связан с JetBrains. Файлы размещаются в рабочей директории активатора. Скачиваемые файлы: \n\n- 'activator.jar' - ядро агента, координирует работу плагинов \n- 'power.jar' - модификация криптографии\n- 'privacy.jar' - сокрытие следов агента, исходников нет!\n- 'dns.jar', 'url.jar', 'hideme.jar', 'native.jar'\n- конфигурации: 'power.conf', 'url.conf, dns.conf'\n\nВсе файлы скачиваются без проверки контрольных сумм (SHA256\u002FMD5) и без верификации цифровых подписей. Невозможно гарантировать, что содержимое JAR-файлов безопасно или что оно не изменится при повторном выполнении активатора. **Завтра на сервере активатора может появиться совершенно другой код.**\n\n### Внедрение агента в JVM\n\nСкрипт модифицирует параметры виртуальной машины для JetBrains IDEA. В файл конфигурации VM добавляются следующие строки:\n\n```\n--add-opens=java.base\u002Fjdk.internal.org.objectweb.asm.tree=ALL-UNNAMED\n--add-opens=java.base\u002Fjdk.internal.org.objectweb.asm=ALL-UNNAMED \n-javaagent:\u002FUsers\u002Fuser\u002F.jb_run\u002Factivator.jar\n```\n\n- Первые две строки открывают доступ к библиотеке ASM – инструменту для чтения и манипуляции байткода \n- Третья строка внедряет агента activator.jar в приложение JetBrains IDEA\n\nАгент загружается до запуска основного приложения и получает полный контроль над JVM\n\n### Установка поддельной лицензии\n\nСкрипт отправляет запрос на сервер активатора для получения файла лицензии. Файл лицензии сохраняется в конфигурационную директорию JetBrains IDEA. \n\nПри следующем запуске IDE обнаружит этот файл и попытается проверить лицензию. Но проверка уже скомпрометирована — загруженный Java-агент подменит результаты. \n\nВ следующем разделе мы погрузимся в работу Java-агента и увидим, как он модифицирует базовые операции на уровне стандартной библиотеки Java. \n\n\u003Ch2 id=\"java-agent-i-arkhitektura-obkhoda-zashhity-jetbrains-idea\">Java-агент и архитектура обхода защиты JetBrains IDEA\u003C\u002Fh2>\n\nПосле успешного запуска скрипта и внедрения параметра '-javaagent:\u002Fpath\u002Fto\u002Factivator.jar' в конфигурацию IDE, при следующем запуске IntelliJ IDEA в JVM загружается Java-агент. \n\nJava Agent — это легитимная технология, встроенная в платформу Java. Технология при помощи [Instrumentation API](https:\u002F\u002Fdocs.oracle.com\u002Fen\u002Fjava\u002Fjavase\u002F21\u002Fdocs\u002Fapi\u002Fjava.instrument\u002Fjava\u002Flang\u002Finstrument\u002FInstrumentation.html) позволяет перехватывать и модифицировать байткод классов **до их загрузки** в JVM. Агенты в основном используются для сбора данных: как пример, для профилирования, мониторинга, определения покрытия кода, но способность модифицировать классы Java делает агенты мощным инструментом и одновременно опасным в недобросовестных руках.\n\nАгент активатора построен на одном из известных фреймворков для Java-агентов — это не монолитный агент, а **агент с возможностью загрузки плагинов**. Каждый плагин отвечает за свою часть обхода защиты. Это модульная архитектура, которая позволяет легко добавлять новые техники обхода без изменения основного кода. Разберемся, что делает каждый из плагинов. \n\n### Плагин URL\n\nПлагин URL блокирует сетевые соединения для определенного списка URL. Плагин затрагивает класс _[sun.net](http:\u002F\u002Fsun.net\u002F).www.http.HttpClient_, который используется многими библиотеками для HTTP.  Плагин инструментирует скрытый метод [sun.net](http:\u002F\u002Fsun.net\u002F).www.http.HttpClient#openServer:\n\n```\n\u002F\u002F Класс: sun.net.www.http.HttpClient\nprotected void openServer() {\n    URL url = this.url;\n    URLFilter.testURL(url); \u002F\u002F Проверяет url по url.conf   \n       \n    \u002F\u002Fосновная логика \n    …\n}\n```\n\nЕсли 'URLFilter#testURL' найдёт совпадение по URL с файлом 'url.conf', то будет выброшено исключение _SocketTimeoutException_ и дальнейшее выполнение HTTP запроса прекратится. Таким образом, **плагин имитирует таймаут подключения** (_SocketTimeoutException_), создавая иллюзию недоступности сервера вместо явной блокировки.\n\n В нашем случае блокируются соединения с серверами лицензирования JetBrains:\n- https:\u002F\u002Faccount.jetbrains.com.cn\u002Flservice\n- https:\u002F\u002Faccount.jetbrains.com.cn\u002Flservice\u002Frpc\u002FvalidateKey.action \n- https:\u002F\u002Faccount.jetbrains.com.cn\u002Flservice\u002Frpc\u002FvalidateLicense.action\n- https:\u002F\u002Faccount.jetbrains.com.cn\u002Flservice\u002Frpc\u002FobtainAgreement.action\n- https:\u002F\u002Faccount.jetbrains.com.cn\u002Flservice\u002Frpc\u002FobtainLicense.action\n\n## Плагин DNS\n\nПлагин DNS блокирует вызовы разрешения доменного имени для определенного списка хостов. Плагин затрагивает класс 'java.net.InetAddress' - фундаментальный класс Java для работы с IP-адресами и DNS. Плагин инструментирует методы:\n\n-  'java.net.InetAddress#getAllByName' - публичный метод разрешения IP-адресов по хосту. Из описания JavaDoc: Given the name of a host, returns an array of its IP addresses, based on the system-wide resolver.\n-  'java.net.InetAddress#isReachable(java.net.NetworkInterface, int, int)' - публичный метод доступности хоста. Из описания JavaDoc: Тest whether that address is reachable.\n\nИнструментация выглядит следующим образом: \n\n```\n\u002F\u002F Класс: java.net.InetAddress\npublic static InetAddress[] getAllByName(String host) {\n\n    \u002F\u002F Проверяет host по dns.conf\n    DNSFilter.testQuery(host);  \u002F\u002F Проверяет host по dns.conf\n    \n    \u002F\u002F оригинальная логика\n}\n```\nЕсли 'DNSFilter#testQuery' найдёт совпадение по хосту с файлом 'dns.conf', то будет выброшено исключение 'UnknownHostException', создавая иллюзию проблемы с разрешением DNS. Инструментация срабатывает раньше, чем JVM обращается к операционной системе для разрешения имени,  даже кэш DNS не помогает. Аналогичным образом работает инструментация для метода 'isReachable', но возвращается false (хост недоступен) вместо исключения.\n\nДанное изменение затрагивает **ВСЕ** сетевые операции в JVM — любой код (ваш проект, плагины, библиотеки), использующий 'InetAddress', будет затронут блокировкой. \n\nПри работе в связке с url плагином выстраивается многоуровневая защита: если запрос прошел DNS, его могут заблокировать на уровне HTTP, и наоборот.\n\nВ нашем случае блокируется разрешение DNS для доменного имени: **jetbrains.com**, поддомены в эту блокировку не входят.\n\n### Плагин Hideme\n\nПлагин Hideme — позволяет сделать агент \"невидимым\" для детектирования со стороны виртуальной машины. JetBrains может попытаться обнаружить взлом разными способами, и Hideme блокирует каждый из них. \n\nПлагин инструментирует методы:\n\n- 'java.lang.ClassLoader#loadClass' - публичный метод загрузки класса по FQN. Из описания JavaDoc: Loads the class with the specified binary name.\n- 'java.net.sun.management.VMManagementImpl#getVmArguments' - публичный метод получения списка аргументов VM.\n\nДля 'java.lang.ClassLoader' инструментация выглядит следующим образом: \n\n```\n\u002F\u002F Класс: java.lang.ClassLoader\npublic Class\u003C?> loadClass(String name) throws ClassNotFoundException {\n    \u002F\u002F Проверка по списку скрытых пакетов\n    if (LoadClassRule.check(name)) {\n        throw new ClassNotFoundException(name);\n    }\n    \n    \u002F\u002F оригинальная логика загрузки класса\n}\n```\nПри загрузке класса проверяется, находится ли FQN класса в списке скрытых пакетов (пакеты агента) и в этом случае выбрасывается исключение 'ClassNotFoundException'.\n\nЕсли IDE попытается загрузить класс агента, то будет ошибка класс не найден и IDE думает, что агента не существует.\n\nДля 'java.net.sun.management.VMManagementImpl' инструментация выглядит следующим образом: \n\n\n```\n\u002F\u002F Класс: sun.management.VMManagementImpl\npublic List\u003CString> getVmArguments() {\n    List\u003CString> originalArgs = \u002F* получить оригинальные аргументы *\u002F;\n    \n    \u002F\u002F Фильтрация аргументов через VmArgumentFilter\n    List\u003CString> filteredArgs = new ArrayList\u003C>();\n    for (String arg : originalArgs) {\n        \u002F\u002F Удаляет -javaagent:, если он указывает на activator\n        if (arg.startsWith(\"-javaagent:\") && arg.contains(\"activator\")) {\n            continue;  \u002F\u002F Пропускаем этот аргумент\n        }\n        \n        filteredArgs.add(arg);\n    }\n    \n    return filteredArgs;\n}\n```\nПо модификации видно, что из списка аргументов виртуальной машины скрывается агент: -'javaagent:activator.jar', следовательно, IDE при проверке лицензирования для аргументов виртуальной машины вместо реальных значений, получит список в котором будет скрыт Java-агент. \n\nТаким образом JetBrains IDE не может обнаружить агента стандартными средствами. Плагин hideme модифицирует фундаментальные классы Java делая агент полностью невидимым. По используемым техникам агент функционально близок к rootkit’ам для JVM, использует те же техники, что и вредоносное ПО для сокрытия своего присутствия в системе. Но это еще не все техники скрытия, дополнительные мы еще рассмотрим в плагине Privacy.\n\n### Плагин Power\n\nПлагин Power — **самый опасный плагин** в системе активатора. В отличие от плагинов URL и DNS, которые блокируют сетевые операции, плагин Power модифицирует **фундаментальные криптографические примитивы Java**. Его цель – подменить результаты операций модульного возведения в степень, которые используются для проверки лицензии JetBrains. Но последствия этой модификации затрагивают **всю RSA-криптографию в JVM**, а не только проверку лицензии.\n\nПлагин затрагивает класс \"java.math.BigInteger' – фундаментальный класс Java для работы с произвольно большими целыми числами. Плагин инструментирует приватный метод 'oddModPow(BigInteger exponent', 'BigInteger modulus') - метод модульного возведения в степень для нечётных модулей. Из JavaDoc по методу 'modPow(BigInteger exponent, BigInteger modulus)' в котором используется наш приватный метод: Returns a BigInteger whose value is (_this ^ exponent mod modulus_)\n\nМетод 'oddModPow()' является приватным (private) методом класса 'BigInteger'. В обычных условиях к нему невозможно обратиться извне класса. Но Java-агент с доступом к ASM может модифицировать даже приватные методы на уровне байткода.\n\nПлагин применяет два типа трансформаций. Первая трансформация – это подмена аргументов. Инструментация выглядит следующим образом: \n\n```\n\u002F\u002F Класс: java.math.BigInteger\nprivate BigInteger oddModPow(BigInteger exponent, BigInteger modulus) {\n    BigInteger[] newArgs = ArgsFilter.testFilter(this, exponent, modulus);\n    if (newArgs != null) {\n        exponent = newArgs[0];                \u002F\u002F exponent заменяется\n        modulus = newArgs[1];                 \u002F\u002F modulus заменяется\n    }\n    \n    \u002F\u002Fоригинальные вычисления модульного возведения в степень, но с новыми ПОДМЕНЕННЫМИ аргументами\n}\n```\n\nЭта инструментация позволяет подменить входные параметры операции: экспоненту или модуль. Вычисление выполняется, но с другими числами.\n\nВторая трансформация подменяет результат вычисления. Инструментация выглядит следующим образом: \n\n```\n\u002F\u002F Класс: java.math.BigInteger\nprivate BigInteger oddModPow(BigInteger exponent, BigInteger modulus) {\n    BigInteger forcedResult = ResultFilter.testFilter(this, exponent, modulus);\n    if (forcedResult != null) {\n        \u002F\u002F Результат был предопределен в конфигурации - немедленный возврат в обход всех вычислений\n        return forcedResult;\n    }\n    \n    \u002F\u002F оригинальные вычисления модульного возведения в степень, не выполняются если результат был подменен\n}\n```\n\nЭта инструментация полностью обходит вычисления. Вместо того чтобы выполнять сложную математическую операцию, метод сразу возвращает предопределенное значение из конфигурационного файла power.conf. Например, конфигурации вида: \n\n```\n[Result]\nEQUAL,x,exponent1,modulus1->fakeResult\n```\nдля операции 'x^exponent1 mod modulus1' вернёт предопределенный результат 'fakeResult'.\n\nНастройка плагина Power для активатора JetBrains IDEA использует только вторую трансформацию, рассмотрим поподробнее конфигурационный файл для JetBrains IDEA:\n\n```\n[Result] EQUAL,573073346913444247..., \n\n65537,\n860106576952879101192782...,\n -> 3187221928140742420257... \n```\n- Первая строка - основание степени\n- Вторая строка - экспонента\n- Третья строка - модуль\n- После -> предопределенный результат, который должен вернуть метод.\n\nЧто происходит, когда метод 'oddModPow' вызывается с основанием '573073...' и экспонентой '65537' и модулем '86010'…, вместо реального вычисления возвращается число '318722...', которое было заранее вычислено на сервере активатора.\n\nВернемся к криптографии. Операция модульного возведения в степень 'm^e mod' (или как это реализовано в Java 'BigInteger#modPow' и связанный с этим приватный метод 'oddModPow)' – это фундаментальная операция для криптографии, в частности это базовая операция для RSA, который используется для шифрования и цифровой подписи. Подробности по работе алгоритма RSA можно посмотреть в [Wiki](https:\u002F\u002Fru.wikipedia.org\u002Fwiki\u002FRSA), или в [статье на Хабр](https:\u002F\u002Fhabr.com\u002Fru\u002Farticles\u002F745820\u002F). Кроме RSA, существуют и другие алгоритмы шифрования, которые используют модульное возведение в степень, такие как алгоритм Диффи-Хеллмана, DSA. \n\nТаким образом задача плагина Power подменить результаты работы операции модульного возведения в степень. Рассмотрим, как выглядит процедура обхода лицензии в JetBrains IDEA. Детально этот процесс мы представить не можем,  поскольку не имеем права декомпилировать код, можем лишь предположить как работает обход: \n\n- Файл лицензии 'idea.key' генерируется на сервере активатора с приватным ключом, который никак не связан с JetBrains.\n- IntelliJ IDEA читает лицензию и пытается проверить подпись публичным ключом JetBrains.\n- При проверке вызывается метод 'BigInteger.oddModPow'\n- Плагин Power перехватывает этот вызов и подменяет результат предопределенным значением\n- IDE получает \"правильный\" результат и считает подпись валидной\n- Лицензия принимается, хотя она подписана **чужим** ключом\n\nПоскольку плагин Power модифицирует операцию модульного возведения в степень не только для проверки лицензии в IDE, могут возникнуть уязвимости в произвольных местах при использовании криптографии в JVM. Это фундаментальный метод, используемый всей криптографией с открытым ключом в Java.\n\n**Компрометация RSA открывает путь для атак Man-in-the-Middle на весь HTTPS-трафик**, включая Git-операции по HTTPS, API-запросы к облачным сервисам, аутентификацию в корпоративных системах, работу с базами данных (если соединение идет по SSL), загрузку зависимостей из Maven Central, NPM registry c возможностью подмены библиотек. Сценарий Man-in-the-Middle атаки может выглядеть следующим образом:\n- Злоумышленник перехватывает трафик между вашей IDE и удалённым сервером (например, GitHub, AWS API, корпоративный сервер)\n- Подсовывает поддельный SSL-сертификат, подписанный собственным \"фальшивым CA\"\n- IDE проверяет подпись сертификата — вызывается BigInteger.oddModPow() для проверки RSA-подписи\n- Плагин Power подменяет результат — если параметры операции совпадают с правилами в power.conf, проверка подписи вернёт \"валидный\" результат\n- IDE принимает поддельный сертификат как валидный и устанавливает \"защищённое\" соединение\n- Злоумышленник получает полный доступ к расшифрованному трафику: API-ключи, пароли, исходный код, credentials.\n\n**Использование взломанной IDE с плагином Power – равносильно работе в скомпрометированной криптографической среде, где нельзя доверять ни одной RSA-операции.** Это не просто \"обход проверки лицензии\" –  это компрометация криптографической инфраструктуры всей JVM. **Последствия могут затронуть безопасность ваших проектов, корпоративных систем и привести к юридическим проблемам.**\n\n### Плагин Privacy\n\nПлагин Privacy – кастомный закрытый плагин, исходный код которого недоступен в публичных репозиториях. В отличие от других плагинов (URL, DNS, Hideme, Power), которые размещены на Gitee с открытым исходным кодом, плагин Privacy распространяется только в виде скомпилированного JAR-файла. Для анализа его работы потребовалась декомпиляция байткода. Целью плагина является: модифицировать конкретные методы IntelliJ IDEA, отвечающие за проверку и отображение информации о лицензии, а также скрывать следы агента от встроенных средств детектирования IDE. \n\nВкратце расскажем о выполняемых модификациях: \n- В классе 'com.intellij.diagnostic.VMOptions' трансформация метода 'getUserOptionsFile' возвращает пустой '.vmoptions' файл без '-javaagent' и метода r'eadOption' возвращает 'null' для опций, содержащих '\"javaagent\"'. Это позволяет скрыть следы использования агента '-javaagent:activator.jar.' \n- В классе 'sun\u002Fmanagement\u002FRuntimeImpl' трансформация метода 'getInputArguments' возвращает пустой список входных аргументов. Это позволяет скрыть настоящие входные параметры, включая агента '-javaagent:activator.jar'\n- В классе, отвечающем за текущее состояние лицензии, метод получения даты истечения лицензии всегда возвращает дату на 60 дней вперед от текущего дня. Это позволяет в IDE считать лицензию всегда активной. \n\nМодификации, описанные выше, работают с дополнительной проверкой стектрейсов: стектрейсы анализируются на наличие методов проверяющих лицензию JetBrains. Это позволяет описанным выше модификациям работать только из кода проверки лицензии JetBrains, не затрагивая остальное использование тех же API.\n\nПлагин Privacy — это специализированный слой обхода, настроенный конкретно под архитектуру IntelliJ IDEA и ее систему проверки лицензий. В сочетании с плагинами Hideme, Power, URL, DNS создаётся многоуровневая система сокрытия и проверки фиктивной лицензии. Эту систему крайне сложно обнаружить стандартными средствами.\n\n\u003Ch2 id=\"riski-bezopasnosti\">Риски безопасности\u003C\u002Fh2>\n\nПосле детального анализа активатора становится очевидно, что использование этого активатора может создать критические риски безопасности на всех уровнях системы.\n\n**1. Системный уровень: компрометация операционной системы**\nПри установке зависимостей скрипт запрашивает пароль sudo, после чего получает root-доступ на ~15 минут. В течение этого времени скрипт может выполнять любые команды с правами администратора: создавать скрытых пользователей, модифицировать ssh конфиги, устанавливать бэкдоры или кейлогеры. \n\n**2. Уровень JVM: полный контроль над виртуальной машиной**\nJava-агент получает полный контроль над JVM. Агент может читать весь исходный код ваших проектов, перехватывать пароли баз данных из конфигурационных файлов, SSH-ключи, API-токены и реквизиты доступа облачных сервисов. Он может модифицировать любой класс в runtime: от стандартной библиотеки Java до классов ваших приложений. Агент имеет доступ к сети и может отправлять собранные данные на внешние серверы, при этом домен активатора контролируется третьей стороной. В отличие от контейнеризации, агент работает в том же процессе, что и IDE – нет никаких барьеров между агентом и вашими данными.\n\n**3. Криптографический уровень: компрометация всей криптографии**\nJava-агент, и в частности плагин Power, модифицирует операцию модульного возведения в степень – фундаментальную операцию для всей криптографии с открытым ключом в Java. Это затрагивает не только проверку лицензии JetBrains, но и RSA-операции (проверку подписей, шифрование). Если параметры вашей криптографической операции случайно совпадут с правилами в power.conf, результат будет заменен, что может привести к компрометации защищенных соединений и неверной проверке подписей. \n\n**4. Отсутствие контроля и доверия**\nВсе конфигурационные файлы и JAR-файлы плагинов скачиваются с сервера активатора без проверки контрольных сумм, верификации цифровых подписей и возможности аудита. Завтра на сервере может появиться новый вредоносный код, изменённые правила подмены криптографии или бэкдоры – вы не контролируете, что именно выполняется в вашей системе. Плагин Privacy распространяется только в виде скомпилированного JAR без исходного кода, и даже после декомпиляции невозможно гарантировать отсутствие скрытых бэкдоров или логики сбора данных. \n\nТаким образом использование активатора JetBrains на основе Java-агента – это не просто обход проверки лицензии, а комплексная компрометация системы на всех уровнях. Операционная система получает root-доступ, JVM получает неограниченный контроль над вашим кодом и данными, криптография становится ненадежной, а вы теряете контроль над тем, что именно выполняется в вашей системе. Риски сопоставимы с намеренной установкой вредоносного ПО с правами администратора и полным доступом к вашим проектам, ключам и паролям.\n\n**5. Юридические и прочие риски**\nВ первую очередь и разработчикам, и линейным руководителям, и CTO важно отдавать себе отчет: использование пиратского программного обеспечения — это прямое нарушение российского законодательства. Статья 146 УК РФ предусматривает уголовную ответственность за нарушение авторских прав, включая лишение свободы, уже при ущербе свыше 100 000 рублей.\n\nДля одиночного разработчика эта граница может казаться далёкой, но в корпоративной среде она достигается крайне быстро. Достаточно двух нелегальных лицензий IntelliJ IDEA Ultimate, чтобы формально перейти в зону уголовной ответственности. А использование порядка 15 пиратских лицензий квалифицируется как особо крупный размер — с потенциальным наказанием до шести лет лишения свободы.\n\n\u003Ch2 id=\"vozmozhnye-posledstviya\">Возможные последствия\u003C\u002Fh2>\n\nОтдельный риск — безопасность. Практика показывает, что пиратский софт нередко становится точкой входа для атак на ИТ-инфраструктуру, что может привести к простоям, потере данных и прямым финансовым убыткам. Конкретные кейсы приводить не будем — многие читатели и без того с ними знакомы и могут вспомнить собственные примеры.\n\nНаконец, стоит учитывать и человеческий фактор. При любом серьезном инциденте внутри компании начинается поиск ответственных. В такой ситуации разработчик, установивший нелегальное ПО, легко может оказаться «крайним» — с рисками не только для карьеры, но и для **личных финансов** и **свободы**.\n\n\u003Ch2 id=\"legalnye-alternativy\">Легальные альтернативы\u003C\u002Fh2>\n\nК счастью, брать на себя такие риски не требуется. На российском рынке уже существует альтернатива, изначально спроектированная с учетом этих ограничений — [OpenIDE](https:\u002F\u002Fopenide.ru\u002F).\n\nOpenIDE — это форк IntelliJ IDEA, развитие которого поддерживается консорциумом из трёх компаний: **Haulmont**, **Группы компаний «Астра»** и **Axiom JDK**. Такая модель снижает зависимость от одного вендора и делает проект более устойчивым в долгосрочной перспективе.\n\nПри этом OpenIDE — это не просто «замена IDE». Проект развивается как платформа: вокруг него формируется [экосистема плагинов](https:\u002F\u002Fhabr.com\u002Fru\u002Fcompanies\u002Fhaulmont\u002Farticles\u002F981830\u002F) и сообщество разработчиков, которые могут создавать, публиковать и развивать собственные расширения. Это позволяет инструменту эволюционировать вместе с потребностями рынка, а не следовать за решениями одного центра влияния.\n\n--- \n\nПрисоединяйтесь к  Telegram-каналам \u003Ca href=\"https:\u002F\u002Ft.me\u002F+61PSyoKNFAdhN2Ey\" target=\"_blank\">Axiom JDK\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Ft.me\u002Fopenide_official\" target=\"_blank\">OpenIDE\u003C\u002Fa> и \u003Ca href=\"https:\u002F\u002Ft.me\u002Fhaulmont_ru\" target=\"_blank\">Haulmont\u003C\u002Fa>, чтобы первыми получать важные обновления, разборы по Java-стеку, приглашения на важные события и экспертные материалы.",[210],{"title":31,"links":211},[212,215,218,221,224,227,230],{"label":213,"href":214},"Введение","#vvedenie",{"label":216,"href":217},"Shell скрипт установки. Первая линия компрометации. ","#shell-skript-ustanovki-pervaya-liniya-komprometaczii",{"label":219,"href":220},"Скачивание исполняемого кода и внедрение агента","#skachivanie-ispolnyaemogo-koda-i-vnedrenie-agenta",{"label":222,"href":223},"Java-агент и архитектура обхода защиты JetBrains IDEA","#java-agent-i-arkhitektura-obkhoda-zashhity-jetbrains-idea",{"label":225,"href":226},"Риски безопасности","#riski-bezopasnosti",{"label":228,"href":229},"Возможные последствия","#vozmozhnye-posledstviya",{"label":231,"href":232},"Легальные альтернативы","#legalnye-alternativy","2026-02-10T13:12:07.872Z","2026-02-19T11:52:17.396Z","2026-02-19T11:52:18.450Z",{"id":237,"documentId":238,"title":239,"seo_title":239,"summary":240,"seo_description":240,"slug":241,"published_date":242,"body":243,"content":244,"createdAt":268,"updatedAt":269,"publishedAt":270},48,"uq773wyejgt1mtr97ieh0s03","Настраиваем ИИ-помощника бесплатно и без вендорлока в IntelliJ IDEA, GoLand, WebStorm, OpenIDE и GigaIDE","Continue – это open source плагин без жёсткой привязки к вендору: вы сами выбираете модель - облачную или локальную, платную или бесплатную, и настраиваете конфигурацию под команду.","nastraivaem-ii-pomoshhnika-besplatno","2026-02-10","За последние пару лет IDE реально встряхнуло: к подсказкам и рефакторингам добавились AI-ассистенты a.k.a. Агенты. Они дописывают код, предлагают варианты решений, генерируют тесты и умеют “переводить” чужой legacy на человеческий. Теперь почти в каждой IDE есть кнопка «спросить у модели» — и разработчик больше не один на один с редактором.\n\nНо вместе с хайпом пришли и старые боли. Подсказки часто шумят и лезут не в тему, а контроль у “коробочных” ассистентов обычно ограничен: выбор моделей может быть, но правила игры задаёт вендор — как собирается контекст, куда он уходит и что при этом логируется. Плюс появляется отдельная строка расходов: подписки, токены, лицензии — и это ещё нужно объяснить менеджменту.\n\nОтдельная история — приватность. В облачных ассистентах фрагменты кода и контекст улетают наружу, что для многих команд просто неприемлемо. Хочется локальный запуск или хотя бы прозрачный контроль того, куда и что отправляется, но так умеют далеко не все.\n\nНа этом фоне Continue выглядит прагматично. Это open source плагин без жёсткой привязки к вендору: вы сами выбираете модель - облачную или локальную, платную или бесплатную, и настраиваете конфигурацию под команду. В итоге IDE остаётся вашим рабочим местом, а не тонким клиентом к чужому облаку.\n\n\u003Ch2 id=\"chto-takoe-continue\">Что такое Continue\u003C\u002Fh2>\n\nContinue — это open source AI-ассистент, который живёт прямо в IDE и помогает писать, понимать и рефакторить код. В IDE на платформе IntelliJ он добавляет чат, контекстное автодополнение и команды для работы с выделенным фрагментом — по сути, ИИ-напарника, агента в вашем привычном редакторе.\n\nРаботает это в четырёх режимах.\n\n- Автодополнение продолжает строки и блоки с учётом контекста файла.\n- Чат “видит” проект: можно спросить про конкретный класс, попросить объяснить метод или накидать варианты рефакторинга.\n- Команды над кодом позволяют быстро переписать фрагмент, упростить его или сгенерировать тесты.\n- А в агентном режиме Continue может пройтись по нескольким файлам и собрать патч под задачу — вам останется только проверить и применить.\n\nГлавное отличие от Copilot и JetBrains AI Assistant — свобода выбора. Continue распространяется под Apache 2.0, его можно использовать и настраивать в коммерческих проектах, подключая любые модели — от облачных до локальных в вашем контуре. В итоге вы контролируете качество, стоимость и то, куда уходит контекст, а не зависите от одного “чёрного ящика” вендора.\n\n\u003Ch2 id=\"gde-rabotaet-continue-i-kak-ustanovit\">Где работает Continue и как установить\u003C\u002Fh2>\n\nВ контексте Java-разработки основным рабочим сценарием остается связка Continue + IDE на платформе IntelliJ, такой как OpenIDE, которую мы и будем использовать. Вы можете повторить всё тоже самое с любой другой IDE на базе IntelliJ Platform: WebStorm, GoLand, PhpShtorm, GigaIDE и т.д,\n\nУстановка сводится к нескольким шагам:\n\nОткрываем Settings → Plugins → Marketplace. Находим Continue, устанавливаем плагин и перезапускаем IDE.\n\n![1.png]({{strapiUrl}}\u002Fuploads\u002F1_3292905b1a.png)\n\nПосле рестарта в правой панели появляется иконка Continue.\n\n![2.png]({{strapiUrl}}\u002Fuploads\u002F2_cacff1756d.png)\n\nПри первом запуске Continue может попросить указать провайдера модели (например, локальный Ollama или облачный OpenAI) и выдать токен доступа, если используется внешний сервис. Эти настройки доступны как через UI, так и через конфигурационный файл config.json, где задаются:\n- список моделей для чата и автодополнения;\n- параметры подключения к провайдерам;\n- дополнительные опции вроде временных лимитов и размеров контекста.\n\n![3.png]({{strapiUrl}}\u002Fuploads\u002F3_587dfd6091.png)\n\n\u003Ch2 id=\"kak-polzovatsya-continue-v-povsednevnoj-rabote\">Как пользоваться Continue в повседневной работе\u003C\u002Fh2>\n\nДля начала потребуется поднять модель. Об этом я рассказывал в прошлой статье. Повседневное использование Continue можно условно разделить на три сценария.\n\nChat-панель. В правой части OpenIDE появляется отдельная панель, где можно общаться с моделью, как с собеседником. Ассистент понимает контекст проекта: можно сослаться на конкретный класс или файл, попросить объяснить, почему метод работает медленно, или предложить более аккуратную реализацию паттерна. Хорошая практика — прикладывать к вопросу фрагмент кода или ссылаться на файл, чтобы Continue точнее попал в контекст.\n\n![4.png]({{strapiUrl}}\u002Fuploads\u002F4_5e0cbf2779.png)\n\nАвтодополнение кода. При наборе кода Continue предлагает продолжение строки или блока. Важно, что подсказки строятся не только по текущей строке, но и по содержимому файла, импортам, соседним методам.\n\n![5.png]({{strapiUrl}}\u002Fuploads\u002F5_7123ad3bc9.png)\n\nКоманды над выделенным кодом. Если выделить фрагмент и вызвать контекстное меню Continue, появится список действий: упростить, отрефакторить, перевести, написать тесты и т.д. Такой режим особенно полезен для локальных, хорошо очерченных задач: переписать сложный if в более читаемый вид, вынести логику в отдельный метод, подобрать осмысленные имена.\n\n![6.png]({{strapiUrl}}\u002Fuploads\u002F6_4bd0d59f07.png)\n\n\u003Ch2 id=\"praktika-continue--spring-mcp\">Практика: Continue + Spring MCP\u003C\u002Fh2>\n\nДо этого мы говорили про Continue как про AI-плагин в IDE: чат, автодополнение и команды над кодом. Но по-настоящему интересным Continue становится, когда он подключается к внешним инструментам и начинает работать в **агентном режиме** — не только предлагать идеи, но и собирать изменения сразу в нескольких файлах.\n\nДля этого удобно использовать **MCP (Model Context Protocol)** — “разъём”, через который ассистент получает доступ к инструментам. В нашем примере Continue выступает **клиентом в IDE**, а [Spring MCP](https:\u002F\u002Fhabr.com\u002Fru\u002Fcompanies\u002Fhaulmont\u002Farticles\u002F976872\u002F) — **набором инструментов**, которые помогают анализировать Spring-проект и оформлять изменения как патч. Важно: даже в агентном режиме Continue не “коммитит” за вас — он предлагает изменения, а вы их просматриваете и принимаете. Но вы можете настроить его на автоматический коммит, если нужно.\n\n\u003Ch2 id=\"sczenarij-petclinic-vizity-i-avtopodbor-veterinara\">Сценарий: Petclinic, визиты и автоподбор ветеринара\u003C\u002Fh2>\n\nВозьмём хорошо известный проект [spring-petclinic](https:\u002F\u002Fgithub.com\u002Fspring-projects\u002Fspring-petclinic). Нас интересует сценарий работы с питомцами и визитами. Сейчас визит создаётся вручную, и логика назначения ответственного врача отсутствует.\n\nЗадача такая:\n- при создании визита **автоматически назначать ветеринара**;\n- после назначения **отправлять уведомление врачу по email**;\n- изменения должны быть оформлены аккуратно: доменная модель, миграция\u002Fсхема, сервисная логика, конфигурация — всё согласованно.\n\n![7.png]({{strapiUrl}}\u002Fuploads\u002F7_d4a0502e9e.png)\n\nНас интересуют питомцы и их визиты. Для визитов у нас есть контроллер. Мы хотим, чтобы при создании визита автоматически назначался ветеринар, а также чтобы ветеринару приходило письмо о новом назначении.\n\n![8.png]({{strapiUrl}}\u002Fuploads\u002F8_c21d56b6bb.png)\n\n### Промпт, с которого начинается агентная работа\n\nЧтобы Continue (через MCP-инструменты) попал в нужный контекст, формулируем запрос максимально конкретно: что меняем, где, какие ограничения, что считаем результатом.\n\n![9.png]({{strapiUrl}}\u002Fuploads\u002F9_5ba73fb44a.png)\n\n### Что происходит дальше: Continue собирает патч через MCP-инструменты\n\nПосле запуска задачи Continue начинает выполнять её как последовательность шагов. В чате появляются **промежуточные результаты**: какие файлы проанализированы, какие изменения предлагаются и почему.\n\nЗдесь важно, что лог показывает не “магические рассуждения”, а **ход выполнения**: анализ, предложенные правки, итоговый дифф.\n\n![10.png]({{strapiUrl}}\u002Fuploads\u002F10_a2b8664d24.png)\n\nЛоги показывают минимум, но достаточно, чтобы понимать процесс: какие инструменты вызываются и какие файлы затронуты.\n\n![11.png]({{strapiUrl}}\u002Fuploads\u002F11_692b336888.png)\n\nВ ходе выполнения задачи ассистент предлагает изменения сразу в нескольких файлах — на этом этапе, например, затронуто 4 файла (зависимости, доменная модель, сервисная логика).\n\n![12.png]({{strapiUrl}}\u002Fuploads\u002F12_f021f64365.png)\n\nSpring MCP продолжает работать. Происходит также создание миграции для добавления новой колонки в таблицу с визитами.\n\n![13.png]({{strapiUrl}}\u002Fuploads\u002F13_c2a8bde5d6.png)\n\nА для работы с email был также сконфигурирован и файл с пропертями, что отображается в логах.\n\n![14.png]{{strapiUrl}}\u002Fuploads\u002F14_fa75efb5d2.png)\n\nОсобенно приятно, что LLM не просто выкидывает результат, но и проверяет, нет ли каких-то ошибок после добавления кода.\n\n![15.png]({{strapiUrl}}\u002Fuploads\u002F15_93633c6bd9.png)\n\nА для подведения итогов в чатике можно увидеть результат проделанной работы:\n\n![16.png]({{strapiUrl}}\u002Fuploads\u002F16_fccaf9ac29.png)\n\nЭтот пример хорошо показывает разницу между “ассистентом, который советует” и “ассистентом в агентном режиме”. Continue остаётся вашим интерфейсом в IDE, а MCP-инструменты дают ему возможность действовать более системно: анализировать проект, предлагать согласованные правки и возвращать результат в виде патча.\n\nПри этом ключевое правило не меняется: агент ускоряет работу, но ответственность за качество остаётся у команды — дифф, ревью и проверки обязательны.\n\n\u003Ch2 id=\"ogranicheniya-i-podvodnye-kamni\">Ограничения и подводные камни\u003C\u002Fh2>\n\nУ Continue, как и у любых AI-инструментов, есть ограничения:\n\nКачество подсказок зависит от модели и контекста. Дешевая или слабая модель с маленьким контекстом даст поверхностные советы и будут чаще ошибаться.\n\nРиски копипасты без ревью. Помните KISS, DRY, YAGNI и т.д.? Сейчас популярность набирает YOLO (You Only Live Once) :). Не могу советовать вам его придерживаться. Даже хороший ассистент иногда генерирует некорректный или небезопасный код. Любые предложения Continue должны проходить такой же код-ревью, как изменения живого разработчика.\n\nПотенциальные проблемы с приватностью при использовании облака. Если для модели используется внешний провайдер, код и запросы уходят за пределы компании. Этот момент стоит отдельно проговаривать с безопасностью и выбирать провайдеров и настройки с учетом требований.\n\n\u003Ch2 id=\"zaklyuchenie\">Заключение\u003C\u002Fh2>\n\nContinue хорошо подходит командам, которым важно сочетание гибкости и контроля. Инструмент позволяет выбрать удобную модель, вписать ассистента в существующий стек и процессы, не привязываясь навсегда к одному вендору и его тарифам. Java-разработчики, работающие в OpenIDE и других IDE на базе IntelliJ, получают знакомую среду с новым уровнем поддержки: от автодополнения и пояснений до агентных сценариев, которые умеют работать сразу с несколькими файлами.\n\nДальнейшее развитие Continue и экосистемы вокруг него, включая интеграции с инструментами вроде Spring MCP от Amplicode, движется в сторону более сложных агентных сценариев, фоновых задач и настраиваемых воркфлоу. Чем лучше вы понимаете свои боли и процессы в разработке, тем точнее можно настроить ассистента под себя и превратить его из модного плагина в реального помощника команды.\n\nПрисоединяйтесь к  Telegram-каналам \u003Ca href=\"https:\u002F\u002Ft.me\u002F+61PSyoKNFAdhN2Ey\" target=\"_blank\">Axiom JDK\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Ft.me\u002Fopenide_official\" target=\"_blank\">OpenIDE\u003C\u002Fa> и \u003Ca href=\"https:\u002F\u002Ft.me\u002Fhaulmont_ru\" target=\"_blank\">Haulmont\u003C\u002Fa>, чтобы первыми получать важные обновления, разборы по Java-стеку, приглашения на важные события и экспертные материалы.",[245],{"title":31,"links":246},[247,250,253,256,259,262,265],{"label":248,"href":249},"Что такое Continue","#chto-takoe-continue",{"label":251,"href":252},"Где работает Continue и как установить","#gde-rabotaet-continue-i-kak-ustanovit",{"label":254,"href":255},"Как пользоваться Continue в повседневной работе","#kak-polzovatsya-continue-v-povsednevnoj-rabote",{"label":257,"href":258},"«Практика: Continue + Spring MCP»","#praktika-continue--spring-mcp",{"label":260,"href":261},"Сценарий: Petclinic, визиты и автоподбор ветеринара","#sczenarij-petclinic-vizity-i-avtopodbor-veterinara",{"label":263,"href":264},"Ограничения и подводные камни","#ogranicheniya-i-podvodnye-kamni",{"label":266,"href":267},"Заключение","#zaklyuchenie","2026-02-10T09:12:26.435Z","2026-02-20T11:57:17.866Z","2026-02-20T11:57:17.909Z",{"id":272,"documentId":273,"title":274,"seo_title":274,"summary":275,"seo_description":275,"slug":276,"published_date":277,"body":278,"content":279,"createdAt":323,"updatedAt":324,"publishedAt":325},69,"o2n9icn4fz4nji6ggzzhhkng","OpenIDE Pro: ответ на запросы бизнеса и разработчиков одновременно","За год с момента анонса проект OpenIDE вырос в стабильную, привычную и активно используемую IDE, которую все чаще выбирают разработчики и компании. Мы (консорциум из трех компаний «Группа Астра», Haulmont и Axiom JDK), создали её быстрой, предсказуемой и полностью доступной и теперь готовы к следующему шагу.","openide-pro-otvet-na-zaprosy-biznesa-i-razrabotchikov-odnovremenno","2025-12-19","Привет! Я Фёдор, CEO OpenIDE.\n\nЗа год с \u003Ca href=\"https:\u002F\u002Fhabr.com\u002Fru\u002Fcompanies\u002Fhaulmont\u002Farticles\u002F866388\u002F\" target=\"_blank\">момента анонса\u003C\u002Fa> проект OpenIDE вырос в стабильную, привычную и активно используемую IDE, которую все чаще \u003Ca href=\"https:\u002F\u002Fhabr.com\u002Fru\u002Fcompanies\u002Faxiomjdk\u002Fnews\u002F904446\u002F\" target=\"_blank\">выбирают разработчики\u003C\u002Fa> и компании. Мы (консорциум из трех компаний \u003Ca href=\"https:\u002F\u002Fastra.ru\u002F\" target=\"_blank\">«Группа Астра»\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fwww.haulmont.ru\u002F\" target=\"_blank\">Haulmont\u003C\u002Fa> и \u003Ca href=\"https:\u002F\u002Ft.me\u002F+61PSyoKNFAdhN2Ey\" target=\"_blank\">Axiom JDK\u003C\u002Fa>), создали её быстрой, предсказуемой и полностью доступной и теперь готовы к следующему шагу.\n\nВ этой статье — о том, что мы сделали, зачем мы это делаем и куда дальше движется OpenIDE.\n\nС самого начала казалось, что всё должно быть просто. Бесплатная IDE, открытый код, удобный интерфейс, всё на русском — что тут может пойти не так? Ожидалось, достаточно выложить проект и рассказать о нём, и люди сразу начнут пользоваться продуктом, ведь он решает их задачу. Однако реальность оказалась сложнее: опенсорс – это не только открытый код, это ещё и доверие. А доверие нужно заслужить. Даже бесплатное программное обеспечение не гарантирует массового использования. Пользователи хотят знать, кто стоит за проектом, как часто выходят обновления, кто отвечает за ошибки и насколько надежен инструмент.\n\n\u003Cdiv>\u003Cimg src=\"{{strapiUrl}}\u002Fuploads\u002Fc38958a94fbe1d00e70317aec0cc448b_b1bf02ee23.png\" \u002F>\u003C\u002Fdiv>\n\n\u003Ch2 id=\"dlya-kogo-i-zachem-eto-vsyo\">Для кого и зачем это всё\u003C\u002Fh2>\n\nOpenIDE решает две разные, но связанные задачи. Для разработчиков это, в первую очередь, комфорт. Речь про возможность работать в привычной среде с теми же сочетаниями клавиш, поведением, навигацией и отладкой – без «ломки» и необходимости переучиваться. Наша цель состояла в том, чтобы переход на OpenIDE шел максимально естественно: разработчик продолжает писать код, почти не замечая, что работает в другой IDE. Для компаний OpenIDE обеспечивает безопасность и предсказуемость. Сегодня даже инструмент разработки может создавать риски и стать \"уязвимостью\" – юридической, технологической или репутационной. Используя OpenIDE, компании получают контроль над своим инструментарием и независимость от внешних поставщиков.\n\n\u003Cdiv>\u003Cimg src=\"{{strapiUrl}}\u002Fuploads\u002Ff43c37aac53f334c5ae805b153f94d13_0828ded18a.png\" \u002F>\u003C\u002Fdiv>\n\n\u003Ch2 id=\"kogda-ide-stanovitsya-problemoj\">Когда IDE становится проблемой\u003C\u002Fh2>\n\nМногим знакомы такие истории. Разработка в компании идет по плану — и вдруг лицензии на ключевые инструменты перестают продлеваться. Сервер проверки лицензий становится недоступен, ключи больше не проходят активацию, и команда фактически останавливается. Задачи продолжают гореть, сроки поджимают, но IDE просто не запускается. А ведь это - \"станок для разработчиков\". Пока лично не столкнёшься, кажется, что это мелочь. Однако день простоя легко превращается в потерю денег, срыв релизов и серьезный стресс для всей команды. Из таких ситуаций и приходит понимание, почему важно иметь надежную IDE, которая доступна локально и не зависит от внешних решений и инфраструктуры.\n\nНекоторые пытаются искать обходные решения — пиратские сборки, ключи с «серых» сайтов, бесконечно продлеваемые пробные версии. Но это — зона повышенного риска: вместе с подобной сборкой можно незаметно установить вирус, майнер или троян.\n\nМне попадались случаи, когда злоумышленники каким-то образом добирались до Jenkins или других компонентов инфраструктуры и наносили серьёзный ущерб: от нарушенной работы CI\u002FCD-практик до шифрования репозиториев. И хотя в этих инцидентах не фигурировали взломанные IDE, логика атаки вполне очевидна: если злоумышленник может внедрить вредонос в окружение разработчика, то «сломанная» IDE становится одним из потенциально удобных векторов атаки.\n\nПо сути, это вопрос времени. Как только станет массовым использование неофициальных сборок (если уже не стало), злоумышленники неизбежно обратят внимание на этот канал — и будут активно его использовать. Именно поэтому важно, чтобы основным рабочим инструментом была доверенная, контролируемая и безопасная IDE.\n\n\u003Ch2 id=\"i-eshhyo-odin-moment--privatnost-koda\">И ещё один момент — приватность кода\u003C\u002Fh2>\n\nВ последние пару лет появился новый вызов – искусственный интеллект. Некоторые вендоры прямо заявляют, что их AI-ассистенты обучаются на пользовательском коде. Если вы работаете над закрытым продуктом, это существенный риск: ваш приватный код может незаметно попасть в чужую обучающую выборку. OpenIDE, напротив, полностью локален. Мы не передаём исходный код за границу и не отправляем телеметрию в сторонние облачные сервисы. Для компаний, особенно крупных, это вопрос доверия и информационной безопасности.\n\n\u003Ch2 id=\"chto-my-sdelali-za-god\">Что мы сделали за год\u003C\u002Fh2>\n\nС момента анонса OpenIDE мы провели большую работу. Собрали «чистую» IDE с полностью локализованным процессом сборки и обновления. Весь исходный код продукта и необходимая инфраструктура находятся на территории России, OpenIDE работает на собственном \u003Ca href=\"https:\u002F\u002Fhabr.com\u002Fru\u002Fcompanies\u002Faxiomjdk\u002Fnews\u002F904446\u002F\" target=\"_blank\">рантайме от Axiom JDK\u003C\u002Fa>. Мы наладили регулярные обновления, создали внутренние зеркала зависимостей и обеспечили стабильность релизов. Кроме того, развивается OpenIDE Marketplace – наша собственная площадка плагинов. Мы начали с того, что отобрали наиболее востребованные open-source плагины из JetBrains Marketplace, лицензии которых позволяют свободную редистрибуцию. В первую очередь были добавлены популярные инструменты Lombok, MapStruct Support, Python CE и другие.\n\n\u003Cdiv>\u003Cimg src=\"{{strapiUrl}}\u002Fuploads\u002F264f082b5b57caf72ec1c49644f169e1_8211389520.png\" \u002F>\u003C\u002Fdiv>\n\nТам, где лицензия разрешала только использование кода, но не распространение готовой сборки, мы пересобрали плагин своими силами. Marketplace постоянно растёт. Мы добавляем плагины не только исходя из их популярности, но и по запросам пользователей. У нас есть общий чат, где разработчики предлагают добавить нужные инструменты — и мы стараемся реагировать на эти запросы быстро и внимательно. Мы добавляем в Marketplace не только популярные плагины, но и те, которые важны отдельным командам, индивидуальным разработчикам и конкретным проектам. Например: \u003Ca href=\"https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Feasy-code-screenshots\u002F371\" target=\"_blank\">Easy Code Screenshots\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Fvaadin\u002F359\" target=\"_blank\">Vaadin\u003C\u002Fa> и другие.\n\nКстати, в этом году плагины в Marketplace начали публиковать и сторонние компании.\n\n\u003Ch2 id=\"a-nam-nekuda-zanesti\">«А нам некуда занести»\u003C\u002Fh2>\n\nКогда мы начали напрямую общаться с корпоративными клиентами, всплыла одна показательная фраза: «Нам нравится OpenIDE, но нам некуда «занести». Под «занести» в деловом контексте подразумевается возможность официально сотрудничать — заключить договор, получить поддержку по SLA, иметь понятные гарантии и точки контакта. Крупный бизнес не может просто так использовать бесплатную IDE – ему нужны юридически оформленные обязательства и надёжная поддержка.\n\nКроме того, мы регулярно получаем запросы на расширение функциональности: поддержку дополнительных языков программирования, интеграцию новых инструментов, улучшение работы с определёнными технологиями. Мы понимаем важность этих запросов, но в рамках текущего бюджета и модели открытого проекта не можем реализовать их в нужном масштабе и с должной скоростью. Поэтому возникла идея OpenIDE Pro — корпоративного продукта, который позволит обеспечивать техническую поддержку на уровне необходимых стандартов и развивать новые возможности по запросам пользователей.\n\n\u003Ch2 id=\"openide-pro--logichnoe-prodolzhenie\">OpenIDE Pro — логичное продолжение\u003C\u002Fh2>\n\nКроме поддержки в версии OpenIDE Pro появится расширенный набор возможностей, которые выходят за рамки community-версии и делают продукт полноценным инструментом для промышленной и мультистековой разработки.\n\nВажно отметить, что в свободной OpenIDE уже есть широкая базовая поддержка множества языков благодаря LSP-плагину. Мы будем продолжать его развивать: у нас есть идеи по улучшению стабильности, производительности и интеграции с инструментами экосистемы.\n\nПри этом для OpenIDE Pro мы готовим расширенную, углублённую поддержку языков, которая выходит за рамки возможностей LSP. Улучшенная навигация, анализ кода, рефакторинги, интеграция со сборкой и фреймворками — всё это войдет в Pro-версию.\n\nВот некоторые ключевые возможности:\n\n\u003Ch3 id=\"podderzhka-yazykov-i-platform\">Поддержка языков и платформ\u003C\u002Fh2>\n\n* полноценная поддержка __Go__: анализ кода, навигация, рефакторинги, интеграция со сборкой;\n* развитие инструментов Java-платформы, включая профилирование и анализ приложений;\n* заранее подготовленные индексы для Axiom JDK\n* индексы популярных библиотек. \n* средства разработки для сервера приложений Libercat\n\n\u003Ch3 id=\"frontend-i-web-razrabotka\">Фронтенд и web-разработка\u003C\u002Fh2>\n\n* улучшенная поддержка современных фреймворков: __React__, __Vue__, __Angular__;\n* инструменты для проектов на __Next.js__;\n* возможность запуска и отладки фронтенд-приложений прямо из IDE;\n* расширенные средства работы с JavaScript и TypeScript.\n\n\u003Ch3 id=\"instrumenty-razrabotki-i-diagnostiki\">Инструменты разработки и диагностики\u003C\u002Fh2>\n\n* Разработанный Axiom JDK инструмент для лёгкого мониторинга  профилирования живых Java-приложений;\n* __Database Client__ для работы с базами данных: запросы, схемы, просмотр данных;\n* __HTTP Client__ для тестирования API и интеграционных сценариев;\n\n\u003Ch3 id=\"rasshirennaya-podderzhka-spring-iz-amplicode-pro\">Расширенная поддержка Spring из Amplicode Pro\u003C\u002Fh2>\n\n* генерация Spring Boot-проектов из готовых шаблонов и корпоративных пресетов;\n* визуальное проектирование доменной модели;\n* автоматическая генерация сущностей, репозиториев, сервисов, DTO и REST-контроллеров;\n* создание CRUD-функциональности на основе модели данных;\n* встроенная поддержка JPA и удобная навигация по сущностям;\n* быстрый переход от генерации к редактированию и запуску приложения внутри IDE.\n\n\u003Ch3 id=\"plany-na-rasshirenie-yazykov\">Планы на расширение языков\u003C\u002Fh2>\n\nМы также рассматриваем возможность расширить поддержку дополнительных языков программирования. Среди направлений, которые изучаем на следующий год, — __C#__ и __С++__. Это ранние исследования, и мы не делаем формальных анонсов, но видим интерес со стороны разработчиков и компаний и понимаем, что часть этих технологических направлений со временем может войти в OpenIDE Pro.\n\nВсё это формирует новый уровень профессиональных возможностей, ориентированных на корпоративные команды и широкий технологический стек.\n\n\u003Ch2 id=\"plany-po-vypusku-openide-pro\">Планы по выпуску OpenIDE Pro\u003C\u002Fh2>\n\nПервая версия OpenIDE Pro планируется к выходу в первом квартале 2026 года. Мы уже ведем активнуюй разработку. В релиз войдут ключевые возможности, которые расширяют базовую версию OpenIDE и закрывают основные запросы от корпоративных команд.\n\nПараллельно готовим инфраструктуру: систему обслуживания клиентов, процессы реагирования по SLA, а также личный кабинет для корпоративных пользователей и авторов плагинов.\n\nНаша цель — предоставить компаниям в 2026 году стабильный, предсказуемый и юридически оформленный инструмент, который можно безопасно и официально использовать в промышленной разработке.\n\n\u003Ch2 id=\"pochemu-eto-platno--i-pochemu-eto-pravilno\">Почему это платно — и почему это правильно\u003C\u002Fh2>\n\nOpenIDE Pro будет коммерческим продуктом. Это ответ на запросы рынка, которых получили немало, и закономерное решение: корпоративная поддержка требует реальных ресурсов — инженеров, времени на тестирование, инфраструктуры и процессов по SLA. Мы отвечаем за результат. Это серьезная инженерная работа, и она не может предоставляться бесплатно.\n\nПри этом свободная версия OpenIDE будет развиваться параллельно, как открытый, доступный инструмент для всех разработчиков. Мы продолжим её создавать и поддерживать: базовая версия, Marketplace, плагины и регулярные обновления останутся открытыми и доступными всем. Более того, мы планируем усиливать бесплатную версию в нескольких направлениях:\n\n* развитие и улучшение __Docker-плагина__;\n* дальнейшее расширение __OpenIDE Marketplace__;\n* улучшенная поддержка интеграции c LSP серверами; \n* улучшение инструментов для повседневной разработки, включая навигацию, анализ и интеграции.\n\nOpenIDE Pro — это надстройка над открытой OpenIDE. Она нужна для компаний, которым важна предсказуемость, SLA и комплексная поставка всех инструментов “из коробки”. \n\n\u003Ch2 id=\"zachem-vsyo-eto-razrabotchikam\">Зачем всё это разработчикам\u003C\u002Fh2>\n\nOpenIDE Pro позволяет развивать IDE глубже и быстрее. Это означает более качественную поддержку языков, улучшенный фронтенд-стек, мощные инструменты для Spring, профилирования, анализа и диагностики — всё то, что влияет на скорость и комфорт вашей ежедневной разработки.\n\nЭто удобный инструмент, который появится на вашем рабочем месте. Наша цель проста: чтобы IDE была быстрой, предсказуемой и удобной, чтобы базовые вещи работали идеально, а сложные не мешали, а помогали быть продуктивнее.\n\n\u003Ch2 id=\"my-czenim-soobshhestvo\">Мы ценим сообщество\u003C\u002Fh2>\n\nПроект OpenIDE изначально задумывался как вклад в развитие сообщества. Поэтому для университетов, колледжей, школ и образовательных программ OpenIDE Pro будет предоставляться бесплатно. Точно так же бесплатной Pro-версия станет для всех, кто вносит вклад в опенсорс – коммитеров, контрибьюторов, мейнтейнеров.\n\nМы хотим, чтобы разработчики, которые создают открытое ПО, имели доступ к современным инструментам – без ограничений, без лишней бюрократии, без зависимости от внешних факторов.\n\n--- \n\nЕсли вы хотите попасть в ранний доступ OpenIDE Pro — можно заполнить заявку по адресу \u003Ca href=\"mailto:pro@openide.ru\" target=\"_blank\">pro@openide.ru\u003C\u002Fa>\n\n--- \n\nПрисоединяйтесь к  Telegram-каналам \u003Ca href=\"https:\u002F\u002Ft.me\u002F+61PSyoKNFAdhN2Ey\" target=\"_blank\">Axiom JDK\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Ft.me\u002Fopenide_official\" target=\"_blank\">OpenIDE\u003C\u002Fa> и \u003Ca href=\"https:\u002F\u002Ft.me\u002Fhaulmont_ru\" target=\"_blank\">Haulmont\u003C\u002Fa>, чтобы первыми получать важные обновления, разборы по Java-стеку, приглашения на важные события и экспертные материалы.",[280],{"title":31,"links":281},[282,285,288,291,294,297,300,303,306,309,312,314,317,320],{"label":283,"href":284},"Для кого и зачем это всё","#dlya-kogo-i-zachem-eto-vsyo",{"label":286,"href":287},"Когда IDE становится проблемой","#kogda-ide-stanovitsya-problemoj",{"label":289,"href":290},"И ещё один момент — приватность кода","#i-eshhyo-odin-moment--privatnost-koda",{"label":292,"href":293},"Что мы сделали за год","#chto-my-sdelali-za-god",{"label":295,"href":296},"«А нам некуда занести»","#a-nam-nekuda-zanesti",{"label":298,"href":299},"OpenIDE Pro — логичное продолжение","#openide-pro--logichnoe-prodolzhenie",{"label":301,"href":302},"Поддержка языков и платформ","#podderzhka-yazykov-i-platform",{"label":304,"href":305},"Фронтенд и web-разработка","#frontend-i-web-razrabotka",{"label":307,"href":308},"Инструменты разработки и диагностики","#instrumenty-razrabotki-i-diagnostiki",{"label":310,"href":311},"Расширенная поддержка Spring из Amplicode Pro","#rasshirennaya-podderzhka-spring-iz-amplicode-pro",{"label":313,"href":299},"Планы на расширение языков",{"label":315,"href":316},"Планы по выпуску OpenIDE Pro","#plany-po-vypusku-openide-pro",{"label":318,"href":319},"Зачем всё это разработчикам","#zachem-vsyo-eto-razrabotchikam",{"label":321,"href":322},"Мы ценим сообщество","#my-czenim-soobshhestvo","2025-12-20T14:10:06.099Z","2026-07-17T13:34:52.320Z","2026-07-17T13:34:52.353Z",{"id":327,"documentId":328,"title":329,"seo_title":330,"summary":331,"seo_description":332,"slug":333,"published_date":334,"body":335,"content":336,"createdAt":369,"updatedAt":370,"publishedAt":371},74,"nla7pt5zwy8t0wknadxvz37z","OpenIDE Pro теперь можно купить для себя","Персональные лицензии OpenIDE Pro — старт продаж","Открыли продажи OpenIDE Pro для физических лиц. Теперь IDE с поддержкой разных языков, баз данных и AI-агентов можно купить для собственных проектов. Персональная лицензия стоит 15 990 ₽ в год.","OpenIDE Pro теперь доступна для личной покупки: 15 990 ₽ в год. Поддержка языков и фреймворков, AI-агенты, базы данных и Jupyter в одной IDE.","openide-pro-personal-licenses","2026-11-09","Ранее в этом году мы запустили корпоративные продажи [OpenIDE Pro](https:\u002F\u002Fopenide.ru\u002Fpro\u002F). Интерес оказался большим: десятки российских IT-компаний пробуют OpenIDE Pro на своих рабочих задачах и проектах в рамках внутренних пилотов. Для нас это возможность получить по настоящему \"боевой фидбек с полей\" и понять, чего разработчикам не хватает.\n\nПоэтому начнём с предложения для тех, кто уже пользуется OpenIDE на работе. Если хотите продолжить работать в Pro версии, попробуйте организовать пилот через компанию. [Напишите нам](https:\u002F\u002Fopenide.ru\u002Fpro\u002F): покажем IDE команде, поможем запустить пилот с расширенным триальным периодом и пройти путь до закупки. Процесс с нашей стороны уже налажен, вам не нужно будет самостоятельно разбираться со всеми этапами.\n\nВ результате компания получает понятную поставку и поддержку, а вы продолжаете работать в инструменте, к которому привыкли.\n\n\u003Ch2 id=\"kak-kupit-samostoyatelno-bez-kompanii\">Как купить самостоятельно, без компании?\u003C\u002Fh2>\n\nМы регулярно получали и такой вопрос. Кто-то разрабатывает собственный проект, кто-то работает на себя, а у кого-то покупка через компанию по разным причинам пока не складывается.\n\nТеперь такая возможность есть: **мы открыли продажи OpenIDE Pro для физических лиц**.\n\n**Стартовая стоимость персональной лицензии — 15 990 ₽ за год**.\n\n**Купить персональную лицензию: https:\u002F\u002Fopenide.ru\u002Fpricing-pro**\n\n\u003Ch2 id=\"chto-vhodit-v-openide-pro\">Что входит в OpenIDE Pro\u003C\u002Fh2>\n\nЕсли коротко: полноценная поддержка 10+ языков программирования, работа с базами данных и AI-агентами в одной IDE. С общими настройками, Git-клиентом, терминалом и инструментами для запуска и отладки проектов.\n\n\u003Ch3 id=\"raznye-yazyki-v-odnom-proekte\">Разные языки в одном проекте\u003C\u002Fh3>\n\nJava и Kotlin, Go, C#, Python, Ruby, PHP, JavaScript и TypeScript — всё в одном дистрибутиве. Можно писать бэкенд, править фронтенд и запускать вспомогательные скрипты в одной среде. Набор поддерживаемых языков регулярно расширяется.\n\nПри этом поддержка языка для нас не заканчивается подсветкой синтаксиса. В Pro есть первоклассная поддержка Spring, React, Vue и Angular, Laravel и Symfony, FastAPI, Flask и других фреймворков. IDE помогает ориентироваться в проекте, дополнять код и выполнять типовые задачи.\n\n![language support.png]({{strapiUrl}}\u002Fuploads\u002Flanguage_support_46689d57d1.png)\n\n\u003Ch3 id=\"lyubye-ai-agenty-pryamo-v-ide\">Любые AI-агенты прямо в IDE\u003C\u002Fh3>\n\nAI-плагин (Meta Harness) позволяет работать с разными агентами через единый чат прямо в IDE. Уже можно подключить Claude Code, Codex, OpenCode и Cursor. Ставите задачу, смотрите предложенные изменения рядом с кодом, запускаете приложение и проверяете результат.\n\n![ai-plugin-agents.png]({{strapiUrl}}\u002Fuploads\u002Fai_plugin_agents_d353fc9a81.png)\n\nДля подключения агентов используем открытый протокол ACP. Поэтому выбор не ограничен этим списком: можно подключить другого совместимого агента, в том числе российского или корпоративного. Для работы с локальными моделями и корпоративными сервисами также предусмотрены OpenAI-совместимые подключения. Вы выбираете инструменты под свои задачи и требования к размещению кода.\n\nО том, как это устроено, рассказывали в [материале про AI-плагин](https:\u002F\u002Fhabr.com\u002Fru\u002Fcompanies\u002Fhaulmont\u002Fnews\u002F1086598\u002F).\n\n\u003Ch3 id=\"bazy-dannyh-ryadom-s-kodom\">Базы данных рядом с кодом\u003C\u002Fh3>\n\nВ Pro входит полноценный DB-клиент. Из IDE можно подключиться к базе, посмотреть таблицы и связи, написать SQL с автодополнением по реальной схеме, выполнить запрос и разобрать его план через EXPLAIN. Данные можно редактировать в таблице, а результаты — экспортировать.\n\n![A_wide_with_tree.png]({{strapiUrl}}\u002Fuploads\u002FA_wide_with_tree_92d98f5338.png)\n\nНапример, нашли подозрительный запрос в логах приложения — тут же проверили его на базе и вернулись к коду обработчика. Подключения, SQL и проект находятся в одном рабочем окне.\n\nПодробный разбор с подключением к PostgreSQL, EXPLAIN и экспортом есть в [отдельной статье про DB-клиент](https:\u002F\u002Fhabr.com\u002Fru\u002Fcompanies\u002Faxiomjdk\u002Farticles\u002F1067274\u002F).\n\n\u003Ch3 id=\"jupyter-dlya-raboty-s-dannymi\">Jupyter для работы с данными\u003C\u002Fh3>\n\nВ OpenIDE Pro можно редактировать, запускать и отлаживать Jupyter-блокноты, видеть таблицы и графики прямо под ячейками. Это удобно для анализа данных, экспериментов и проверки отдельных фрагментов Python-кода.\n\n![QA QA jupyter.png]({{strapiUrl}}\u002Fuploads\u002FQA_QA_jupyter_cef54287f6.png)\n\nУже поддерживаются подключения к удалённому Jupyter-серверу и JupyterHub: код выполняется на сервере, а работать с блокнотами и файлами можно из IDE.\n\nПодробнее о возможностях — на [странице Jupyter-плагина](https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Fjupyter-notebooks\u002F447\u002F).\n\n\u003Ch3 id=\"fajly-na-servere-pryamo-iz-ide\">Файлы на сервере прямо из IDE\u003C\u002Fh3>\n\n[Deployments for OpenIDE](https:\u002F\u002Fmarketplace.openide.ru\u002Fplugin\u002Fdeployments-for-openide\u002F462\u002F) позволяет передавать файлы между проектом и сервером по FTP, FTPS и SFTP. Можно сравнивать локальные и серверные версии, выбирать изменения для синхронизации и настроить автоматическую отправку файлов после сохранения.\n\nНапример, поправили файл в проекте, посмотрели различия и загрузили изменения на тестовый сервер, продолжая работать в IDE.\n\n\u003Ch2 id=\"chem-openide-otlichaetsya-ot-openide-pro\">Чем OpenIDE отличается от OpenIDE Pro\u003C\u002Fh2>\n\nЭтот вопрос нам тоже часто задают. Бесплатная OpenIDE остаётся полноценным инструментом для разработки. Pro расширяет набор языков, добавляет инструменты для фреймворков, полный DB-клиент и собственный AI-плагин (Meta Harness).\n\nКратко различия выглядят так, большинство возможностей OpenIDE Pro расчитаны на решение \"боевых\" задач быстрее для бизнеса и удобнее для профессионального разработчика:\n\n| Возможности | OpenIDE | OpenIDE Pro |\n| --- | --- | --- |\n| Редактор, Git, HTTP-клиент, терминал, маркетплейс | Есть | Есть |\n| Java и Kotlin: навигация, рефакторинги, отладка и тесты | Есть | Есть + полноценный Java Profiler |\n| Spring            | Навигация, автодополнение и базовые инструменты        | Дополнительно расширенная кодогенерация, инструменты для Spring-проектов, Spring MCP            |\n| Поддержка AI-агентов            | Нет        | Есть            |\n| Python | Базовая поддержка языка, отладка и тесты | Дополнительно инструменты для фреймворков |\n| Jupyter | Нет | Редактирование, запуск и отладка блокнотов, подключение к удалённому Jupyter-серверу и JupyterHub |\n| PHP            |Базовая поддержка языка         |Полная поддержка языка и фреймворков             |\n| JavaScript \u002F TypeScript \u002F HTML \u002F CSS | Базовая подсветка синтаксиса | Полноценная поддержка JS\u002FTS и фронтенд-фреймворков (Angular, React, Vue) |\n| Go            | Базовая поддержка языка        | Полная поддержка языка, профилировщик            |\n| C#\u002F.NET            |Нет         |Полноценная поддержка, NuGet GUI              |\n| Базы данных | Базовые SQL-возможности, просмотр структуры  БД | Полноценный DB-клиент, редактирование и экспорт данных, EXPLAIN  |\n| Docker и Docker Compose | Есть | Есть |\n| WSL\u002FWSL2            |Нет         |Есть             |\n\nКорпоративное внедрение обсуждаем отдельно: для команд доступны пилоты, поставка с договором, поддержка с SLA и варианты работы в закрытом контуре.\n\n\u003Ch2 id=\"plany-na-blizhajshee-budushee\">Планы на ближайшее будущее\u003C\u002Fh2>\n\nПомимо улучшения всех тех направлений, с которыми уже сейчас можно беспрепятственно работать в OpenIDE и OpenIDE Pro, в ближайшее время особый акцент мы сделаем на следующих направлениях: \n\n- **Развитие удалённой разработки.** Дальнейшее развитие тонкого клиента, удалённых рабочих окружений и отладки, расширение интеграции с Jupyter и Kubernetes.\n- **Брокеры сообщений.** Развитие визуальных инструментов для просмотра топиков и сообщений, инструментов администрирования Kafka\u002FRabbitMQ.\n\nПриоритеты уточняем по обратной связи. Если вам не хватает конкретного языка, фреймворка или рабочего сценария, приходите обсуждать — это помогает нам выбирать следующие задачи.\n\n\u003Ch2 id=\"pro-cenu-i-otkrytost\">Про цену и открытость\u003C\u002Fh2>\n\nНам кажется нормальным, когда стоимость рабочего инструмента можно узнать сразу. Поэтому цену мы называем открыто: не нужно сначала оставлять заявку или созваниваться с менеджером, чтобы просто понять порядок цифр. Для персональной покупки теперь есть и прямой путь оформления.\n\nЕсли OpenIDE нужна команде, [приходите на корпоративный пилот](https:\u002F\u002Fopenide.ru\u002Fpro\u002F). Если выбираете инструмент для себя — персональные лицензии теперь тоже доступны.\n\nА вопросы про возможности, стоимость и планы можно задать через [почту](https:\u002F\u002Fopenide.ru\u002Fcontacts), или прямо [в чате OpenIDE](https:\u002F\u002Ft.me\u002Fopenide_chat). Мы там есть, читаем и отвечаем!\n",[337],{"title":31,"links":338},[339,342,345,348,351,354,357,360,363,366],{"label":340,"href":341},"Как купить самостоятельно, без компании?","#kak-kupit-samostoyatelno-bez-kompanii",{"label":343,"href":344},"Что входит в OpenIDE Pro","#chto-vhodit-v-openide-pro",{"label":346,"href":347},"Разные языки в одном проекте","#raznye-yazyki-v-odnom-proekte",{"label":349,"href":350},"Любые AI-агенты прямо в IDE","#lyubye-ai-agenty-pryamo-v-ide",{"label":352,"href":353},"Базы данных рядом с кодом","#bazy-dannyh-ryadom-s-kodom",{"label":355,"href":356},"Jupyter для работы с данными","#jupyter-dlya-raboty-s-dannymi",{"label":358,"href":359},"Файлы на сервере прямо из IDE","#fajly-na-servere-pryamo-iz-ide",{"label":361,"href":362},"Чем OpenIDE отличается от OpenIDE Pro","#chem-openide-otlichaetsya-ot-openide-pro",{"label":364,"href":365},"Планы на ближайшее будущее","#plany-na-blizhajshee-budushee",{"label":367,"href":368},"Про цену и открытость","#pro-cenu-i-otkrytost","2026-11-09T07:40:39.843Z","2026-11-09T08:18:45.509Z","2026-11-09T08:18:45.545Z",{"pagination":373},{"page":10,"pageSize":374,"pageCount":10,"total":106},25,{"data":376,"meta":500},[377,434],{"id":237,"documentId":238,"title":239,"seo_title":239,"summary":240,"seo_description":240,"slug":241,"published_date":242,"body":243,"content":378,"createdAt":268,"updatedAt":269,"publishedAt":270,"blogauthor":388,"cover":396},[379],{"title":31,"links":380},[381,382,383,384,385,386,387],{"label":248,"href":249},{"label":251,"href":252},{"label":254,"href":255},{"label":257,"href":258},{"label":260,"href":261},{"label":263,"href":264},{"label":266,"href":267},{"id":115,"documentId":389,"firstname":390,"lastname":391,"createdAt":392,"updatedAt":393,"publishedAt":394,"slug":395},"dyxqh9wchsixs1rtk3o228ob","Александр","Калинин","2026-02-18T07:54:00.292Z","2026-02-20T12:02:35.674Z","2026-02-20T12:02:35.714Z","aleksandr-kalinin",{"id":141,"documentId":397,"name":398,"alternativeText":18,"caption":18,"width":399,"height":400,"formats":401,"hash":428,"ext":405,"mime":406,"size":429,"url":430,"previewUrl":18,"provider":431,"provider_metadata":18,"createdAt":432,"updatedAt":432,"publishedAt":433,"focalPoint":18},"e0uiw3wsr14ryay8z2k655kc","AI Assistent_832x400.png",832,400,{"thumbnail":402,"small":412,"medium":420},{"name":403,"hash":404,"ext":405,"mime":406,"path":18,"width":407,"height":408,"size":409,"sizeInBytes":410,"url":411},"thumbnail_AI Assistent_832x400.png","thumbnail_AI_Assistent_832x400_0d3ea44651",".png","image\u002Fpng",245,118,34.82,34817,"\u002Fuploads\u002Fthumbnail_AI_Assistent_832x400_0d3ea44651.png",{"name":413,"hash":414,"ext":405,"mime":406,"path":18,"width":415,"height":416,"size":417,"sizeInBytes":418,"url":419},"small_AI Assistent_832x400.png","small_AI_Assistent_832x400_0d3ea44651",500,240,127.38,127376,"\u002Fuploads\u002Fsmall_AI_Assistent_832x400_0d3ea44651.png",{"name":421,"hash":422,"ext":405,"mime":406,"path":18,"width":423,"height":424,"size":425,"sizeInBytes":426,"url":427},"medium_AI Assistent_832x400.png","medium_AI_Assistent_832x400_0d3ea44651",750,361,279.8,279795,"\u002Fuploads\u002Fmedium_AI_Assistent_832x400_0d3ea44651.png","AI_Assistent_832x400_0d3ea44651",68.22,"\u002Fuploads\u002FAI_Assistent_832x400_0d3ea44651.png","local","2026-02-15T11:56:10.217Z","2026-02-15T11:56:10.219Z",{"id":272,"documentId":273,"title":274,"seo_title":274,"summary":275,"seo_description":275,"slug":276,"published_date":277,"body":278,"content":435,"createdAt":323,"updatedAt":324,"publishedAt":325,"blogauthor":452,"cover":461},[436],{"title":31,"links":437},[438,439,440,441,442,443,444,445,446,447,448,449,450,451],{"label":283,"href":284},{"label":286,"href":287},{"label":289,"href":290},{"label":292,"href":293},{"label":295,"href":296},{"label":298,"href":299},{"label":301,"href":302},{"label":304,"href":305},{"label":307,"href":308},{"label":310,"href":311},{"label":313,"href":299},{"label":315,"href":316},{"label":318,"href":319},{"label":321,"href":322},{"id":453,"documentId":454,"firstname":455,"lastname":456,"createdAt":457,"updatedAt":458,"publishedAt":459,"slug":460},14,"emaxij9v7klpds2s95ggj92z","Федор","Сазонов","2025-12-20T14:07:50.596Z","2026-02-13T09:26:41.422Z","2026-02-13T09:26:41.455Z","fedor-sazonov",{"id":462,"documentId":463,"name":464,"alternativeText":18,"caption":18,"width":465,"height":466,"formats":467,"hash":494,"ext":405,"mime":406,"size":495,"url":496,"previewUrl":18,"provider":431,"provider_metadata":18,"createdAt":497,"updatedAt":498,"publishedAt":499,"focalPoint":18},4,"ukfc073eik9recfjz0g9dmr0","Open_IDE_PRO_V_P_B_V_M_1_264f359eda.png",1664,800,{"thumbnail":468,"small":474,"medium":480,"large":486},{"name":469,"hash":470,"ext":405,"mime":406,"path":18,"width":407,"height":408,"size":471,"sizeInBytes":472,"url":473},"thumbnail_Open IDE PRO_╨Ь╨╛╨╜╤В╨░╨╢╨╜╨░╤П ╨╛╨▒╨╗╨░╤Б╤В╤М 1.png","thumbnail_Open_IDE_PRO_V_P_B_V_M_1_264f359eda",43.4,43403,"\u002Fuploads\u002Fthumbnail_Open_IDE_PRO_V_P_B_V_M_1_264f359eda.png",{"name":475,"hash":476,"ext":405,"mime":406,"path":18,"width":415,"height":416,"size":477,"sizeInBytes":478,"url":479},"small_Open IDE PRO_╨Ь╨╛╨╜╤В╨░╨╢╨╜╨░╤П ╨╛╨▒╨╗╨░╤Б╤В╤М 1.png","small_Open_IDE_PRO_V_P_B_V_M_1_264f359eda",148.32,148321,"\u002Fuploads\u002Fsmall_Open_IDE_PRO_V_P_B_V_M_1_264f359eda.png",{"name":481,"hash":482,"ext":405,"mime":406,"path":18,"width":423,"height":424,"size":483,"sizeInBytes":484,"url":485},"medium_Open IDE PRO_╨Ь╨╛╨╜╤В╨░╨╢╨╜╨░╤П ╨╛╨▒╨╗╨░╤Б╤В╤М 1.png","medium_Open_IDE_PRO_V_P_B_V_M_1_264f359eda",318.24,318243,"\u002Fuploads\u002Fmedium_Open_IDE_PRO_V_P_B_V_M_1_264f359eda.png",{"name":487,"hash":488,"ext":405,"mime":406,"path":18,"width":489,"height":490,"size":491,"sizeInBytes":492,"url":493},"large_Open IDE PRO_╨Ь╨╛╨╜╤В╨░╨╢╨╜╨░╤П ╨╛╨▒╨╗╨░╤Б╤В╤М 1.png","large_Open_IDE_PRO_V_P_B_V_M_1_264f359eda",1000,481,569.53,569530,"\u002Fuploads\u002Flarge_Open_IDE_PRO_V_P_B_V_M_1_264f359eda.png","Open_IDE_PRO_V_P_B_V_M_1_264f359eda",339.01,"\u002Fuploads\u002FOpen_IDE_PRO_V_P_B_V_M_1_264f359eda.png","2025-12-21T13:32:59.458Z","2025-12-26T16:36:28.300Z","2025-12-21T13:32:59.461Z",{"pagination":501},{"page":106,"pageSize":502,"pageCount":106,"total":503},7,9,1794478168527]