Модернизировать Java с помощью... Заметка
GitLab на русском

Модернизировать Java с помощью Cursor и GitLab

Модернизация Java 8 до Java 21 — это сложная задача, затрагивающая множество аспектов разработки программного обеспечения. ИИ-агенты для написания кода, такие как Cursor, могут эффективно справляться с узконаправленными задачами, например, с исправлением одного неработающего теста. Однако они не могут самостоятельно определить общую стратегию безопасности для многоэтапной миграции. GitLab через свою платформу Duo Agent оркестрирует ИИ-рабочие процессы на протяжении всего жизненного цикла программного обеспечения для сертификации этих изменений, сгенерированных ИИ. Иерархия проблем и сервер протокола контекста модели (MCP) GitLab предоставляют Cursor необходимый контекст, позволяя ему получать доступ к функциям GitLab, таким как CI/CD, сканирование безопасности и анализ влияния.Учебное пособие демонстрирует три сценария использования: исправление неработающего сквозного теста, подготовка контрольных точек качества для модернизации и модернизация обработки HTTP-соединений. Прогрессия ставит во главу угла начало с малого, добавление контекста проекта, а затем модернизацию одной границы за раз, обеспечивая безопасность посредством строгих процессов проверки и тестирования. Первый сценарий использования включает исправление ошибки, при которой сборщик метрик Java HTTP некорректно обрабатывал все ответы 2xx как успешные, даже когда ожидалась ошибка 503. Cursor определил первопричину, исправил проблему, и полученный запрос на слияние был проверен и объединен, установив базовый уровень поведения.Второй сценарий использования посвящен подготовке к модернизации с Java 8 до 21 путем создания надежных контрольных точек качества. Это включает настройку GitLab MCP в Cursor для переноса контекста проекта в IDE, что позволяет Cursor получать доступ к деталям планирования, обсуждениям и зависимостям. Первоначальный шаг гарантирует, что конвейеры CI/CD могут тестировать как Java 8, так и Java 21 параллельно, с увеличением покрытия тестами. Затем Cursor реализует эти изменения, а запрос на слияние запускает конвейеры CI/CD и проверку кода, при этом любые отзывы обрабатываются через Developer Flow GitLab.Последний сценарий использования включает модернизацию обработки HTTP-соединений путем замены устаревшего API HttpURLConnection на java.net.http.HttpClient Java 21. Это рассматривается как ограниченный рабочий элемент для изоляции изменений поведения. Cursor реализует замену, используя сервер GitLab MCP для контекста, а изменения проверяются локально с использованием настройки Docker Compose. Такой подход гарантирует, что каждый этап модернизации остается управляемым, поддающимся проверке и обратимым, поддерживая высокий уровень безопасности на протяжении всего процесса миграции.