Skip to content

Commit a4c8d9e

Browse files
Сделал новую версию примера repository_structure_example
1 parent 28ea92c commit a4c8d9e

85 files changed

Lines changed: 1876 additions & 245 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/repository_structure_example/README.md

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
1-
# Пример структуры репозитория для описания архитектуры
1+
# Пример структуры репозитория для описания архитектуры v 2.0
22

33
**Цель примера:** Снизить порог вхождения в DocHub за счет внедрения типовых шаблонов структуры репозитория и меню DocHub для управления корпоративной архитектурой.
44

5+
# Отличия от предыдущей версии
6+
* Основным отличием от предыдущей версии является то, что в этой версии управление метамоделями выделено в отдельную папку **metamodels** с целью разделения архитектурных данных и структуры метамоделей. Планируется, что будет разработано два пайплайна. В случае изменения архитектурных данных, эти данные сразу будет ехать на прод, предварительно проверяя наличие ошибок в валидаторе. В случае изменения метамодели, будет проводиться ревью изменений, а только потом специально обученный человек завезет изменения в прод.
7+
* Второе отличие заключается в том, что пример стал более функциональным. В него был внесено множество реально работающих алгоритмов.
8+
59
# Суть примера
610
Существует множество различных подходов к описанию архитектуры компании. В нашей компании была выбрана методология TOGAF. При этом мы не пытаемся внедрить классическую методологию TOGAF, мы используем комбинированный подход, выбирая только те инструменты, которые закрывают наиболее критичные риски компании.
711

@@ -18,22 +22,35 @@
1822

1923
## Файловая структура примера
2024
* **application_arch** - в этой папке хранятся все данные, связанные с прикладной архитектурой, кроме контекстов. Контексты мы вынесли в отдельную папку artefacts. Детально про artefacts можно почитать ниже.
21-
* **systems** - в этой папке хранятся данные по системам. Каждую систему мы описываем в своём файле и имя файла всегда соответствует имени системы. Идентификатор системы в общем случае представляет из себя доменное имя в виде: `<имя компании>.<имя бизнес-юнита>.<имя системы>`. Если вдруг у системы нет своего репозитория, то в этом файле мы также описываем runtime компоненты этой системы, что позволяет хранить всю информацию по системе в одном месте.
25+
* **reports** - в этой папке хранятся различные отчеты по системам.
26+
* **systems** - в этой папке хранятся данные по системам. Каждую систему мы описываем в своём файле и имя файла всегда соответствует имени системы. Идентификатор системы в общем случае представляет из себя доменное имя в виде: `<имя компании>.<имя бизнес-юнита>.<имя системы>`. Если вдруг у системы нет своего репозитория, то в этом файле мы также описываем runtime компоненты этой системы, что позволяет хранить всю информацию по системе в одном месте.
2227
* **artefacts** - в этой папке мы храним все артефакты по системам, например контексты мы храним в такой структуре: `./artefacts/<имя бизнес-юнита>/<имя контекста>`. Также здесь мы храним различные схемы по системам.
28+
* **common** - в этой папке хранится общий контекст ГК Болото.
29+
* **frog_paradise** - в этой папке хранится контекст БЮ Лягушачий рай.
2330
* **business_arch** - в этой папке хранятся все данные, связанные с бизнес-архитектурой. На текущий момент мы не ведем в DocHub бизнес-архитектуру. Возможно, суда будем класть архитектурные скетчи, когда Рома закончит встраивать в DocHub https://excalidraw.com/
2431
* **dictionaries** - вспомогательная папка для хранения справочной информации. Например, при заполнении системы встал вопрос по её статусе, и чтобы не дублировать каждый раз всю информацию по статусу мы сделали справочник статусов и в системе используем только идентификатор, а если нам нужна полная информация, то получаем её при помощи функции $lookup внутри запроса.
32+
* **documentation** - в этой папке хранится общая документация. Мы пытались её размещать в различных папках, но в конце концов приняли решение сделать для неё отдельное место.
33+
* **glossary** - в этой папке хранится глоссарий ГК Болото.
34+
* **useful_links** - в этой папке хранятся полезные линки на внешние ресурсы. Это может быть Confluence, различные обучающие видео на YouTube и т.д.
35+
* **images** - в этой папке хранятся картинки для документации.
2536
* **enterprise_arch** - это папка корпоративных архитекторов, сюда мы помещаем всю информацию, которая связана с развитием архитектуры в компании.
26-
* **adr** - в этой папке мы храним реестр архитектурных решений
37+
* **adr** - в этой папке хранится реестр архитектурных решений
2738
* **processes** - в этой папке мы храним документацию по различным архитектурным процессам
28-
* **tools** - в этой папке мы храним документацию по инструментам архитектуры
29-
* **dochub** - в этой папке мы храним документацию по DocHub
30-
* **welcome** - в этой папке мы храним документацию, которая выводится при открытии DocHub (welcome page)
39+
* **tools** - в этой папке хранится документация по инструментам архитектуры
40+
* **dochub** - в этой папке хранится документация по DocHub
41+
* **welcome** - в этой папке хранится документация, которая выводится при открытии DocHub (welcome page)
3142
* **images** - картинки для настоящей документации
3243
* **information_arch** - в этой папке хранятся все данные, связанные с информационной архитектурой. На текущий момент мы в начале пути и сделали пока только прототип по управлению бизнес-сущностями на логическом уровне.
33-
* **settings** - здесь мы храним всякие настройки
34-
* **datasets** - здесь у нас общие запросы
35-
* **jsonata** - здесь у нас общие функции. Пример использования можно посмотреть [здесь](https://github.com/rpiontik/DocHubExamples/blob/main/src/jsonata_query_examples/jsonata_query_example.md).
36-
* **validators** - здесь мы описываем валидаторы, которые нужно выводить в общее меню проблем. Пример использования можно посмотреть [здесь](https://github.com/rpiontik/DocHubExamples/tree/main/src/validator_example)
44+
* **business_entities** - в этой папке хранятся данные по бизнес-сущностям. Сама модель переехала в папку metamodels.
45+
* **metamodels** - в этой папке хранятся все метамодели, а также дополнительные наборы данных и инструментов необходимых для разработки метaмоделей и их валидации.
46+
* **custom** - в этой папке хранится описание всех пользовательских матамоделей.
47+
* **business_entities** - в этой папке хранится описание модели по управлению бизнес-сущностями на логическом уровне.
48+
* **dictionaries** - в этой папке хранится матамодель описывающая структуру справочников.
49+
* **dochub_menu** - в этой папке хранится матамодель описывающая целевую структуру меню.
50+
* **datasets** - в этой папке хранятся все общие запросы (datasets).
51+
* **default** - в этой папке хранятся все инструменты для расширения дефолтных метамоделей DocHub.
52+
* **jsonata** - в этой папке хранятся общие функции. Пример использования можно посмотреть [здесь](https://github.com/rpiontik/DocHubExamples/blob/main/src/jsonata_query_examples/jsonata_query_example.md).
53+
* **validators** - здесь мы описываем валидаторы, которые нужно выводить в общее меню проблем. В самой папке есть два вида примеров, это валидация через schema и валидация через проверку заполнения конкретных параметров. Пример использования для schema можно посмотреть [здесь](https://github.com/rpiontik/DocHubExamples/tree/main/src/validator_example).
3754
* **standards** - это одна из ключевых папок, где мы храним архитектурные принципы и стандарты, которые обязательны к выполнению всеми командами
3855
* **arch_principles** - здесь у нас описаны архитектурные принципы и принципы информационной безопасности
3956
* **it_platforms** - здесь мы храним архитектурные стандарты по платформам, а также принятые нотации по кодированию
Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,16 @@
1-
imports:
2-
- business_arch/_root.yaml
3-
- information_arch/_root.yaml
1+
imports:
42
- application_arch/_root.yaml
5-
- tech_arch/_root.yaml
63
- artefacts/_root.yaml
4+
- business_arch/_root.yaml
75
- dictionaries/_root.yaml
6+
- documentation/_root.yaml
87
- enterprise_arch/_root.yaml
9-
- settings/_root.yaml
10-
- standards/_root.yaml
8+
- information_arch/_root.yaml
9+
- metamodels/_root.yaml
10+
- standards/_root.yaml
11+
- tech_arch/_root.yaml
12+
13+
14+
15+
16+
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1-
imports:
2-
- systems/_root.yaml
1+
imports:
2+
- reports/_root.yaml
3+
- systems/_root.yaml
34
- docs.yaml

src/repository_structure_example/application_arch/docs.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
docs:
2-
# Заглушка пока нет описсания по бизнес архитектуре
2+
# Заглушка пока нет описания
33
swamp.application_arch:
44
location: 04. Прикладная архитектура
5-
description: Описание информационной архитектурой
5+
description: Описание прикладной архитектуры
66
type: markdown
77
template: application_arch.md
88

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
imports:
2+
- systems_list/_root.yaml
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
imports:
2+
- docs.yaml
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
docs:
2+
systems_table_list:
3+
type: table
4+
headers:
5+
- value: title
6+
text: Система
7+
sortable: true
8+
align: left
9+
width: 10%
10+
link: link_to_system
11+
12+
- value: owner_unit
13+
text: Принадлежность
14+
sortable: true
15+
align: left
16+
width: 10%
17+
18+
- value: description
19+
text: Описание
20+
sortable: false
21+
align: left
22+
width: 40%
23+
24+
- value: application_owner
25+
text: Владелец приложения
26+
sortable: true
27+
align: left
28+
width: 10%
29+
30+
- value: system_entities
31+
text: Бизнес-сущности
32+
link: link_to_system_entities
33+
align: left
34+
width: 10%
35+
36+
source: swamp.dataset.systems_list
37+
38+
systems_list:
39+
location: 04. Прикладная архитектура/01. Список систем
40+
type: markdown
41+
source: systems_table.md
42+
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Список систем/сервисов ГК Болото
2+
3+
![Получаем список бизнес-сущностей](@document/systems_table_list)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
components:
2+
swamp.frog.1cbit_finance:
3+
title: 1С Бит.Финанс
4+
entity: system
5+
short_description: Функциональная подсистема автоматизирующая договорной учет
6+
description: Функциональная подсистема автоматизирующая договорной учет
7+
business_owners:
8+
- Кикимора-болотная
9+
application_owner: Лягушка
10+
critical_level: mission_critical #administrative/business_operational/business_critical/mission_critical
11+
system_category: business_app #channel_app/business_app/ext_business_app/it_app/ext_it_app
12+
links:
13+
# Cвязи с системами
14+
- id: swamp.crocodile.spact
15+
direction: <--
16+
- id: swamp.frog.spoll
17+
direction: <--
18+
- id: swamp.crocodile.crm
19+
direction: <--
Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,7 @@
1-
imports:
2-
1+
imports:
2+
- 1cbit_finance.yaml
3+
- allure.yaml
4+
- crm.yaml
5+
- grafana_dev.yaml
6+
- spact.yaml
7+
- spoll.yaml

0 commit comments

Comments
 (0)