Разработка с AI
Code Review с AI: Второй взгляд, который не устаёт
Ты написал 500 строк кода. Отправляешь на ревью. Коллега находит 20 мелких замечаний: стиль, naming, потенциальный null. Время потрачено на обсуждение закономерного. Теперь представь: AI находит эти 20 вещей за 30 секунд, ты исправляешь, и коллега тратит время только на важное - архитектуру и логику.
- **GitHub Copilot Chat**: Встроенный ревьюер прямо в IDE
- **Pre-commit hooks**: AI-ревью автоматически перед каждым коммитом
- **PR automation**: Боты, которые ревьюят PR и комментируют
- **Self-improvement**: Учись на замечаниях AI, улучшай свой код
Предварительные знания
AI как неутомимый ревьюер
Человеческий ревьюер устаёт после 200-400 строк кода. AI - нет. Это делает AI идеальным **первым ревьюером**, который ловит очевидные проблемы до human review.
**AI-ревью ловит:** - Стилистические проблемы - Потенциальные баги (null, edge cases) - Security issues (SQL injection, XSS) - Performance anti-patterns - Нарушения best practices
**AI НЕ заменяет human review для:** - Архитектурных решений - Бизнес-логики - Соответствия требованиям - Контекста проекта (naming conventions, patterns)
Когда AI-ревью наиболее полезен?
Промпты для ревью
Общий промпт 'проверь код' даёт слабый результат. **Специализированные промпты** дают конкретные, actionable замечания.
**Шаблон для code review:** ``` # Контекст [Язык, фреймворк, что делает код] # Фокус ревью [На что обратить внимание] # Код [Код для ревью] ```
**Полезные фокусы для ревью:**
- **Security focus:** 'Найди уязвимости OWASP Top 10'
- **Performance focus:** 'Найди bottlenecks и O(n²) алгоритмы'
- **Maintainability:** 'Что сложно понять через 6 месяцев?'
- **Testing:** 'Какие тесты нужны для полного покрытия?'
- **Refactoring:** 'Где нарушается SOLID/DRY?'
Ты хочешь проверить платёжный код на security. Какой промпт лучше?
Специализированные виды ревью
Разные ситуации требуют разных типов ревью. Вот проверенные промпт-шаблоны:
**Security Review:** 'Как security эксперт, проверь код на: - Injection (SQL, command, LDAP) - XSS и CSRF - Broken authentication - Sensitive data exposure - Missing input validation Для каждой проблемы: строка, severity (critical/high/medium/low), exploit scenario, fix.'
**Performance Review:** 'Проанализируй performance: - Алгоритмическая сложность (Big O) - N+1 queries - Memory leaks / unbounded growth - Blocking operations в async коде - Кэширование: что можно закэшировать? Для нагрузки: 1000 concurrent users, 1M записей в БД.'
**Pre-commit Review:** 'Quick review перед коммитом: - Есть ли debug код? (console.log, print, debugger) - Закомментированный код? - TODO/FIXME без issue? - Hardcoded secrets? - Неиспользуемые imports/variables? Формат: файл:строка - проблема'
Перед деплоем в прод нужен быстрый final check. Какой тип ревью?
AI-ревью собственного кода
Самое ценное применение AI-ревью - **проверка своего кода до PR**. Ты ловишь проблемы до того, как их увидят коллеги.
**Преимущества self-review с AI:** 1. Находишь баги до human review 2. Улучшаешь код до публикации 3. Учишься на замечаниях AI 4. Экономишь время ревьюера
**Ловушка:** Не принимай всё, что говорит AI. Иногда замечания AI - это over-engineering или не релевантны твоему контексту. Критически оценивай предложения.
**Паттерн 'Rubber Duck + AI':**
AI-ревью заменяет human review
AI-ревью дополняет human review, убирая 'шум'
AI не понимает бизнес-контекст, не знает историю проекта, не видит архитектурные trade-offs. Human review остаётся критичным для важных решений.
Ты закончил feature и хочешь сделать self-review с AI. Какой подход?
Ключевые идеи
- **AI — первый ревьюер**, человек — глубокий ревьюер
- **Специализированные промпты** дают конкретные результаты
- **Виды ревью**: Security, Performance, Pre-commit, Legacy
- **Self-review с AI** до PR экономит время всем
- **Критически оценивай** предложения AI — не всё релевантно
Куда дальше?
Code review - это реактивный процесс. Дальше - проактивное использование AI:
- AI для архитектуры — Обсуждение trade-offs до написания кода
- Debugging с AI — Как эффективно описывать баги
- Тестирование с AI — Генерация тестов и test cases
Вопросы для размышления
- Какие типы ошибок ты чаще всего делаешь? Создай для них специализированный промпт.
- Попробуй 'Rubber Duck + AI': объясни свой последний код AI. Что нового заметил?
- Как бы ты интегрировал AI-ревью в workflow своей команды?