Disposable code (одноразовый, короче)
Недавно услышал от коллеги о концепте, который, на мой взгляд, хорошо применим для фронтенда.
В эпоху AI ценность кода стремится к нулю. Важен business value и скорость поставки. Сейчас можно за 0 рублей сгенерировать фичу. Далее две крайности: задумываться о поддерживаемости кода, делать много итераций ревью и т.д. либо просто нажать apply и поехали в прод.
И вот disposable код предлагает принять факт, что код вообще не должен быть масштабируемым или поддерживаемым. В следующий раз, когда этот функционал придется развивать, мы его быстро перегенерируем.
Так срезается значительная часть расходов и радикально увеличивается скорость поставки.
Думаю, это очень перспективный подход, но понимаю, что он требует даже более высокого уровня компетенций, чем для простого написания кода руками.
Чтобы disposable подход заработал, вам нужно:
• Настроить архитектуру и ограничения в системе так, чтобы генерируемые модули не увеличивали связность и были максимально изолированными друг от друга. Заменяя модуль X, вы не должны влиять на остальную часть системы, сохраняя контроль над скоупом.
• Подготовить точные правила для LLM, чтобы она правильно вносила эти изолированные изменения.
• Поддерживать актуальность требований, например, следовать spec driven подходу, чтобы при повторной генерации не потерялась часть существующего функционала.
• Иметь качественный UI-кит и дизайн-гайдлайны, чтобы при генерации интерфейсов они оставались консистентными.
• Организовать зрелые практики QA, например, следовать TDD или покрывать функционал end-2-end тестами (которые тоже можно быстро генерировать).
• Обладать опытом, чтобы здраво оценивать риски и применять disposable код там, где эти изменения не могут повлиять на продукт глобально. Например, какой-нибудь модуль оплаты я бы ревьюил гораздо более тщательно, чем новый изолированный функционал, который запускаем в режиме proof of concept.
Что думаете?