Technologies - сущность для описания и управления технологическим стеком в рамках технологического домена архитектуры (Technology Architecture domain по TOGAF).
Сущность создана для:
- Переноса функциональности управления технологиями из DocHub IDE в FOSS версию DocHub
- Создания структурированного каталога технологий с группировкой по секциям
- Валидации корректности описания технологий в системах и компонентах
- Анализа использования технологий через алиасы с выявлением неописанных технологий
- Предоставления навигационных связей между технологиями и компонентами системы
- Автоматического формирования меню для доступа к аналитическим представлениям
В FOSS версии DocHub сущность "Technologies" не выделена и технологический радар является частью ядра. При этом в DocHub IDE сущность "Technologies" выделена и технологический радар является частью сущности. Данное решение реализует эту идею в FOSS версии DocHub для возможности управления технологиями.
Сущность предоставляет следующие возможности:
- Секции радара: Группировка технологий по логическим категориям
- Описание технологий: Хранение метаданных (название, ссылка, секция, статус, алиасы)
- Валидация данных: Проверка обязательных полей и корректности ссылок
- Общий каталог: Полный список всех описанных технологий с возможностью сортировки
- Анализ по системам: Определение, где и как используются конкретные технологии
- Валидация корректности: Выявление неописанных технологий и показ ошибок
- Навигационные связи: Переходы между технологиями и компонентами системы
- Табличные представления: Структурированный вывод с сортировкой и фильтрацией
- Автоматическое меню: Формирование навигационного меню "Архитектура/Технологическая"
- Детальный анализ: Фильтрованные представления по конкретным технологиям
- Обработка ошибок: Индикация проблем с описанием технологий
technologies/
├── README.md # Данная документация
├── root.yaml # Точка входа - импорт всех компонентов
├── base.yaml # Базовая схема сущности и конфигурация
├── presentations.yaml # Определение представлений данных
├── datasets.yaml # Источники данных и запросы
└── templates/ # Шаблоны для отображения
├── technologies_list.md # Шаблон общего списка технологий
└── systems_tech_list.md # Шаблон списка по системам
base.yaml: Содержит схему данных, конфигурацию меню и основные настройки сущностиpresentations.yaml: Определяет различные способы отображения данных (таблицы, списки)datasets.yaml: Содержит JSONata-запросы для получения и обработки данныхtemplates/: Markdown-шаблоны для формирования пользовательского интерфейсаtechnologies.yaml: Файл манифеста с описанием технологий (создается в корне метамодели)
Для использования сущности Technologies необходимо:
- Создать папку
taв корне вашей метамодели - Скопировать папку
technologiesсо всеми файлами в созданную папкуta - Создать файл
ta/root.yamlсо следующим содержимым:imports: - technologies/root.yaml
После развертывания файлов подключите расширение к вашей метамодели. Добавьте в корневой файл метамодели:
imports:
- ta/root.yamlСоздайте файл technologies.yaml в корне вашей метамодели для описания технологий. Этот файл будет содержать секции и элементы технологий.
В файле манифеста technologies.yaml добавьте технологию в секцию technologies.items:
technologies:
items:
my_tech:
title: "Название технологии"
link: "https://example.com"
section: "backend" # Должна соответствовать секции из sections
status: "adopt" # adopt, trial, assess, hold
aliases: ["alias1", "alias2"]В файле манифеста technologies.yaml добавьте секцию в technologies.sections:
technologies:
sections:
backend:
title: "Backend технологии"В описании компонентов укажите используемые технологии через алиасы:
components:
my_component:
title: "Мой компонент"
technologies: ["alias1", "alias2"]Сущность предоставляет следующие представления:
/entities/technologies/technologies_list- общий список технологий/entities/technologies/systems_tech_list- анализ по системам- Фильтрованный анализ:
/entities/technologies/systems_tech_table_list.filtered?sys_alias_id=alias1
Для добавления новых представлений:
- Добавьте dataset в
datasets.yaml - Создайте presentation в
presentations.yaml - При необходимости добавьте шаблон в папку
templates/
- JSONata: Для обработки данных используются JSONata-запросы с функциями $spread, $sift, $filter
- Алиасы технологий: Технологии могут иметь несколько названий для гибкости интеграции с компонентами
- Валидация через алиасы: Автоматическая проверка корректности ссылок между технологиями и компонентами
- Автоматическое меню: Формирование навигационного меню через JSONata-выражения
- Обработка ошибок: Индикация неописанных технологий с помощью эмодзи (✅/❌) и текстовых сообщений
- Фильтрация данных: Параметризованные представления для детального анализа конкретных технологий
Сущность Technologies интегрируется с:
- Components: Отслеживает использование технологий в системах и компонентах
- Core DocHub: Расширяет базовую функциональность технологического радара
Данное решение является расширением стандартной модели DocHub и может быть использовано в любой организации, использующей DocHub. Оно не заменяет стандартную функциональность, а дополняет её дополнительными возможностями анализа и представления данных.
Valentin Kozlov
Email: i_frog@mail.ru
MIT License - разрешает свободное использование, модификацию и распространение программного обеспечения при условии сохранения текста лицензии и указания авторства.