Этот план разработан на основе руководств по качеству кода и структуре скриптов, найденных в папке .roo/rules. Цель - улучшить структуру проекта, качество кода и процессы разработки для Code2MARKDOWN.
-
Миграция на
uv:- Инициализировать проект с помощью
uv init - Перенести зависимости из
requirements.txtвpyproject.toml - Разделить runtime и dev зависимости
- Настроить синхронизацию окружения через
uv sync
- Инициализировать проект с помощью
-
Реорганизация структуры каталогов:
- Переместить основной код в
src/каталог - Убедиться, что структура тестов зеркальна структуре
src/ - Обновить все импорты в соответствии с новой структурой
- Переместить основной код в
-
Обновление
.gitignore:- Добавить стандартные игнорируемые файлы и каталоги Python
- Убедиться, что все логи, временные файлы и артефакты сборки исключены
-
Переход на абсолютные импорты:
- Проверить и обновить все относительные импорты на абсолютные
- Убедиться, что структура пакетов поддерживает абсолютные импорты
-
Принцип инверсии зависимостей:
- Проанализировать архитектуру на предмет соблюдения принципа инверсии зависимостей
- При необходимости рефакторить код для улучшения архитектуры
-
Проверка на циклические импорты:
- Настроить pre-commit hook для проверки циклических импортов
- Устранить все найденные циклические импорты
-
Конфигурация Ruff:
- Настроить Ruff в
pyproject.tomlсогласно рекомендациям - Интегрировать ruff-format для автоформатирования кода
- Настроить Ruff в
-
Настройка pre-commit хуков:
- Создать
.pre-commit-config.yaml - Добавить хуки для Ruff, ruff-format и mypy
- Добавить локальный хук для проверки циклических импортов
- Установить хуки через
pre-commit install
- Создать
-
Интеграция mypy:
- Настроить mypy в
pyproject.toml - Добавить аннотации типов в код где это необходимо
- Настроить mypy в
-
Реорганизация тестов:
- Убедиться, что структура тестов зеркальна структуре
src/ - Обновить импорты в тестах при необходимости
- Убедиться, что структура тестов зеркальна структуре
-
Измерение покрытия кода:
- Настроить измерение покрытия кода тестами
- Добавить проверку покрытия в CI/CD
-
Расширение тестового покрытия:
- Написать недостающие тесты для ключевых компонентов
- Добавить тесты для новых функций
-
Удаление мертвого кода:
- Запустить
ruff check . --select F401,F841 --fixдля автоматического удаления неиспользуемого кода - Провести ручной аудит кода на предмет неиспользуемых функций и переменных
- Запустить
-
Аудит зависимостей:
- Настроить регулярную проверку устаревших зависимостей
- Обновить зависимости до последних версий
-
Анализ архитектуры:
- Создать или обновить скрипт для анализа архитектуры проекта
- Запускать его регулярно для выявления проблем
-
Создание структуры для скриптов:
- Создать каталог
scripts/development/ - Переместить или создать вспомогательные скрипты в этой директории
- Создать каталог
-
Документирование скриптов:
- Добавить docstring к каждому скрипту
- Создать
README.mdв каталоге скриптов с описанием их назначения
-
Упаковка логики в модули:
- Преобразовать shell команды в Python скрипты с аргументами
- Вынести общую функциональность в утилитарные модули
-
Изоляция среды:
- При необходимости настроить отдельное окружение для скриптов
- Документировать зависимости скриптов
-
Интеграция скриптов в CI/CD:
- Добавить шаги для выполнения вспомогательных скриптов в CI/CD
- Убедиться, что скрипты не влияют на сборку production версии
-
Контроль качества в CI/CD:
- Добавить шаги для Ruff, mypy и других инструментов контроля качества
- Настроить проверку покрытия кода
-
Система анализа логов:
- Создать скрипт или инструмент для анализа логов выполнения скриптов
- Настроить сбор и анализ stdout/stderr
-
Отслеживание ошибок:
- Реализовать механизм для суммирования результатов выполнения скриптов
- Настроить уведомления о критических ошибках
- Архивация скриптов:
- Создать каталог
scripts/development/archive/ - Переместить неиспользуемые скрипты в архив
- Документировать причины архивации
- Создать каталог
-
Высокий приоритет (1-2 недели):
- Миграция на
uvи реорганизация структуры проекта - Настройка автоматического контроля качества
- Переход на абсолютные импорты
- Миграция на
-
Средний приоритет (2-4 недели):
- Улучшение тестирования и измерение покрытия
- Рефакторинг и удаление мертвого кода
- Организация вспомогательных скриптов
-
Низкий приоритет (1-2 месяца):
- CI/CD интеграция
- Анализ логов и отслеживание ошибок
- Управление жизненным циклом скриптов
Этот план поможет улучшить качество кода, организацию проекта и процессы разработки для Code2MARKDOWN. Следование этим рекомендациям приведет к более поддерживаемому и надежному коду, а также улучшит опыт разработчиков, работающих с проектом.