Skip to content

Commit f1051e0

Browse files
Merge pull request #4 from rpiontik/main
Update from original
2 parents 0a8bd31 + eaefcb4 commit f1051e0

10 files changed

Lines changed: 481 additions & 1 deletion

File tree

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
7. [Управление процессом развертывания систем в кластерах](src/deployment_units_management)
2121
8. [Примеры запросов JSONata](src/jsonata_query_examples)
2222
9. [Пример структуры репозитория для управления архитектурой](src/repository_structure_example)
23+
10. [Пример формирования L1 контекста](src/l1_drilldown)
24+
11. [Примеры для кликабельных линков и пользовательского DSL](src/customdsl)
2325

2426

2527
## Разворачивание
@@ -81,4 +83,4 @@
8183
8284
Pull request в данный репозиторий означает согласие автора на присоединение к данной лицензии.
8385
84-
The MIT License http://opensource.org/licenses/MIT
86+
The MIT License http://opensource.org/licenses/MIT

src/customdsl/README.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Пример кастомного DSL
2+
3+
## Цель примера:
4+
Представить пример кастомного DSL для отображения контекстных диаграмм.
5+
Пользовательский DSL должен имплементировать следующий интерфейс:
6+
7+
### Отображение региона
8+
```
9+
!unquoted procedure $Region($alias, $label, $type)
10+
... здесь PlantUML код имплементации ...
11+
!endprocedure
12+
```
13+
14+
### Отображение заголовка
15+
```
16+
!unquoted procedure $Header($Title="Header", !endprocedure
17+
... здесь PlantUML код имплементации ...
18+
!endprocedure
19+
```
20+
21+
### Начало отображения элемента
22+
```
23+
!unquoted procedure $Entity($entity, $ACName, $id, $ACType)
24+
... здесь PlantUML код имплементации ...
25+
!endprocedure
26+
```
27+
28+
### Конец отображения элемента
29+
```
30+
!unquoted procedure $EntityEnd($entity)
31+
... здесь PlantUML код имплементации ...
32+
!endprocedure
33+
```
34+
### Отображения аспекта элемента
35+
```
36+
!unquoted procedure $EntityAspect($entity, $prop)
37+
... здесь PlantUML код имплементации ...
38+
!endprocedure
39+
```
40+
41+
### Отображение расширения элемента
42+
```
43+
!unquoted procedure $EntityExpand($entity, $ID)
44+
... здесь PlantUML код имплементации ...
45+
!endprocedure
46+
```
47+
48+
## Для включения пользовательского DSL в контексте, необходимо задекларировать шаблон в контексте
49+
```
50+
uml:
51+
$dsl: dsl.puml
52+
```

src/customdsl/dochub.yaml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
components:
2+
systems.a:
3+
entity: system
4+
title: Система 1
5+
links:
6+
- id: systems.b
7+
description: Это ссылка П1
8+
direction: -->
9+
title: П1
10+
systems.b:
11+
entity: system
12+
title: Система 2
13+
links:
14+
- id: systems.a
15+
description: Это ссылка П2
16+
direction: -->
17+
title: П2
18+
contexts:
19+
example:
20+
title: Пример пользовательского DSL
21+
location: Пример пользовательского DSL для контекста
22+
extra-links: true
23+
uml:
24+
$dsl: dsl.puml
25+
components:
26+
- systems.*

src/customdsl/dsl.puml

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml
2+
3+
allow_mixing
4+
5+
'Общее позиционирование
6+
skinparam {
7+
wrapWidth 200
8+
maxMessageSize 200
9+
'hide stereotype
10+
defaultfontname arial
11+
roundCorner 10
12+
linetype ortho
13+
'linetype polyline
14+
'nodesep 100
15+
'ranksep 100
16+
shadowing false
17+
'padding 0
18+
hyperlinkColor black
19+
hyperlinkUnderline false
20+
}
21+
'left to right direction
22+
hide circle
23+
24+
25+
'Стиль стрелки
26+
skinparam arrow {
27+
color black
28+
thickness 1
29+
}
30+
31+
skinparam note {
32+
bordercolor #4e4948
33+
backgroundcolor pink
34+
}
35+
36+
!unquoted procedure $Region($alias, $label, $type)
37+
!if ($type)
38+
Boundary($alias , "$label", $type)
39+
!else
40+
Boundary($alias , "$label")
41+
!endif
42+
!endprocedure
43+
44+
!unquoted procedure $Header($Title="Header", $Authors="Name", $Version="0.1", $Date="01.01.1999")
45+
header
46+
!if ($Authors)
47+
Authors: $Authors
48+
!endif
49+
!if ($Version)
50+
Version: $Version
51+
!endif
52+
!if ($Date)
53+
Date: $Date
54+
!endif
55+
56+
endheader
57+
58+
hide empty members
59+
60+
title $Title
61+
!endprocedure
62+
63+
!unquoted procedure $Entity($entity, $ACName, $id, $ACType)
64+
!if ($entity == "database")
65+
!if ($ACType == "Внешняя")
66+
SystemDb_Ext($id, $ACName)
67+
!else
68+
SystemDb($id, $ACName)
69+
!endif
70+
!elseif ($entity == "actor" || $entity == "person")
71+
!if ($ACType == "Внешняя")
72+
Person_Ext($id, $ACName)
73+
!else
74+
Person($id, $ACName)
75+
!endif
76+
!else
77+
!if ($ACType == "Внешняя")
78+
System_Ext($id, $ACName)
79+
!else
80+
System($id, $ACName)
81+
!endif
82+
!endif
83+
!endprocedure
84+
85+
!unquoted procedure $EntityEnd($entity)
86+
!endprocedure
87+
88+
!unquoted procedure $EntityAspect($entity, $prop)
89+
!endprocedure
90+
91+
!unquoted procedure $EntityExpand($entity, $ID)
92+
!endprocedure

src/l1_drilldown/README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Пример формирования L1 контекста
2+
3+
**Цель примера:** Представить пример контекстной диаграммы

0 commit comments

Comments
 (0)