Дешевый AI-рефакторинг производит новый долг
Как и неконтролируемые джуны наносят проекту больше вреда, чем пользы — дешевые AI решения могут создать технический долг, запутать все, добавить ненужных зависимостей, удалить или переименовать методы и классы, которые содержат знания о предметной области, просто потому, что это не типичные названия, а словаря домена и технического задание AI не нашло, поэтому посчитало эти имена неудачными названиями. Я уже не говорю, про типичные проблемы: дыры в безопасности, повышение когнитивной сложности, крипто-код...
Проблема не в AI. Проблема в том, что AI научился рефакторингу на примере некачественных проектов из интернета и распространенных мнений, о важности микро-оптимизации, субъективных суждений "о красоте кода", легаси примерах, которых так много в сети.
- Переименовать переменные.
- Разбить файл.
- Добавить абстракции.
- Переписать на модный стиль.
- Получить зеленые тесты.
- Сделать вид, что система стала лучше.
Но рефакторинг без понимания модели, границ ответственности, инвариантов, жизненного цикла данных и реальных причин сложности почти всегда переносит долг в другое место.
- Было плохо явно.
- Стало красиво неявно.
AI легко генерирует синтаксически хороший код. Он может быстро привести проект к единому стилю, убрать дублирование, упростить локальные конструкции.
Но он не знает, почему эта странная проверка появилась три года назад.
Не знает, какой клиент зависит от побочного эффекта.
Не знает, где бизнес-правило, а где случайная реализация.
Не знает, что эта "лишняя" ветка держит продакшен от редкого, но дорогого сбоя.
Дешевый AI-рефакторинг опасен именно тем, что выглядит профессионально.
Он создает код, который проще читать в pull request, и так и хочется принять, но сложнее сопровождать в системе. Код, который проходит ревью по стилю, но ломает архитектурную задумке. Код, который уменьшает локальную сложность и увеличивает системную.
Хороший рефакторинг начинается с определения цели, с вопроса: какой долг мы реально уменьшаем?
Этому посвящены уже 4 темы в NextTick, и мы разберем это глубже на ближайших стримах по архитектуре.
— Тимур
Post #35
2.51K
- 💯 24
- 👍 15
- ❤ 1