Введение:
Данный документ описывает систему взглядов и практических правил для интеграции ИИ-ассистентов в процесс разработки программного обеспечения. Цель — не запретить использование ИИ, а превратить его в управляемый инструмент, который повышает эффективность, не компрометируя качество, безопасность и ответственность инженера.
Раздел I: Философские основы и расстановка ролей
ИИ — это не программист. ИИ — это инструмент, усилитель интеллекта, а не замена инженеру. Вы сохраняете полный контроль и ответственность за результат.
Не доверять ИИ разработку архитектуры и интерфейсов. Создание композиции — это задача для программного инженера. ИИ — модель по обработке текстовых данных, не обладающая системным мышлением.
Принцип «красной кнопки». Если вы видите негативные последствия использования ИИ (снижение качества, рост техдолга), вы обязаны прекратить или ограничить его использование. Вы всегда у руля.
Принцип инструмента, а не коллеги. Используйте ИИ для автоматизации рутины, а не для принятия решений, требующих глубокого контекста.
Принцип командного соглашения. Использование ИИ — это не личное дело разработчика, а командная практика, регламентированная общими правилами и стандартами.
Раздел II: Практическое взаимодействие и коммуникация
Предоставляйте ассистенту интерфейс и требования. Формулируйте задачу как строгий контракт: имя, сигнатура, типы, ограничения. Это снижает неопределенность и повышает качество ответа.
Принцип «защитного программирования» для промптов. Формулируйте запросы, явно перечисляя требования, ограничения и запреты, минимизируя возможность неверного толкования.
Декомпозиция. Если ассистент не справляется с задачей, разбейте ее на более мелкие подзадачи. Это прямое применение принципов слабой связанности и единой ответственности к диалогу с ИИ.
Принцип «��бучающегося у вас». Перед началом сессии предоставьте ИИ минимальный, но достаточный контекст вашего кода (ключевые интерфейсы, структуры), превращая его в «стажера, который прочитал ТЗ».
Принцип контекстуальной целостности. Помните, что каждая сессия с ИИ — новая. Не полагайтесь на его память о прошлых диалогах; подгружайте ключевой контекст заново.
Раздел III: Контроль качества, безопасность и верификация
ИИ — ненадежный справочник и опасный генератор тестов. Слепое доверение справке и тестам от ИИ ведет к ошибкам. Всегда перепроверяйте информацию и проводите тщательный ревью сгенерированных тестов.
Двойной контроль тестирования. К функциям, сгенерированным или значительно измененным с помощью ИИ, применяйте вдвое более строгие нормы тестирования (например, в 2 раза больше тест-кейсов).
У медали две стороны. Используйте ИИ для критического анализа его же кода в отдельной сессии. Попросите его выступить в роли опытного ревьюера, чтобы выявить скрытые уязвимости и антипаттерны.
Принцип единого источника истины. ИИ — это мнение, а не истина. Код, документация и спецификация — истина. Все, что говорит ИИ, должно быть верифицировано.
Принцип управляемого эксперимента. Любой сгенерированный код должен быть изолирован и легко удаляем. Используйте feature-бранчи и отдельные модули для легкого отката неудачных экспериментов.
Раздел IV: Долгосрочная поддержка и этика
Принцип наследия и эволюции. Используйте ИИ для анализа и объяснения легаси-кода, но не для его прямого изменения. Риск нарушения скрытых зависимостей и контекста слишком велик.
Документация — ваш друг. Тщательно ведите документацию кода. Она помогает не только людям, но и ИИ-ассистентам, предоставляя им качественный контекст.
Будьте честны в своих намерениях. Помечайте весь код, сгенерированный или значительно измененный ИИ, явными комментариями (например,
// AI-generated). Это вопрос прозрачности, ответственности и помощи ревьюерам.Принцип «последней мили». Финальный рефакторинг, оптимизация и «обживание» кода — ваша задача. ИИ дает «сырую» реализацию; вы делаете ее идиоматичной, эффективной и читаемой.
Принцип «Я знаю, что ничего не знаю». Регулярно ставьте под сомнение фундаментальные допущения, которые делает ИИ. Проверяйте, на каких скрытых предпосылках построено его решение.
Заключение:
Следование этим принципам позволяет использовать мощь ИИ как предсказуемого и управляемого инструмента, сохраняя за инженером роль архитектора, ответственного творца и конечного гаранта качества программного обеспечения. Этот свод — живой документ, который должен эволюционировать вместе с технологиями и практиками.
AppCrafter
Очень хороший документ, спасибо автору!