Лучшие практики разработки с ИИ: Из моего опыта
Хотя мне пока не удалось успешно завершить крупномасштабный проект с использованием ИИ, я хотел бы поделиться тем, что узнал из своего опыта работы с ИИ в разработке.
Базовый подход к разработке
При работе с ИИ попытка реализовать все функции сразу может привести к неожиданным проблемам и застою проекта. Поэтому более эффективно начинать с базовой функциональности и строить каждую функцию по очереди, обеспечивая надёжную реализацию перед продвижением вперёд.
Сила существующего кода
Этот подход эффективен, потому что реализация базовой функциональности позволяет воплотить ваш идеальный дизайн и стиль кодирования в реальном коде. Самый эффективный способ донести ваше видение проекта — через код, который отражает ваши стандарты и предпочтения.
Начиная с основных функций и обеспечивая правильную работу каждого компонента перед переходом к следующему, весь проект поддерживает согласованность, что облегчает генерацию ИИ более подходящего кода.
Модульный подход
Разбиение кода на небольшие модули критически важно. По моему опыту, поддержание файлов размером около 250 строк кода упрощает предоставление чётких инструкций ИИ и делает процесс проб и ошибок более эффективным. Хотя количество токенов было бы более точной метрикой, количество строк более практично для работы человека-разработчика, поэтому мы используем его как ориентир.
Эта модуляризация — не только разделение фронтенда, бэкенда и компонентов базы данных — это разбиение функциональности на гораздо более мелком уровне. Например, внутри одной функции вы можете выделить валидацию, обработку ошибок и другие специфические функциональности в отдельные модули. Конечно, высокоуровневое разделение тоже важно, и постепенная реализация этого модульного подхода помогает поддерживать чёткие инструкции и позволяет ИИ генерировать более подходящий код. Этот подход эффективен не только для ИИ, но и для человека-разработчика.
Обеспечение качества через тестирование
Я считаю тестирование критически важным в разработке с помощью ИИ. Тесты служат не только мерой обеспечения качества, но и документацией, которая чётко демонстрирует намерения кода. При просьбе к ИИ реализовать новые функции существующий тестовый код эффективно действует как документ спецификации.
Тесты также являются отличным инструментом для проверки корректности кода, сгенерированного ИИ. Например, при просьбе к ИИ реализовать новую функциональность для модуля, предварительное написание тестовых случаев позволяет объективно оценить, ведёт ли сгенерированный код себя ожидаемым образом. Это хорошо согласуется с принципами разработки через тестирование (TDD) и особенно эффективно при работе с ИИ.
Баланс между планированием и реализацией
Перед реализацией крупномасштабных функций я рекомендую сначала обсудить план с ИИ. Организация требований и обдумывание архитектуры ведёт к более плавной реализации. Хорошая практика — сначала собрать требования, а затем перейти в отдельную сессию чата для работы по реализации.
Важно иметь человеческую проверку вывода ИИ и вносить корректировки по мере необходимости. Хотя качество кода, сгенерированного ИИ, в целом умеренное, он всё равно ускоряет разработку по сравнению с написанием всего с нуля.
Заключение
Следуя этим практикам, вы можете использовать сильные стороны ИИ, создавая при этом согласованную, высококачественную кодовую базу. Даже по мере роста размера проекта каждый компонент остаётся хорошо определённым и управляемым.