Результат получен через нейросеть или доп.информация
cursor
<PROMPT>
# СИСТЕМА КОМПЛЕКСНОГО АУДИТА PYTHON-ПРОЕКТОВ НА ДУБЛИКАТЫ И ОПТИМИЗАЦИЮ
## РОЛЬ
Вы выступаете в роли опытного Senior Python-инженера с 10+ летним опытом code review и архитектурного анализа. Ваша задача — провести глубокий аудит Python-проекта для выявления ВСЕХ типов дубликатов, технических долгов и возможностей оптимизации.
## КОНТЕКСТ
- Проект состоит из сотен/тысяч строк кода, разбитых на множество файлов и модулей
- Может использовать различные фреймворки (aiogram, FastAPI, Django, Flask и т.д.)
- Проект модульный с разделением на компоненты (utils, services, handlers, modules и т.д.)
- Используется база данных и/или внешние API интеграции
- Код может содержать накопленный технический долг
## ЗАДАЧА
Провести тотальный анализ кода на предмет:
### 1. ДУБЛИКАТЫ КОДА
- Полные дубликаты функций (идентичная логика в разных местах)
- Частичные дубликаты (похожая структура с минимальными отличиями)
- Скрытые дубликаты (одна и та же функциональность, написанная разными способами)
- Повторяющиеся блоки try-except, условной логики, циклов
- Одинаковые HTTP/API запросы в разных местах
- Дублирующиеся utility функции
### 2. ДУБЛИКАТЫ В НАЗВАНИЯХ И СТРУКТУРАХ
- Переменные с одинаковой функциональностью, но разными названиями (user, usr, u, u_data, userData)
- Функции с одинаковой логикой, но разными именами
- Классы, выполняющие одну роль, но с разными наименованиями
- Роуты/обработчики с дублирующейся логикой обработки
- Параметры с одинаковым смыслом, но разными названиями в разных местах кода
### 3. ДУБЛИКАТЫ В КОНФИГУРАЦИИ
- Одинаковые константы, определённые в разных местах (вместо одного общего config)
- Повторяющиеся URL, API endpoints, параметры подключения
- Дублирующиеся строки подключения к БД
- Повторяющиеся параметры логирования, timeout'ы, retry-стратегии
- Одинаковые регулярные выражения, строки, числовые значения в разных модулях
### 4. ДУБЛИКАТЫ В ОБРАБОТЧИКАХ И РОУТЕРАХ
- Обработчики с одинаковой логикой (особенно в aiogram: middleware, filters, decorators)
- Повторяющиеся паттерны проверки доступа, аутентификации, авторизации
- Дублирующиеся error handlers и exception processing
- Одинаковые валидационные логики в разных endpoints/обработчиках
- Повторяющиеся паттерны преобразования данных перед обработкой
### 5. ПОВТОРЯЮЩИЕСЯ ПАТТЕРНЫ ЛОГИКИ
- Одинаковые SQL запросы, написанные вручную в разных местах
- Дублирующиеся бизнес-логика (расчёты, преобразования, фильтрации)
- Повторяющиеся паттерны работы с файлами, логированием, трекингом
- Одинаковые форматирования ответов, сообщений, структур данных
- Дублирующиеся сценарии обработки ошибок и исключений
## МЕТОДОЛОГИЯ АНАЛИЗА
1. **Первый проход** — просканировать ВСЕ файлы для общего понимания архитектуры
2. **Второй проход** — построить граф функций/классов и их зависимостей
3. **Третий проход** — выявить похожие функции через анализ AST (Abstract Syntax Tree) или токенизацию
4. **Четвёртый проход** — найти дублирующиеся константы, строки, паттерны в коде
5. **Пятый проход** — выявить логические дубликаты (разный код, одна функция)
6. **Финальный проход** — проверить каждое найденное дублирование на реальность
## ФОРМАТ ВЫХОДНОГО ДОКУМЕНТА
Выведите результат в виде структурированного Markdown документа со следующей структурой:
ОТЧЁТ АУДИТА PYTHON-ПРОЕКТА: АНАЛИЗ ДУБЛИКАТОВ И ОПТИМИЗАЦИЯ
КРАТКОЕ РЕЗЮМЕ
Общая оценка состояния кода (5-звёздная система)
Количество найденных дубликатов по категориям
Приблизительный объём кода, который можно оптимизировать
Критические проблемы
НАЙДЕННЫЕ ДУБЛИКАТЫ И ПРОБЛЕМЫ
УРОВЕНЬ КРИТИЧНОСТИ: КРИТИЧЕСКИЙ 🔴
[Список дубликатов, влияющих на производительность, безопасность или стабильность]
Проблема #[номер]
Описание: [Чёткое описание что дублируется]
Затронутые файлы:
path/to/file1.py (строки X-Y)
path/to/file2.py (строки A-B)
Текущая ситуация: [Показать текущий код]
Рекомендация: [Точное описание что изменить]
Результат после изменения: [Показать как должно быть]
Приоритет: КРИТИЧЕСКИЙ
Сложность внедрения: Низкая/Средняя/Высокая
УРОВЕНЬ КРИТИЧНОСТИ: ВЫСОКИЙ 🟠
[Дубликаты, требующие срочного рефакторинга]
Проблема #[номер]
Описание: [...]
[Остальное по шаблону выше]
УРОВЕНЬ КРИТИЧНОСТИ: СРЕДНИЙ 🟡
[Дубликаты для оптимизации в среднесрочном периоде]
Проблема #[номер]
[...]
УРОВЕНЬ КРИТИЧНОСТИ: НИЗКИЙ 🟢
[Рекомендации по улучшению для долгосрочного плана]
Проблема #[номер]
[...]
СТАТИСТИКА ПО ТИПАМ ДУБЛИКАТОВ
Тип дубликата
Количество
Уровень критичности
Объём кода к оптимизации
Дублирующиеся функции N - ~X строк
Дублирующиеся переменные/константы N - ~X строк
Дублирующиеся паттерны обработки N -~X строк
Дублирующиеся конфигурации N -~X строк
Другое N -~X строк
ИТОГО N ~X строк
РЕКОМЕНДАЦИИ ПО РЕФАКТОРИНГУ
Фаза 1: Критические исправления (Неделя 1-2)
[Четкий список действий с файлами и строками]
Фаза 2: Высокоприоритетная оптимизация (Неделя 3-4)
[...]
Фаза 3: Среднесрочная оптимизация (Месяц 2)
[...]
Фаза 4: Долгосрочные улучшения (Месяц 3+)
[...]
РЕКОМЕНДАЦИИ ПО АРХИТЕКТУРЕ И ПРОФИЛАКТИКЕ
Структура проекта: [Рекомендации по лучшей организации]
Паттерны проектирования: [Какие применить]
Автоматизация контроля: [Инструменты для предотвращения дубликатов в будущем]
Code review процесс: [Что проверять]
ИНСТРУМЕНТЫ ДЛЯ АВТОМАТИЗАЦИИ КОНТРОЛЯ
[Инструменты, которые помогут найти подобные дубликаты автоматически]
[Linters, formatters, анализаторы кода]
[Pre-commit хуки]
ПРИЛОЖЕНИЕ: ДЕТАЛЬНЫЙ АНАЛИЗ
Граф зависимостей функций
[Визуальное представление связей между функциями]
Список всех уникальных функций и их дубликатов
[Полный каталог]
## ТРЕБОВАНИЯ К КАЧЕСТВУ
1. **ТОЧНОСТЬ**: Каждый найденный дубликат должен быть реальным, с указанием КОНКРЕТНЫХ строк и файлов
2. **СПЕЦИФИЧНОСТЬ**: Не писать общие фразы. Каждая рекомендация должна содержать конкретные действия: "Переместить функцию X из файла A в файл B, заменить все вызовы на импорт из нового модуля"
3. **ПРАКТИЧНОСТЬ**: Рекомендации должны быть реализуемы один разработчик за разумное время
4. **ПРИОРИТИЗАЦИЯ**: Ранжировать по критичности (КРИТИЧЕСКИЙ → ВЫСОКИЙ → СРЕДНИЙ → НИЗКИЙ)
5. **ПОЛНОТА**: НЕ пропускать ничего, даже если дубликатов много
## АЛГОРИТМ ОБНАРУЖЕНИЯ
Для каждого файла:
1. Извлечь сигнатуры всех функций, классов, переменных (имя, параметры, типы)
2. Сравнить с сигнатурами из других файлов (приблизительное совпадение)
3. Выявить блоки кода с >70% совпадением строк (нормализованное)
4. Проверить на совпадения в именах переменных (user vs usr vs u)
5. Отфильтровать false positives (например, встроенные методы, стандартные паттерны)
## ЧЕГО ИЗБЕГАТЬ
❌ Не предлагать рефакторинг без конкретных файлов и строк
❌ Не смешивать разные типы дубликатов в одной рекомендации
❌ Не предлагать решения, которые усложнят код
❌ Не забывать про backwards compatibility (если это важно)
❌ Не писать в стиле "может быть здесь дублирование" — либо да, либо нет
## КОГДА ГОТОВ?
Отчёт готов, когда:
✅ Проверены все файлы проекта
✅ Найдены и классифицированы все типы дубликатов
✅ Каждый дубликат привязан к конкретным файлам и строкам
✅ Даны практические рекомендации по рефакторингу
✅ Рекомендации ранжированы по приоритетам
✅ Приложены расчёты экономии кода/времени
## ВХОДНЫЕ ДАННЫЕ
[Полный исходный код Python-проекта или его структура]
✅ Применим к любому Python-проекту (Telegram-бот, веб-приложение, API и т.д.)
✅ Охватывает ВСЕ типы дубликатов без исключения
✅ Структурирован по уровням критичности с четкими рекомендациями
✅ Требует конкретику (файлы, строки, примеры)
✅ Ориентирован на результат с фазами внедрения
cursor
Добавить отзыв