Современные команды программного обеспечения сталкиваются с двойной связью: быстрее поставляйте бизнес -ценность при сохранении стареющих, сложных кодовых баз. Для руководителей скорость доставки является наиболее четким показателем качества программного обеспечения. Когда он замедляется, это признак того, что качество разрушается под поверхностью. И результат этого замедления является предсказуемым — растущий технический долг, растущая когнитивная нагрузка и медленные, рискованные циклы обновления.
Модернизация кода всегда была сложной. Теперь, когда ИИ вступает в рабочие процессы разработчика, возникает вопрос: улучшает ли он модернизацию или просто ускоряет его и увеличивает его риски?
В этой статье я объясню, где ИИ помогает, где оно не хватает, и почему сочетание его с детерминированной автоматизацией имеет решающее значение для быстрого движения, не нарушая все. Это не дебаты между человеком и машиной. Речь идет о строительных системах, где каждая часть делает то, что лучше всего — и может быть доверяем это сделать.
Узкое место модернизации кода
Большинство предприятий несут годы, иногда десятилетия технического долга. Код может все еще работать, но его трудно изменить. Почему? Зависимости устарели, интерфейсы хрупкие, а код написан для устаревших версий, таких как Java 6 или ранняя весенняя загрузка. Эти фонды теперь ограничивают вашу способность развиваться.
Со временем все программное обеспечение имеет тенденцию становиться все более сложным. Команды делают компромиссы, чтобы унести сроки. Организации масштабируются, развиваются бизнес -области, а инструменты поддержки становятся устаревшими. Часть этого долга внутренняя, но большая часть его налагается извне. Проекты OSS часто обновляются, поставщики выпускают API, и вы остаетесь работать на устаревших рамках, полных CVE.
В прошлом мы относились к программному обеспечению, таким как проекты — построены один раз и откладывали. Но сегодняшние системы собраны и взаимозависимы. Чтобы сохранить их функциональными, мы должны относиться к ним как к продуктам: постоянно поддерживаются, регулярно обновляются и постоянно развиваются.
В результате разработчики теперь проводят почти половину своего времени на обслуживание кода. Это включает в себя решение обновлений, деформации, исправления ошибок и исправлений безопасности, часто в нескольких репозиториях и с непоследовательным инструментом. Хуже того, многие из этих изменений вообще никогда не реализуются. Они зарегистрированы, деприоритизированы или частично завершены, оставляя след риска и несоответствия.
Задача не является отсутствием усилий разработчика. Дело в том, что системы, которые мы создали, не предназначены для частых, безопасных и масштабируемых изменений.
Что ИИ может (и не может) сделать для модернизации
ИИ интегрируется практически в каждую часть жизненного цикла разработки программного обеспечения. Более 90% разработчиков в настоящее время используют такие инструменты, как Github Copilot, Amazon Q или другие помощники искусственного интеллекта. Эти инструменты полезны. Они помогают с шаблоном, автозаполнением, документацией и навигацией незнакомых библиотек.
Но одного ИИ недостаточно для модернизации. Модели вероятностны. Они не имеют собственного понимания вашей системы сборки, графика зависимости или правил форматирования кода. Они не знают, какие изменения безопасны для сотен репозиториев или как эти изменения могут сломать услугу вниз по течению.
В регулируемых отраслях или критически важных системах даже небольшая ошибка, введенная ИИ, может иметь огромные последствия. Вот почему человеческим разработчикам все еще нужно просмотреть, проверять и проверять все изменения. Результатом является более медленный процесс и ограниченное доверие. Это просто не тот процесс, который может масштабироваться в соответствии с потребностями современных кодовых баз предприятия.
Отсутствующий ингредиент: детерминизм
ИИ отлично подходит для сочетания новых функций. Но для крупномасштабной модернизации кода точность важнее творчества.
Вот где появляется OpenRewrite. Openrewrite-это структура рефакторинга с открытым исходным кодом, разработанную для обеспечения безопасного, масштабируемого и автоматического преобразования кода. Он анализирует исходный код с использованием анализатора компилятора. Он создает бессмысленное семантическое дерево (LST) — структурированное представление, которое отражает полную верность кода, включая синтаксис, семантику, типы и форматирование.
В основе Openrewrite лежат рецепты: детерминированные программы, которые кодируют логику поиска и преобразования. Эти рецепты могут быть протестированы, версировать и применять последовательно через одно приложение или тысячи репозиториев. Они следуют четко определенным правилам для преобразования кода с точностью и воспроизводимостью.
Когда вы используете Openrewrite, вы не надеетесь, что код будет компилироваться после факта. Вы используете структуру, которая глубоко понимает код и применяет изменения таким образом, чтобы структурно и семантически правильные.
Благодаря последнему поколению агентов кодирования ИИ, таких как Claude Code, стоимость создания пользовательских рецептов значительно снизилась. То, что когда -то потребовалось часы, чтобы написать, теперь может быть составлено за считанные минуты.
Заземление ИИ в данных вашей кодовой базы
Модели ИИ не знают о вашей кодовой базе. Они не видят ваш график зависимости, систему сборки или архитектурные соглашения. Они генерируют выход на основе вероятности, а не структуры. Чтобы надежно модернизировать с ИИ, вам нужно больше, чем подсказка. Вам нужен структурированный доступ к вашим собственным данным Кодекса с компиляторами.
Например, когда Moderne представила Moddy, нашего агента Multe-Repo AI, целью не было воспроизвести помощников по кодированию, таких как Copilot или Amazon Q. Вместо этого мы позволили Moddy использовать богатые семантические данные, уникальные для кодовой базы каждого клиента, чтобы обобщать и разум обо всем системах.
Работа Модди заключается в том, чтобы организовать модернизацию в масштабе. Это начинается с подсказки — что -то вроде «обновить все весенние сервисы до версии 3» или «Найти использование устаревшего криптора». Оттуда он анализирует выходы рецептов в вашей кодовой базе, определяет, где необходимо изменение, и направляет безопасные изменения в исходный код с использованием детерминированных рецептов.
Модди основан на богатстве фактической кодовой базы через Openrewrite (при котором рецепты становятся инструментами, которые могут извлечь структурированные идеи и выполнять точные преобразования). Эта заземление имеет значение. Языковые модели вероятностны, и хотя они быстро развиваются, это ограничение не исчезает.
По мере того, как LLM становятся более коммодитизированными, долгосрочное значение заключается не в моделях, а в данных и системах, которые их питают. Они столь же полезны, как и контекст, который им дал. Без этого доступа ИИ работает в темноте — отключен от полной структуры всей системы.
Как использовать ИИ для модернизации правильной
Руководители завалены тем, что виды продукта ИИ и внутреннее давление для принятия новейших помощников по кодированию. Но если цель состоит в том, чтобы улучшить качество программного обеспечения и ускорить производительность инженерии, что на самом деле работает?
Это зависит от того, какая проблема модернизации, которую вы решаете:
- Используйте генеративный ИИ для реплики и генерации кода чистого кода. Это особенно полезно, когда реверс -инженерные устаревшие системы, проектирование новых компонентов или переписывание кода на разных языках. (Подумайте о коболе в Java или Perl на Python).
- Используйте детерминированную автоматизацию рефакторирования как Openrewrite (и платформы, построенные на нем) для модернизации существующих систем. Они лучше всего подходят для таких задач, как удаление устаревших API, модернизация рамок или исправление уязвимых библиотек с целью внесения безопасных, повторяющихся изменений в масштабе.
И независимо от того, что в случае использования помните эти стратегии:
- Поместите разработчиков под контроль крупномасштабных изменений. Используйте детерминированные инструменты и тестируемые рецепты, чтобы укрепить доверие к автоматизации. Когда разработчики могут точно видеть, что меняется и почему — через один или тысяча репозитории — они получают уверенность, чтобы утверждать и применять преобразования в масштабе.
- Используйте свой самый ценный актив: структурированные данные кода. Точные, без потерь представления вашего кода разблокируют все остальное — способность поиска, автоматизация и безопасная модернизация. Структурированные данные кода должны рассматриваться как инфраструктура.
- Объединить ИИ с детерминированным исполнением. Пусть AI помогает на навигации, обнаружению шаблонов, суммировании и оркестровке, но используйте рецепты, основанные на правилах для поиска с точностью, сбора данных исходного кода и внести точные, проверяемые изменения.
- Сделать модернизация непрерывной. Не рассматривайте это как одноразовый проект. Создайте его в жизненный цикл своего программного обеспечения, чтобы ваши системы безопасно развивались с течением времени.
Если вы хотите, чтобы ИИ был другом модернизации, предоставьте ему правильные инструменты, данные и границы для создания более безопасного, чистого и более адаптируемого кода в любом масштабе.
Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Ольга имеет обширный опыт создания программных решений для корпоративных предприятий. Ранее она работала в качестве менеджера по техническим продуктам в Pivotal Focure на решениях подачи приложений и управления (например, Spinnaker), и была ведущим инженером -программным обеспечением и менеджером Dell EMC, работая в тесном контакте … Подробнее от Olga Kundzich