AI может написать сотню строк за минуту. Проблема в том, что для хорошего решения эта сотня строк могла быть не нужна.
Представим систему зависимых значений. Изменение одного поля должно пересчитать несколько других.
Если данные хранятся в обычном массиве, приходится описывать:
— как найти зависимые элементы;
— в каком порядке их пересчитать;
— как отметить уже обработанные;
— как избежать повторных вычислений;
— как обнаружить зацикливание.
Появляются флаги, вложенные условия и повторные обходы. AI быстро дописывает эту логику. Затем так же быстро добавляет новые проверки для каждого пограничного случая.
Кода становится больше, но система не становится понятнее.
Изменим структуру данных
Зависимости можно представить как граф: каждое значение — вершина, каждая зависимость — направленная связь.
Тогда операция выглядит проще:
1) Найти измененную вершину.
2) Получить связанные вершины.
3) Пересчитать их в нужном порядке.
4) Отдельно проверить граф на циклы.
Часть логики, которую раньше приходилось описывать условиями, теперь выражена самой структурой данных.
Что это меняет при работе с AI
Если структура выбрана плохо, AI приходится передавать десятки условий, исключений и договоренностей между модулями. Модель начинает терять ограничения, дублировать проверки и исправлять одну ветку за счет другой.
Если сложный механизм спрятан за надежным интерфейсом, AI видит несколько понятных операций:
addDependency()updateValue()getAffectedNodes()validateGraph()Контекст меньше. Промпт короче. Результат проще проверить.
Так работают хорошие библиотеки и платформы: сложная задача решается один раз, тестируется отдельно и отдается прикладному коду через понятный интерфейс. AI не изобретает механизм заново в каждом продукте, а использует готовый блок.
AI ускоряет не только разработку
Он так же хорошо ускоряет производство лишнего кода. Если инженер не видит структуру задачи, он получает больше файлов, условий и зависимостей — только быстрее.
Поэтому главный навык работы с AI — не умение составлять длинные промпты. Важнее уметь:
— выделять сущности и связи;
— выбирать подходящую структуру данных;
— отделять системный код от прикладного;
— ограничивать интерфейс;
— проверять инварианты.
Разработчик просит AI дописать очередное условие. Инженер сначала спрашивает: почему это условие вообще понадобилось?
В бесплатном канале мы разбираем отдельные принципы такого мышления. В платной Гильдии связываем их в систему: работаем с архитектурными задачами, обсуждаем решения на лекциях и стримах, учимся видеть последствия до написания кода.
Это помогает получать от AI не больше кода, а более простые и надежные системы.
