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 позволит вам поднять культуру разработки на новый уровень, обеспечивая постоянное повышение качества кода и облегчая коммуникацию в команде.

Не забудьте поделиться своим опытом использования этого инструмента в комментариях. Как вы интегрировали автоматическое код-ревью в свой рабочий процесс? Какие еще функции вы бы хотели видеть в подобном инструменте для автоматического код-ревью?

#python

Python: контроль качества в legacy-проектах | Сетка — социальная сеть от hh.ru Python: контроль качества в legacy-проектах | Сетка — социальная сеть от hh.ru