Количество строк кода и технологический стек
Программный комплекс «NARMAK»
Дата подсчёта: 20 марта 2026 года
Инструмент: cloc 2.08
Фиксация исходников (коммиты Git):
- Backend
narmak_v2:934ef92e73e85120d4f27c34f949d9206f385813 - Frontend
narmak-nx-angular-main:bd1550101995a5bf034b77149c10d7a376bf38e6
Методология
Подсчёт выполнялся по файлам из индекса Git (cloc --vcs=git): учитываются только отслеживаемые версией репозитории файлы; каталоги вроде node_modules, .venv, dist в Git не входят и в анализ не попадают.
Метрика «строки кода»: в таблицах раздела 1 указано значение колонки code утилиты cloc — строки, классифицированные как исполняемый/содержательный код языка (без пустых строк и без строк, отнесённых cloc к комментариям). Это сопоставимо с распространённой практикой SLOC/NCLOC и отличается от «физических» строк файла (wc -l), где учитываются пустые строки и комментарии.
Политика включения и исключения (для сопоставимости с «собственным кодом» ПК):
| Политика | Решение |
|---|---|
| Файлы CSV в backend (справочные и прочие данные, не логика) | Исключены из метрик раздела 1 (--exclude-ext=csv) |
Файлы JSON во frontend (в т.ч. крупные датасеты в assets, конфигурация Nx) | Исключены из метрик раздела 1 (--exclude-ext=json) |
Каталоги libs/sdk, libs/sdk-counterparty (клиент API, формируется из Swagger/OpenAPI) | Учтены отдельной строкой «Сгенерированный API-клиент» |
Автотесты (*.spec.ts) | Включены в основные цифры; объём несущественен при данной гранулярности; при необходимости отдельный подсчёт: cloc ... --not-match-f='\\.spec\\.ts$' |
Прочие языки в репозиториях (Markdown, vendored JS/CSS в assets, и т.д.) | Не входят в сводный столбец раздела 1.4; кратко указаны для backend в п. 1.5 |
Воспроизведение подсчёта (выполнять из корня соответствующего репозитория):
# Backend — каталоги приложения; CSV не учитываются
cloc --vcs=git --exclude-ext=csv app narmak microservices config
# Frontend — приложения (apps), без JSON
cloc --vcs=git --exclude-ext=json apps
# Frontend — библиотеки без JSON и без сгенерированных SDK
cloc --vcs=git --exclude-ext=json --exclude-dir=sdk,sdk-counterparty libs
# Сгенерированный API-клиент
cloc --vcs=git --exclude-ext=json libs/sdk libs/sdk-counterpartyПри наличии локальных нечитаемых путей (Git LFS, права) cloc может выводить Unable to read ... — перед фиксацией отчёта для ОИС рекомендуется восстановить файлы (git lfs pull и т.п.) и повторить запуск.
1. Собственный код правообладателя
1.1. Серверная часть (Backend)
Охват: каталоги app/, narmak/, microservices/, config/. Файлы .csv исключены (см. методологию).
| Язык / тип файлов | Кол-во файлов | Строк кода (cloc, code) |
|---|---|---|
Python (.py) | 1 618 | 140 650 |
| Итого по разделу 1.1 | 1 618 | 140 650 |
1.2. Веб-приложения (Frontend — директория apps/)
Файлы .json исключены.
| Язык / тип файлов | Кол-во файлов | Строк кода (cloc, code) |
|---|---|---|
TypeScript (.ts) | 853 | 170 030 |
HTML-шаблоны (.html) | 565 | 109 939 |
Стили SCSS (.scss) | 316 | 59 606 |
| Итого Frontend Apps | 1 734 | 339 575 |
1.3. Библиотеки (Frontend — директория libs/)
Без каталогов sdk/ и sdk-counterparty и без файлов .json.
| Язык / тип файлов | Кол-во файлов | Строк кода (cloc, code) |
|---|---|---|
TypeScript (.ts) | 898 | 108 973 |
HTML-шаблоны (.html) | 53 | 15 290 |
Стили SCSS (.scss) | 84 | 8 810 |
| Итого Frontend Libs (ручной код) | 1 035 | 133 073 |
1.4. Сгенерированный API-клиент (Frontend)
Формируется из контракта REST API; исходники в libs/sdk, libs/sdk-counterparty. Файлы .json исключены.
| Компонент | Кол-во файлов | Строк кода (cloc, code) |
|---|---|---|
TypeScript (.ts) | 434 | 91 489 |
| Итого API-клиент | 434 | 91 489 |
1.5. Прочие артефакты в backend-репозитории (справочно)
Те же каталоги, что в п. 1.1, без CSV. Дополнительно к Python в индексе Git присутствуют, в частности: Markdown (документация), JSON, HTML, подключаемый JS/CSS, YAML, Dockerfile и др. — их объём не суммируется с показателями раздела 1.1–1.4, чтобы не смешивать прикладной код ПК с документацией и статикой админки/прототипов.
1.6. Сводная таблица
| Компонент | Языки | Файлов | Строк кода (cloc, code) |
|---|---|---|---|
| Backend (серверная часть) | Python | 1 618 | 140 650 |
| Frontend Apps | TypeScript, HTML, SCSS | 1 734 | 339 575 |
| Frontend Libs (ручной код) | TypeScript, HTML, SCSS | 1 035 | 133 073 |
| Frontend API-клиент (ген.) | TypeScript | 434 | 91 489 |
| ИТОГО по разделу 1 | 4 821 | 704 787 |
2. Используемые языки программирования
| Язык | Версия | Применение |
|---|---|---|
| Python | 3.10+ | Серверная бизнес-логика, API, обработка данных, интеграции |
| TypeScript | 5.x | Клиентская логика, компоненты Angular |
| HTML | 5 | Шаблоны компонентов Angular |
| SCSS | — | Стили компонентов и приложений |
| SQL | PostgreSQL 14+ | Хранение и запросы данных (через Django ORM) |
3. Open Source компоненты — Backend
| Библиотека | Версия | Лицензия | Назначение |
|---|---|---|---|
| Django | 5.1.4 | BSD-3-Clause | Веб-фреймворк |
| djangorestframework | 3.15.2 | BSD-2-Clause | REST API |
| celery | 5.2.3 | BSD | Асинхронные задачи |
| redis | 5.1.0 | MIT | Кэш, брокер |
| psycopg2-binary | 2.9.2 | LGPL | Драйвер PostgreSQL |
| channels | 4.0.0 | BSD | WebSocket |
| daphne | — | BSD | ASGI-сервер |
| pandas | 2.2.3 | BSD | Обработка данных |
| numpy | 2.1.1 | BSD | Математика |
| openpyxl | 3.0.10 | MIT | Excel |
| weasyprint | 66.0 | BSD | |
| docxtpl | 0.16.7 | LGPL | Word-шаблоны |
| django-cors-headers | 4.4.0 | MIT | CORS |
| drf-yasg | 1.21.4 | BSD | Swagger |
| pytelegrambotapi | 4.7.1 | GPL-3.0 | Telegram Bot |
| dadata | 21.10.1 | MIT | DaData API |
| confluent-kafka | — | Apache 2.0 | Kafka |
| django-camunda | — | MIT | Camunda BPM |
Большинство перечисленных зависимостей распространяется под лицензиями MIT, BSD, Apache 2.0, LGPL и может использоваться в коммерческих продуктах при соблюдении текста соответствующей лицензии. Зависимость pytelegrambotapi (GPL-3.0) накладывает требования copyleft: при совмещении с проприетарным кодом и распространении результата необходимо учитывать условия GPL (в том числе раскрытие исходного кода производной работы в предусмотренных лицензией случаях). Окончательную юридическую оценку сценария использования даёт правообладатель совместно с юристом.
4. Open Source компоненты — Frontend
| Библиотека | Версия | Лицензия | Назначение |
|---|---|---|---|
| @angular/core | 18.0.0 | MIT | Фреймворк |
| rxjs | 7.5.0 | Apache 2.0 | Реактивность |
| @datorama/akita | 8.0.1 | MIT | State Management |
| primeng | 17.18.15 | MIT | UI-компоненты |
| @taiga-ui/core | 3.95.2 | Apache 2.0 | UI-компоненты |
| bootstrap | 5.2.3 | MIT | CSS-фреймворк |
| primeflex | 3.3.1 | MIT | CSS утилиты |
| @ngx-formly/core | 6.3.1 | MIT | Динамические формы |
| chart.js | 4.5.0 | MIT | Графики |
| apexcharts | 3.36.3 | MIT | Графики |
| d3 | 7.9.0 | ISC | Визуализация |
| jspdf | 2.5.1 | MIT | |
| xlsx | 0.18.5 | Apache 2.0 | Excel |
| docx | 9.5.1 | MIT | Word |
| quill | 1.3.7 | BSD | Rich Text |
| tinymce | 8.0.1 | MIT | WYSIWYG |
| moment | 2.29.4 | MIT | Даты |
| date-fns | 4.1.0 | MIT | Даты |
| lodash | 4.17.21 | MIT | Утилиты |
| @zxing/browser | — | Apache 2.0 | QR-коды |
| tesseract.js | 5.1.0 | Apache 2.0 | OCR |
| bpmn-js | 5.5.1 | MIT | BPMN-диаграммы |
| nx | — | MIT | Монорепозиторий |
Перечисленные open source компоненты Frontend, как правило, допускают коммерческое использование при соблюдении условий соответствующих лицензий (MIT, Apache 2.0, BSD, ISC).
5. Покупные решения
| Решение | Тип | Условия |
|---|---|---|
| Camunda BPM (Community Edition) | Open Source | Apache 2.0, бесплатно |
| PostgreSQL | Open Source | PostgreSQL License, бесплатно |
| Redis | Open Source | BSD, бесплатно |
| Apache Kafka | Open Source | Apache 2.0, бесплатно |
| TinyMCE (Self-hosted) | Open Source / Коммерческий | MIT для open source версии |
Покупных (проприетарных) решений с платными лицензиями в составе ПК «NARMAK» не используется. Сторонние компоненты в основном являются open source; условия конкретной лицензии следует проверять перед включением в поставку (см. п. 3 в отношении GPL).
6. Инфраструктура и DevOps
| Компонент | Технология | Лицензия |
|---|---|---|
| Контейнеризация | Docker | Apache 2.0 |
| Оркестрация | Docker Compose | Apache 2.0 |
| Веб-сервер | Nginx | BSD-2-Clause |
| CI/CD | GitHub Actions / GitLab CI | — |
| Мониторинг | — | — |
См. также
- Описание ОИС — объект интеллектуальной собственности ПК «NARMAK»
- Техническое задание — функциональные требования
- Архитектура проекта (обзор) — при наличии в сборке документации
Документ обновлен: март 2026 г.
Числовые показатели раздела 1 получены утилитой cloc по зафиксированным коммитам Git.