Python: контроль качества в legacy-проектах
В мире разработки на Python часто приходится иметь дело с большими legacy-проектами, где внедрение полноценных инструментов статического анализа кода может быть затруднительным. Однако это не означает, что мы должны отказываться от контроля качества нового кода. Представляем вам инструмент автоматического код-ревью, который поможет вам следить за качеством новых изменений, не затрагивая существующую кодовую базу.
https://gist.github.com/denisxab/eb135fc4d66087d90b9b9ae7686055bf<<
Особенности инструмента:
- Проверка только измененных строк кода
- Использование популярных линтеров: Ruff, MyPy и Pylint
- Гибкая настройка и легкость использования
- Интеграция с Git для анализа изменений
- Возможность использования результатов в комментариях GitHub или GitLab
Настройка скрипта:
Для начала работы с инструментом, выполните следующие шаги:
1. Добавьте следующие строки в ваш .zshrc(или .bashrc) файл:
export AUTO_CODE_REVIEW="ПутьКФайлуСкрипта"
export RUFF_ROOT_CONFIG="ПутьККонфигурацииRuff"
export MYPY_ROOT_CONFIG="ПутьККонфигурацииMyPy"
export PYLINT_ROOT_CONFIG="ПутьККонфигурацииPylint"
Замените "ПутьК..." на соответствующие пути к файлам на вашей системе.
2. Сохраните изменения и перезагрузите терминал или выполните source ~/.zshrc.
Использование:
Использовать инструмент очень просто:
1. Перейдите в директорию вашего проекта, содержащую .git. 2. Выполните команду:
python $AUTO_CODE_REVIEW -v=3
Флаг -v определяет уровень проверки:
- 1: только Ruff
- 2: Ruff + MyPy
- 3: Ruff + MyPy + Pylint
По умолчанию скрипт проверяет только измененные строки относительно ветки master. Вы можете изменить это поведение, отредактировав переменные BRANCH_SOURCE и BRANCH_DIFF в скрипте.
Интеграция с GitHub и GitLab:
Одно из ключевых преимуществ этого инструмента - возможность использовать его результаты в процессе код-ревью на платформах GitHub и GitLab. Вывод команды python $AUTO_CODE_REVIEW -v=3 можно напрямую копировать в комментарии к pull request или merge request. Это позволяет:
- Автоматизировать часть процесса код-ревью
- Предоставлять четкие и структурированные комментарии по качеству кода
- Ускорить процесс обратной связи для авторов изменений
- Поддерживать единый стандарт качества кода в команде
Вывод:
Использование этого инструмента позволит вам:
- Повысить качество нового кода в legacy-проектах
- Сократить время на ручной проверки кода
- Постепенно улучшать существующую кодовую базу
- Обеспечить единообразие стиля кодирования в команде
- Упростить процесс код-ревью в GitHub и GitLab
Внедрение автоматического код-ревью - это первый шаг к улучшению качества вашего Python-кода. Начните использовать этот инструмент сегодня, и вы увидите, как легко можно контролировать качество даже в сложных legacy-проектах.
Интеграция результатов проверки в процесс код-ревью на GitHub и GitLab позволит вам поднять культуру разработки на новый уровень, обеспечивая постоянное повышение качества кода и облегчая коммуникацию в команде.
Не забудьте поделиться своим опытом использования этого инструмента в комментариях. Как вы интегрировали автоматическое код-ревью в свой рабочий процесс? Какие еще функции вы бы хотели видеть в подобном инструменте для автоматического код-ревью?