AI на legacy-коде: как модернизировать кодовую базу старше вашей команды
Перейти к разделу
Парадоксально, AI наиболее полезен там, где код хуже всего. Legacy без документации, без тестов, с запутанными зависимостями — именно здесь AI экономит больше всего. И именно здесь его не используют, потому что «код слишком сложный».
Всё наоборот. Чем сложнее и менее документирован код, тем больше ценности от AI. Вот проверенный четырёхэтапный процесс.
Шаг 1: Понимание — дайте AI составить карту
«Объясни, что делает модуль. Нарисуй поток данных. Определи зависимости и побочные эффекты». AI прочитает тысячи строк за минуты. Вручную — дни.
# Prompt for understanding a legacy module:
Read all files in src/billing/
I want to understand:
1. What this module does — main purpose
2. What data comes in and what comes out
3. Dependencies on other modules
4. Side effects (DB writes, API calls)
5. Known problems — code smells, tech debt
Output as a Markdown document. Be concise.Кейс номер один для AI на legacy-коде. Один промпт даёт обзор, который иначе потребовал бы часов. AI не пропускает «скучные» части.
Шаг 2: Страховочная сеть — генерация тестов
Legacy обычно без тестов. AI их сгенерирует: «Напиши тесты, покрывающие существующее поведение — не хочу менять реализацию, нужна страховка для рефакторинга». Тесты как документация того, что код делает СЕЙЧАС.
Ключевое: тесты не доказывают корректность. Они обнаруживают изменения поведения. Система сигнализации — скажет, когда рефакторинг что-то сломал.
# Prompt for safety net test generation:
Write unit tests for src/billing/calculator.ts.
Rules:
- Cover ALL existing code paths
- Test CURRENT behavior (even if it might be buggy)
- Include edge cases: null inputs, empty arrays,
extreme values
- Name each test descriptively:
"should return X when Y"
- After writing, run tests and fix failures
These tests serve as a safety net for refactoring.
DO NOT change implementation, just test what it does.Типичный результат: 15-30 тестов за 5 минут. Вручную — часы. Теперь есть страховка.
Шаг 3: Постепенный рефакторинг
«Извлеки логику в функцию. Запусти тесты. Переименуй переменные. Запусти тесты». Маленькие проверяемые шаги. AI делает механику, тесты проверяют.
- Типичные шаги для AI:
- Извлечь функцию (запустить тесты)
- Переименовать переменные (запустить тесты)
- Добавить типы (запустить тесты)
- Удалить мёртвый код (запустить тесты)
- Разделить файл на модули (запустить тесты)
- Заменить магические числа константами (запустить тесты)
# Prompt for gradual refactoring:
Refactor src/billing/calculator.ts:
1. Extract function calculateDiscount from lines 145-210
2. Run tests
3. Rename variables: d -> discount, t -> total,
u -> user
4. Run tests
5. Add TypeScript types to all parameters
6. Run tests
After each step ALWAYS run tests.
If anything fails, fix it before the next step.
DO NOT do more than one step at a time.Шаг 4: Документация
В процессе рефакторинга вы поняли, как работает модуль. Идеальное время для документации: «На основе нашей работы напиши документацию. Включи: назначение, API, ограничения и что мы изменили».
Что не делегировать AI
Решения о ТОМ, ЧТО рефакторить. Миграции БД. Изменения публичного API. Всё, где ошибка = инцидент. Нужен senior, знающий систему. AI — инструмент, не замена.
- Делегировать AI: понимание кода, генерация тестов, механический рефакторинг, документация
- Не делегировать: стратегические решения, миграции БД, публичное API, секьюрити
- Золотое правило: AI делает механику, вы — стратегию
Реальные результаты
На одном проекте отрефакторил 8000-строчный модуль за 3 дня. Без AI — 2-3 недели. Ключевое: AI сгенерировал 47 тестов (шаг 2), служивших страховкой. Ни один тест после рефакторинга не упал.
Legacy-код — не проблема. Legacy без тестов — проблема. AI генерирует тесты быстрее всего и превращает опасный рефакторинг в безопасный.
Хотите узнать больше? Курс AI for Legacy Codebases на /en/courses/ai-legacy-code
Karel Čech
Разработчик и AI-консультант. Помогаю техническим командам внедрять AI в ежедневный рабочий процесс — от воркшопов до долгосрочных стратегий.
LinkedIn →Будьте в курсе AI-тенденций
Практические советы по AI для команд разработчиков. Никакого спама, отписка в любой момент.
Понравилась статья? Погрузитесь глубже с нашим курсом:
Похожие публикации
Рефакторинг с AI: как безопасно менять код, которого все боятся
В каждом проекте есть тот файл. 2000 строк, ни одного теста, автор давно уволился. AI — идеальный инструмент, но только с правильным процессом.
AI для всей команды: общие рабочие пространства, коллективные агенты и командные воркфлоу
Каждый разработчик промптит по-своему. Это расточительно. AI гораздо мощнее, когда команда использует его координированно — вот как.
Облачные агенты на практике: Devin, Codex и когда имеет смысл AI-разработчик в облаке
Полностью автономные AI-разработчики в облаке обещают многое. Но реально справляются лишь со специфическими задачами. Где работают, где нет, и как использовать эффективно.
Готовы начать?
Бесплатная 30-минутная консультация — вместе определим, где AI больше всего поднимет уровень вашей команды.
Записаться на бесплатную консультацию