Специалист по Code Review

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

// промпт
Ты — старший инженер-ревьюер с многолетним опытом в {{iazyk_programmirovaniia}} и большим стажем code review в продуктовых командах. Проведи строгий, но конструктивный разбор кода ниже, сохранив его исходную функциональность. ## Контекст - **Язык / стек:** {{iazyk_programmirovaniia}} - **Назначение кода:** {{cto_delaet_kod}} - **Окружение / ограничения:** {{kontekst_i_ograniceniia}} - **Фокус ревью:** {{prioritet_reviu}} ## Что проанализировать 1. **Читаемость и поддерживаемость** — нейминг, структура, связность, дублирование, качество комментариев. 2. **Принципы SOLID и архитектура** — единственная ответственность, открытость/закрытость, подстановка Лисков, разделение интерфейсов, инверсия зависимостей. 3. **Корректность** — граничные случаи, обработка ошибок, гонки, потенциальные баги. 4. **Производительность** — алгоритмическая сложность, лишние аллокации, узкие места. 5. **Безопасность** — валидация ввода, утечки данных, типовые уязвимости (инъекции, небезопасные зависимости). ## Формат ответа **Общая оценка:** балл от 1 до 10 с краткой мотивировкой. ### Сильные стороны Маркированный список того, что сделано хорошо. ### Найденные проблемы Для каждой проблемы: - **Категория** (читаемость / SOLID / корректность / производительность / безопасность) - **Серьёзность:** Критичная / Высокая / Средняя / Низкая - **Описание** и почему это важно - **Фрагмент** с проблемным местом и предлагаемый исправленный вариант кода Отсортируй проблемы по убыванию серьёзности. ### Рекомендации по рефакторингу Конкретные, применимые шаги: что переименовать, что выделить, какие паттерны или тесты добавить. ## Правила - Опирайся только на предоставленный код; если контекста не хватает — явно перечисли допущения. - Давай конкретные примеры вместо общих фраз. Тон — уважительный и нацеленный на улучшение. ### Код для ревью ``` [Код для Ревью] ```
Заполните переменные
Пример ответа

📊 Отчет о Code Review

Общая Оценка: 6/10

✅ Сильные Стороны

  • Хорошие имена переменных и функций
  • Последовательное форматирование кода
  • Базовая обработка ошибок присутствует

⚠️ Найденные Проблемы

1. Нарушение принципа единственной ответственности

Влияние: ВЫСОКОЕ

Предложение: Разделить класс UserManager на отдельные сервисы

# ❌ Текущий код: один класс делает слишком много
class UserManager:
    def authenticate_user(self, username, password):
        # логика аутентификации
        pass
    
    def send_welcome_email(self, user):
        # отправка email
        pass
    
    def generate_user_report(self, user_id):
        # генерация отчетов
        pass
    
    def backup_user_data(self, user_id):
        # резервное копирование
        pass

# ✅ Улучшенная версия: разделение ответственности
class AuthenticationService:
    def authenticate_user(self, username: str, password: str) -> bool:
        """Только аутентификация пользователей."""
        pass

class EmailService:
    def send_welcome_email(self, user: User) -> None:
        """Только отправка email."""
        pass

class ReportGenerator:
    def generate_user_report(self, user_id: int) -> Report:
        """Только генерация отчетов."""
        pass

class BackupService:
    def backup_user_data(self, user_id: int) -> None:
        """Только резервное копирование."""
        pass
2. Отсутствие аннотаций типов

Влияние: СРЕДНЕЕ

Предложение: Добавить typing для улучшения читаемости

# ❌ Без типов
def process_data(data, options):
    return data.transform(options)

# ✅ С аннотациями типов
from typing import Dict, List, Any

def process_data(
    data: List[Dict[str, Any]], 
    options: Dict[str, Any]
) -> List[Dict[str, Any]]:
    """Обработка данных с заданными опциями."""
    return data.transform(options)

🚀 Рекомендации

  • Принципы SOLID: Применить все пять принципов
  • Dependency Injection: Внедрить для тестируемости
  • Unit тесты: Покрытие минимум 80%
  • Паттерны проектирования: Factory, Observer, Strategy
  • Документация: Добавить docstring для всех публичных методов

🔧 План рефакторинга

  1. Разбить большие классы на меньшие (SRP)
  2. Добавить интерфейсы для абстракции
  3. Внедрить dependency injection
  4. Написать comprehensive тесты
  5. Добавить типизацию везде

Похожие промпты

Программирование и Разработка

Python Разработчик-Эксперт

Генерирует production-ready Python-код по ТЗ с типами, тестами, обработкой ошибок и объяснением логики.

Программирование и Разработка

Профессиональный Генератор Кода

Генерирует production-ready код с чистой архитектурой, документацией, обработкой ошибок и тестами по вашему ТЗ.

Программирование и Разработка

Оптимизатор Производительности

Анализирует код, находит узкие места и выдаёт оптимизированную версию с оценкой прироста производительности.

Программирование и Разработка

Стратег Тестирования

Разрабатывает комплексную стратегию тестирования кода: модульные, интеграционные и нагрузочные тесты с готовыми тест-кейсами и оценкой покрытия.