Skip to main content

Проверка кода, созданного искусственным интеллектом

Узнайте о методах проверки и валидации кода, созданного искусственным интеллектом, и о том, как Копилот Чат может помочь.

Проверка кода, созданного инструментами искусственного интеллекта, такими как GitHub Copilot, ChatGPT или другими агентами кодирования, становится неотъемлемой частью современного рабочего процесса разработчика. В этом руководстве представлены практические методы, подчеркивается важность человеческого контроля и тестирования, а также приведены примеры подсказок, демонстрирующих, как ИИ может помочь в процессе проверки.

В частности, как для устаревших кодовых баз, так и для более крупных запросов на вытягивание критически важен тщательный процесс проверки. Сочетание человеческого опыта с автоматизированными инструментами может гарантировать, что код, созданный искусственным интеллектом, соответствует стандартам качества, соответствует целям проекта и соответствует передовым практикам.

С помощью Copilot вы можете оптимизировать процесс проверки и расширить свои возможности по выявлению потенциальных проблем в коде, созданном искусственным интеллектом.

1. Начните с функциональных проверок

Всегда сначала запускайте автоматические тесты и инструменты статического анализа.

Примеры подсказок

  • What functional tests to validate this code change do not exist or are missing?
  • What possible vulnerabilities or security issues could this code introduce?

2. Проверьте контекст и намерения

Убедитесь, что код, созданный искусственным интеллектом, соответствует цели и архитектуре вашего проекта.

  • Просмотрите выходные данные ИИ на предмет соответствия вашим требованиям и шаблонам проектирования.
  • Спросите себя: «Решает ли этот код правильную проблему? Соответствует ли это нашим условностям?»
  • Используйте файл README, документацию и последние запросы на вытягивание в качестве отправной точки для контекста для ИИ. Подскажите ИИ, каким источникам доверять, а какими не стоит пользоваться, и приведите хорошие примеры для работы.
  • ПопробуйтеСинтезирование исследований , чтобы увидеть, как Copilot использует документацию и исследования для создания кода.
  • Обращаясь к ИИ с просьбой выполнить задачи по исследованию и планированию, рассмотрите возможность преобразования результатов ИИ в структурированные артефакты, которые затем станут контекстом для будущих задач ИИ, таких как генерация кода.

Примеры подсказок

  • How does this refactored code section align with our project architecture?
  • What similar features or established design patterns did you identify and model your code after?
  • When examining this code, what assumptions about business logic, design preferences, or user behaviors have been made?
  • What are the potential issues or limitations with this approach?

3. Оценивайте качество кода

Человеческие стандарты по-прежнему имеют значение.

  • Обратите внимание на удобочитаемость, удобство обслуживания и четкое именование.
  • Избегайте принятия кода, который трудно понять или который займет больше времени на рефакторинг, чем на переписывание.
  • Отдавайте предпочтение коду, который хорошо документирован и содержит четкие комментарии.
  • ПроверьтеAUTOTITLE, чтобы получить подсказки и советы по проверке и рефакторингу сгенерированного кода.

Примеры подсказок

  • What are some readability and maintainability issues in this code?
  • How can this code be improved for clarity and simplicity? Suggest an alternative structure or variable names to enhance clarity.
  • How could this code be broken down into smaller, testable units?

4. Тщательно изучайте зависимости

Будьте бдительны при выборе новых пакетов и библиотек.

  • Проверьте, существуют ли предложенные зависимости и поддерживаются ли они активно. Учитывайте происхождение и факторы влияния новых зависимостей, чтобы убедиться, что они поступают из авторитетных, неконкурирующих источников.
  • Пересмотрите лицензирование. Избегайте ввода кода или зависимостей, несовместимых с лицензией вашего проекта (например, AGPL-3.0 в проекте с лицензией MIT или зависимостей без заявленной лицензии).
  • Остерегайтесь галлюцинированных или подозрительных пакетов (например, пакетов, которые на самом деле не существуют) или сневита (теоретической атаки на LLM с использованием поддельных или вредоносных пакетов).
  • Создание шаблонов демонстрирует, как Copilot может помочь с настройкой зависимостей, однако хорошей практикой является всегда проверять предложенные пакеты самостоятельно.
  • ИспользуйтеСсылка на код GitHub Copilot для просмотра совпадений с общедоступным кодом.

Примеры подсказок

  • Analyze the attached package.json file and list all dependencies with their respective licenses.
  • Are each of the dependencies listed in this package.json file actively maintained (that is, not archived and have recent maintainer activity)?

5. Выявляйте подводные камни, специфичные для ИИ

Инструменты искусственного интеллекта могут совершать уникальные ошибки.

  • Ищите галлюцинированные API, игнорируемые ограничения или неправильную логику.
  • Следите за тестами, которые удаляются или пропускаются, а не исправляются.
  • Скептически относитесь к коду, который «выглядит правильно», но не соответствует вашим намерениям.
  • СмотритеОтладка недопустимого JSON в качестве примера отлова тонких ошибок и отладки с помощью Copilot.

Примеры подсказок

  • What was the reasoning behind the code change to delete the failing test? Suggest some alternatives that would fix the test instead of deleting it.
  • What potential complexities, edge cases, or scenarios are there that this code might not handle correctly?
  • What specific technical questions does this code raise that require human judgment or domain expertise to evaluate properly?

6. Используйте совместное рецензирование

Сопряжение и командный вклад помогают выявлять мелкие проблемы.

  • Попросите коллег просмотреть сложные или конфиденциальные изменения.
  • Используйте контрольные списки, чтобы убедиться, что все ключевые точки обзора (функциональность, безопасность, удобство обслуживания) охвачены.
  • Делитесь успешными подсказками и шаблонами использования ИИ в своей команде.
  • СмотритеЭффективное взаимодействие для примеров совместной работы с Copilot и документирования результатов.

7. Автоматизируйте то, что вы можете

Позвольте инструментам взять на себя повторяющуюся работу.

  • Настройте проверки CI для стиля, анализа кода и безопасности.
  • Используйте Dependabot для обновлений зависимостей и оповещений.
  • Используйте CodeQL или аналогичные сканеры для статического анализа.
  • Поиск общедоступного кода, соответствующего предложениям GitHub Copilot показывает, как Copilot может помочь отследить шаблоны кода и автоматизировать задачи поиска.
  • Подумайте, могут ли агенты ИИ с возможностями рассуждения помочь в автоматизации некоторых частей процесса рецензирования. Например, создайте самопроверяющий агент, который оценивает черновики запросов на вытягивание в соответствии со стандартами, проверяя точность, соответствующий тон и бизнес-логику,прежде чем запрашивать проверку человеком.

8. Продолжайте совершенствовать свой рабочий процесс

Внедрение новых инструментов и методов искусственного интеллекта может сделать ваш рабочий процесс еще более эффективным.

  • Задокументируйте свои рекомендации по проверке кода, созданного искусственным интеллектом.
  • Поощряйте «чемпионов ИИ» в своей команде делиться советами и рабочими процессами.
  • Обновите свои руководства по адаптации и вкладу, включив в них методы и ресурсы для проверки ИИ. ИспользуйтеCONTRIBUTING.md файл в репозитории, чтобы задокументировать свои ожидания в отношении исходного кода и контента, созданного искусственным интеллектом, см.раздел AUTOTITLE.
  • Обратитесь кGitHub Copilot Chat Cookbook за вдохновением и поделитесь полезными рецептами в документах своей команды.

Дополнительные материалы