PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱Cohesion.

Cohesion — это инструмент статического анализа для измерения связанности (когезии) классов в Python.

В программировании cohesion (связанность) определяет, насколько сильно методы и переменные внутри одного модуля или класса логически подходят друг другу. Как писал Роберт Мартин в книге «Чистый код»: «Когда связанность высока, это означает, что методы и переменные класса зависят друг от друга и составляют единое логическое целое».

🔹Преимущества высокой связанности классов:

🔘Меньше сложности: Классы становятся проще, так как выполняют меньше разрозненных операций.

🔘Легче поддерживать: Изменения в одной части системы меньше затрагивают другие модули, код становится более изолированным.

🔘Выше переиспользуемость: Разработчикам гораздо проще находить нужные компоненты, если каждый класс сфокусирован на одной задаче.

❓Как работает утилита:

Cohesion проверяет, как именно методы класса используют переменные этого класса (как уровня класса, так и уровня экземпляра self), и выводит процентную оценку для каждого из них.

Пример отчета (cohesion --files example.py --verbose):

Class: ExampleClass1
Function: func1 -> Использует 2 из 3 переменных (66.67%)
Function: func2 -> Использует 1 из 3 переменных (33.33%)
Function: func3 -> Использует 0 из 3 переменных (0.00%)
Total (Общая связанность класса): 33.33%

Если общая оценка слишком низкая, это явный сигнал о том, что класс делает слишком много разных вещей и его пора разбивать (нарушен принцип Single Responsibility).

🛠Полезные фичи:

🔘Флаги --below и --above позволяют отфильтровать вывод (например, подсветить только те классы, у которых связанность ниже 50%).

🔘Интеграция с Flake8: Инструмент работает как плагин для линтера. При проверке кода он автоматически выдаст предупреждение, если найдет перегруженный класс:
example.py:1:1: H601 class has low cohesion

🔧Установка:

pip install cohesion


#Python #CleanCode #Cohesion #Refactoring #Flake8 #Linter #DevTools #StaticAnalysis #OpenSource

📱Ссылка на репозиторий:
https://github.com/mschwager/cohesion
Please open Telegram to view this post
VIEW IN TELEGRAM
2⚡3👍3🔥3