Для разработчиков
Инструменты анализа архитектуры кода СмИТ Биллинг: интерактивный граф зависимостей, wiki сообществ и справочник по graphify CLI.
Граф архитектуры
Интерактивный граф 2524 модулей, разбитых на 25 сообществ. D3.js force simulation.
Wiki сообществ
21 страница с таблицами нод, типами, файлами и связями. Поиск по всем модулям.
graphify CLI
Как обновлять граф, добавлять семантику, читать GRAPH_REPORT.md.
God nodes — наиболее связанные модули
Модули с наибольшим количеством входящих и исходящих рёбер в графе. Изменения в этих файлах затрагивают весь проект.
| Модуль | Файл | Связей | Роль |
|---|---|---|---|
BaseView | billing/views/form.py | 197 | Базовый view-класс всего admin |
PaginatorFormMixin | billing/views/form.py | 166 | Пагинация во всех списках |
SearchFormMixin | billing/views/form.py | 160 | Поиск |
MsgStack | billing/models/stubs.py | 159 | Система уведомлений |
Homes | billing/models/homes.py | 149 | Модель адресов (дерево) |
FreeScoutClient | billing/services/freescout.py | 138 | Клиент поддержки |
FinanceOperations | billing/models/finance_operations.py | 130 | Финансовые операции |
AdminAccounts | billing/models/admin_accounts.py | 127 | Лицевые счета |
Как обновить граф
Граф хранится в graphify-out/ внутри проекта carbon_modern/. Обновляется отдельно от основного кода.
# Только метки/цвета (без переиндексации, быстро):
cd carbon_modern
python graphify-out/run_labels.py
# Полный ребилд после изменений кода:
python graphify-out/run_pipeline.py
python graphify-out/run_labels.py
# Деплой в документацию:
cd docs
bash sync-docs.sh "dev: обновление графа архитектуры"
Сообщества графа
Граф разбит на 25 именованных сообществ алгоритмом Louvain. Каждое сообщество имеет собственную страницу в Wiki.
| ID | Название | Модулей | Ключевые файлы |
|---|---|---|---|
| 0 | Карточка абонента | 325 | billing/views/abonents.py |
| 1 | Личный кабинет | 321 | lk/views/ |
| 2 | Финансы и деньги | 274 | billing/models/finance_operations.py |
| 3 | Поиск абонентов | 238 | billing/views/abonents.py (AbonentsSearchView) |
| 4 | Мобильный API | 163 | mobile_api/views/ |
| 5 | Авторизация | 152 | billing/models/abonents.py, billing/views/auth.py |
| 7 | Блокировки | 125 | billing/services/firewall.py, billing/models/stubs.py |
| 8 | Резервные копии | 110 | billing/tasks/backup.py |
| 11 | Задачи биллинга | 94 | billing/tasks/billing_worker.py |
| 14 | Отчёты СОРМ | 57 | billing/tasks/sorm_export.py |
| 15 | Платёжные системы | 48 | lk/services/payment.py |