Анализ производственного кода с помощью ИИ

Продвинутое программирование с ИИ-ассистентами

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

За пределами генерации кода

nanobanana: full: анализ производственного кода с помощью ИИ

Продвинутое программирование с ИИ-ассистентами

Обзор курса

nanobanana: half: разработчик за рабочим столом с несколькими мониторами

 

В этом курсе вы научитесь:

  • Выполнять анализ кода на основе ИИ для производственного кода
  • Применять тестирование и обеспечение безопасности с помощью ИИ
  • Использовать ИИ для проектирования ПО и совместной работы
Продвинутое программирование с ИИ-ассистентами

Сценарий: Wayfarer Labs

nanobanana: half: офис туристического стартапа с картами мира

 

  • 💻 Вы — разработчик в компании Wayfarer Labs
  • 🌎 Туристический стартап, создающий мобильную платформу
  • 🔎 Ваша задача: найти аналитический инструмент с открытым кодом
Продвинутое программирование с ИИ-ассистентами

Знакомство с Atlas

 

atlas-ch1.png

 

Ключевые вопросы перед внедрением:

  • Насколько он поддерживаем?
  • Насколько он надёжен?
  • Подходит ли он для долгосрочного использования?

 

🤖 ИИ помогает ускорить и систематизировать оценку кода!

Продвинутое программирование с ИИ-ассистентами

Знакомство с новым репозиторием

 

nanobanana: full: ИИ помогает исследовать новый репозиторий

Продвинутое программирование с ИИ-ассистентами

Структурированные запросы для ориентации в коде

prompt1-ch1.png

Продвинутое программирование с ИИ-ассистентами
Продвинутое программирование с ИИ-ассистентами

Структурированные запросы для ориентации в коде

 

atlas-command.png

Продвинутое программирование с ИИ-ассистентами

 

🤖 Запрос для статического анализа:

Следующий репозиторий содержит аналитический инструментарий на Python под названием Atlas, предназначенный для использования в производственной среде.

Предположим, что у меня есть доступ к Unix-подобной системе и возможность установить распространённые инструменты с открытым исходным кодом.

Я хочу выполнить статический анализ этой кодовой базы без её запуска.

 

Цель:

  • Рекомендовать подходящие инструменты статического анализа для этого проекта
  • Объяснить, что измеряет каждый инструмент и почему он актуален
  • Предоставить конкретные команды для выполнения анализа
  • Объяснить, как интерпретировать ключевые результаты
Продвинутое программирование с ИИ-ассистентами
Продвинутое программирование с ИИ-ассистентами

Динамический анализ с помощью ИИ

nanobanana: full: динамический анализ и профилирование

Продвинутое программирование с ИИ-ассистентами

Оценка качества кода с помощью ИИ

 

🤖 Запрос о поддерживаемости:

Проанализируйте кодовую базу на предмет проблем с поддерживаемостью: выявите перегруженные модули, функции с размытой ответственностью и места, где одно изменение потребует правок в нескольких файлах.

 

Проблемы поддерживаемости:

  • Перегруженные модули
  • Размытая ответственность
Продвинутое программирование с ИИ-ассистентами

Сложность и технический долг

 

🤖 Запрос о сложности:

Определите области с высокой логической сложностью, уделяя особое внимание длинным функциям, вложенным условиям и ветвлению.

Индикаторы сложности:

  • Длинные функции
  • Вложенные условия
  • Высокое ветвление

 

🤖 Запрос о техническом долге:

Найдите признаки технического долга: TODO, дублированную логику или устаревшие паттерны.

Признаки технического долга:

  • TODO и FIXME
  • Дублированная логика
  • Устаревшие паттерны
Продвинутое программирование с ИИ-ассистентами

Итоговая оценка

 

Заключение по Atlas:

  • ✅ Хорошо структурированная кодовая база
  • ✅ Целесообразно внедрить
  • 👀 Сначала устранить проблемы со сложностью
  • 👀 Разобраться с техническим долгом
Продвинутое программирование с ИИ-ассистентами

Рефакторинг с помощью ИИ

 

code-changes-ch1.png

 

ИИ также помогает:

  • Рефакторинг с фокусом на высокоэффективных изменениях
  • Предлагать патчи
Продвинутое программирование с ИИ-ассистентами

Важное напоминание

nanobanana: half: разработчик критически оценивает предложения ИИ

 

ИИ не заменяет инженерное суждение

  • Он может допускать ошибки
  • Он может упускать контекст
  • Он может галлюцинировать

✔ При правильном использовании он ускоряет понимание и помогает принимать лучшие решения в коде

Продвинутое программирование с ИИ-ассистентами

Lass uns üben!

Продвинутое программирование с ИИ-ассистентами

Preparing Video For Download...