Skip to content

Latest commit

 

History

History
25 lines (19 loc) · 2.04 KB

File metadata and controls

25 lines (19 loc) · 2.04 KB

07 — Линтеры: ruff + vulture + mypy

Тема: линтеры (см. ../../theory/software-engineering.md → «Линтеры»).

Задача: пройтись статическими анализаторами по коду и довести его до «зелёного». Подопытный — апишка из 06_k8s/app.py (и, при желании, твои решения python-задач из ../python/).

Линтеры != форматирование — это автоматизация части code review: стиль, мёртвый код, типы.

Шаги

  • Установи: pip install ruff vulture mypy
  • ruff — быстрый all-in-one (стиль, баги, часть безопасности): ruff check . → почини замечания (или ruff check --fix . для автофиксов).
  • mypy — типы: mypy --strict 06_k8s/app.py → добей аннотации, чтобы был Success.
  • vulture — мёртвый (недостижимый/неиспользуемый) код: vulture 06_k8s/app.py → разберись с каждым срабатыванием (убрать либо обосновать).
  • Добавь минимальный конфиг в pyproject.toml (секции [tool.ruff], [tool.mypy]), чтобы настройки не жили в голове, а лежали в репе. Зафиксируй target-version/python_version.

Вопросы на подумать

  • Чем ruff отличается от mypy и от vulture — что ловит каждый, а что нет?
  • Почему vulture даёт ложные срабатывания (например на FastAPI-роуты/фикстуры) и как их гасят?
  • Где место линтерам в pipeline — до тестов или после, блокируют ли они мёрж? (см. задачу 08_ci.md)