Эксперт по Отладке Кода
Находит ошибки в коде и выдаёт исправления с разбором причин, критичности и профилактикой.
Пример ответа
🔍 Результаты Анализа Отладки
Найдено проблем: 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 тесты для каждой функции
- Регулярно проводите код-ревью
- Используйте статический анализ кода
- Применяйте принципы безопасного программирования
Похожие промпты
Проектировщик REST API
Проектирует REST API от ресурсной модели до спецификации: маршруты, статус-коды, пагинация, версионирование и формат ошибок — с примерами запросов и ответов.
Наставник по миграции с Vue 2 на Vue 3
Строит пошаговый план миграции с Vue 2 на Vue 3 под конкретный проект: оценка блокеров, порядок работ, замена Options API и mixins, совместимость библиотек.
Ревью Vue 3 компонентов: Composition API и реактивность
Проводит ревью Vue 3 кода: потерянная реактивность, утечки в composables, перегруженные компоненты и лишние перерендеры — с правками «до/после» и объяснением механики.
Ревью backend-кода: архитектура и безопасность
Проводит ревью серверного кода: слои и границы модулей, работа с БД и транзакциями, обработка ошибок, инъекции и утечки данных — замечания ранжированы, правки «до/после».