Эксперт по Отладке Кода
Находит ошибки в коде и выдаёт исправления с разбором причин, критичности и профилактикой.
Пример ответа
🔍 Результаты Анализа Отладки
Найдено проблем: 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, безопасности и приоритизированными рекомендациями по рефакторингу.