🐍 Ruff доволен, mypy молчит, тесты зелёные. А в коде четыре…

🐍 Ruff доволен, mypy молчит, тесты зелёные. А в коде четыре одинаковых функции

Автор статьи столкнулся с этим в проекте, который писал ИИ-агент. Вместо поиска готовых функций агент добавлял новые копии. Когда понадобилось изменить нормализацию данных, он уже не мог разобраться, какую из четырёх править.

Обычные проверки не покрывают всю структуру проекта
:

* R
uff находит нарушения правил и умеет проверять сложность при соответствующей настройке.
* m
ypy проверяет типы.
* pyt
est проверяет сценарии, для которых написаны тесты.

При этом дублирование между файлами, неиспользуемые функции и нарушения архитектурных границ могут остаться незамеченными.

Автор предлагает добавить структурный анализ. Его инструмент pyscn ищет дубли, сложные функции, мёртвый код и нарушения правил зависимостей:
uvx pyscn analyze .
Что полезно забрать в свой про
ект:

* Блокировать в CI новые проблемы, а не сразу весь накопленный техдолг.
* Следить за изменением сложности, а не только за общей оценкой.
* Закрепить допустимые зависимости между модулями проверяемыми правилами.
* Дать агенту запускать анализатор до отправки кода на ревью.

Высокая сложность сама по себе ещё не повод переписывать функцию. Иногда длинная последовательность понятных проверок лучше искусственного дробления.

Статья — https://codescan.dev/blog/ruff-mypy-pytest-and-then-what
Просмотры: 642
Открыть в MAX Сообщить о неточности

Репосты публикации

Публикация канала

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти