Эксперт по Отладке Кода

Находит ошибки в коде и выдаёт исправления с разбором причин, критичности и профилактикой.

// промпт
Действуй как senior-разработчик и эксперт по отладке на {{iazyk_programmirovaniia}}. Проведи дотошный разбор моего кода, найди все дефекты и предложи проверенные исправления с объяснениями. ## Контекст - **Язык и версия:** {{iazyk_programmirovaniia}} - **Стек и окружение:** {{freimvork_i_okruzenie}} - **Что код должен делать:** {{ozidaemoe_povedenie}} - **Что происходит на самом деле:** {{fakticeskoe_povedenie_i_osibka}} - **Воспроизведение:** {{sagi_vosproizvedeniia}} ## Код для отладки ``` [Код] ``` ## Порядок анализа 1. **Воспроизведи логически.** Прогони ход выполнения мысленно и укажи, на каком шаге поведение расходится с ожидаемым. 2. **Найди дефекты по категориям:** - синтаксис и опечатки; - логические ошибки и необработанные крайние случаи (пустые значения, границы, конкурентность); - исключения и сбои времени выполнения; - уязвимости безопасности и утечки ресурсов; - узкие места производительности; - «запахи» кода и антипаттерны. 3. **Не выдумывай.** Если причину нельзя установить по коду, прямо скажи об этом и укажи, какие данные или логи нужны. ## Что выдать по каждой проблеме - **Расположение** — строка или функция; - **Тип и критичность** — Высокая / Средняя / Низкая; - **Корневая причина** — почему это ломается, а не только симптом; - **Исправление** — готовый фрагмент с правкой; - **Профилактика** — тест, проверка или практика, чтобы это не повторилось. ## Формат ответа ```markdown ## Краткий вердикт [Одно-два предложения: главная причина сбоя] ## Найдено проблем: [Количество] ### #1 — [Тип Проблемы] · Критичность: [Уровень] - Расположение: [Строка Или Функция] - Причина: [Объяснение] - Исправление: ```{{iazyk_programmirovaniia}} {{ispravlennyi_kod}} ``` - Профилактика: [Совет] ``` В конце дай **итоговый исправленный код целиком** и список изменений. Тон: точный, без воды, с акцентом на лучшие практики и обучающие объяснения. Уровень детализации — {{uroven_detalizacii}}.
Заполните переменные
Пример ответа

🔍 Результаты Анализа Отладки

Найдено проблем: 4

Проблема #1: Утечка памяти

Расположение: Строка 32

Критичность: ВЫСОКАЯ

Проблема: Незакрытое соединение с базой данных

# ❌ Исходный проблемный код
def process_users():
    conn = sqlite3.connect("users.db")
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM users")
    results = cursor.fetchall()
    return results
    # Соединение не закрывается!

# ✅ Исправленная версия
def process_users():
    with sqlite3.connect("users.db") as conn:
        cursor = conn.cursor()
        cursor.execute("SELECT * FROM users")
        results = cursor.fetchall()
        return results
    # Соединение автоматически закрывается

Объяснение: Использование контекстного менеджера гарантирует освобождение ресурсов

Проблема #2: Небезопасный SQL запрос

Расположение: Строка 45

Критичность: ВЫСОКАЯ

Проблема: SQL инъекция через пользовательский ввод

# ❌ Уязвимый код
def get_user_by_id(user_id):
    query = f"SELECT * FROM users WHERE id = {{user_id}}"
    cursor.execute(query)

# ✅ Безопасная версия
def get_user_by_id(user_id):
    query = "SELECT * FROM users WHERE id = ?"
    cursor.execute(query, (user_id,))
Проблема #3: Неэффективный алгоритм

Расположение: Строка 78

Критичность: СРЕДНЯЯ

Проблема: O(n²) сложность вместо O(n)

# ❌ Неэффективно
def find_duplicates(arr):
    duplicates = []
    for i in range(len(arr)):
        for j in range(i+1, len(arr)):
            if arr[i] == arr[j] and arr[i] not in duplicates:
                duplicates.append(arr[i])
    return duplicates

# ✅ Оптимизированная версия O(n)
def find_duplicates(arr):
    seen = set()
    duplicates = set()
    for item in arr:
        if item in seen:
            duplicates.add(item)
        else:
            seen.add(item)
    return list(duplicates)

🛡️ Советы по предотвращению

  • Используйте линтеры (pylint, flake8)
  • Пишите unit тесты для каждой функции
  • Регулярно проводите код-ревью
  • Используйте статический анализ кода
  • Применяйте принципы безопасного программирования

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

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

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

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

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

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

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

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

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

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

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

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

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