wily
— статический анализатор кода, который собирает различные метрики и позволяет сравнивать их между ревизиями.Умеет собирать множество различных метрик, например:
* количество строк, использованных операторов, комментариев;
* цикломатическая сложность;
* maintainability index.
По этим метрикам позволяет находить, например, самые сложные файлы в репозитории, которые сильнее всего хотят быть отрефактореными. Умеет пробегать историю изменений вглубь и оценивать, как метрики меняются со временем.
Можно интегрировать
wily
в качестве хука в Git, либо в CI. Честно говоря, это не кажется мне такой уж хорошей идеей, потому что мы часто осознанно хотим усложнить код, добавляя в проект новые фичи. Код вообще зачастую становится лишь сложнее. Было бы странно постоянно ронять CI из-за этого.Но тулза всё равно полезная в информационных целях. Можно периодически её запускать, чтобы оценивать, как меняется проект. А ещё можно строить разные графики.
source: https://github.com/tonybaloney/wily
docs: https://wily.readthedocs.io/en/latest/index.html
#tool #wily
GitHub
GitHub - tonybaloney/wily: A Python application for tracking, reporting on timing and complexity in Python code
A Python application for tracking, reporting on timing and complexity in Python code - tonybaloney/wily
Многие уже приняли за норму форматирование кода разными тулзами (
А что если начать сортировать ещё и весь остальной исходный код?
https://github.com/bwhmather/ssort
> Makes old fashioned code navigation easier, you can always scroll up to see where something is defined, and reduces bikeshedding.
#formatter #tool
black
) и сортировку импортов в алфавитном порядке с разбиением на группы (isort
).А что если начать сортировать ещё и весь остальной исходный код?
https://github.com/bwhmather/ssort
ssort
сортирует функции и классы, ставя их после того, от чего они зависят. Получается, что вверху файла находятся самые низкоуровневые функции, от которых всё зависит, а внизу файла — самый главный высокоуровневый код. Прям как завещал дядюшка Боб.> Makes old fashioned code navigation easier, you can always scroll up to see where something is defined, and reduces bikeshedding.
#formatter #tool
👍23🤔2❤1