@h2nguyen/arc42-node-mcp-server 2.0.0 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/README.md +83 -6
  3. package/dist/templates/arc42-reference.d.ts +25 -7
  4. package/dist/templates/arc42-reference.d.ts.map +1 -1
  5. package/dist/templates/arc42-reference.js +96 -47
  6. package/dist/templates/arc42-reference.js.map +1 -1
  7. package/dist/templates/formats/asciidoc/index.d.ts +178 -0
  8. package/dist/templates/formats/asciidoc/index.d.ts.map +1 -0
  9. package/dist/templates/formats/asciidoc/index.js +225 -0
  10. package/dist/templates/formats/asciidoc/index.js.map +1 -0
  11. package/dist/templates/formats/index.d.ts +108 -0
  12. package/dist/templates/formats/index.d.ts.map +1 -0
  13. package/dist/templates/formats/index.js +149 -0
  14. package/dist/templates/formats/index.js.map +1 -0
  15. package/dist/templates/formats/markdown/index.d.ts +172 -0
  16. package/dist/templates/formats/markdown/index.d.ts.map +1 -0
  17. package/dist/templates/formats/markdown/index.js +211 -0
  18. package/dist/templates/formats/markdown/index.js.map +1 -0
  19. package/dist/templates/formats/output-format-factory.d.ts +125 -0
  20. package/dist/templates/formats/output-format-factory.d.ts.map +1 -0
  21. package/dist/templates/formats/output-format-factory.js +166 -0
  22. package/dist/templates/formats/output-format-factory.js.map +1 -0
  23. package/dist/templates/formats/output-format-registry.d.ts +114 -0
  24. package/dist/templates/formats/output-format-registry.d.ts.map +1 -0
  25. package/dist/templates/formats/output-format-registry.js +147 -0
  26. package/dist/templates/formats/output-format-registry.js.map +1 -0
  27. package/dist/templates/formats/output-format-strategy.d.ts +195 -0
  28. package/dist/templates/formats/output-format-strategy.d.ts.map +1 -0
  29. package/dist/templates/formats/output-format-strategy.js +69 -0
  30. package/dist/templates/formats/output-format-strategy.js.map +1 -0
  31. package/dist/templates/index.d.ts +9 -8
  32. package/dist/templates/index.d.ts.map +1 -1
  33. package/dist/templates/index.js +21 -10
  34. package/dist/templates/index.js.map +1 -1
  35. package/dist/templates/locales/cz/index.d.ts +25 -3
  36. package/dist/templates/locales/cz/index.d.ts.map +1 -1
  37. package/dist/templates/locales/cz/index.js +34 -18
  38. package/dist/templates/locales/cz/index.js.map +1 -1
  39. package/dist/templates/locales/cz/templates-asciidoc.d.ts +22 -0
  40. package/dist/templates/locales/cz/templates-asciidoc.d.ts.map +1 -0
  41. package/dist/templates/locales/cz/templates-asciidoc.js +764 -0
  42. package/dist/templates/locales/cz/templates-asciidoc.js.map +1 -0
  43. package/dist/templates/locales/cz/{templates.d.ts → templates-markdown.d.ts} +1 -1
  44. package/dist/templates/locales/cz/templates-markdown.d.ts.map +1 -0
  45. package/dist/templates/locales/cz/{templates.js → templates-markdown.js} +1 -1
  46. package/dist/templates/locales/cz/templates-markdown.js.map +1 -0
  47. package/dist/templates/locales/de/index.d.ts +14 -4
  48. package/dist/templates/locales/de/index.d.ts.map +1 -1
  49. package/dist/templates/locales/de/index.js +22 -25
  50. package/dist/templates/locales/de/index.js.map +1 -1
  51. package/dist/templates/locales/de/templates-asciidoc.d.ts +22 -0
  52. package/dist/templates/locales/de/templates-asciidoc.d.ts.map +1 -0
  53. package/dist/templates/locales/de/templates-asciidoc.js +814 -0
  54. package/dist/templates/locales/de/templates-asciidoc.js.map +1 -0
  55. package/dist/templates/locales/de/{templates.d.ts → templates-markdown.d.ts} +1 -1
  56. package/dist/templates/locales/de/templates-markdown.d.ts.map +1 -0
  57. package/dist/templates/locales/de/{templates.js → templates-markdown.js} +1 -1
  58. package/dist/templates/locales/de/templates-markdown.js.map +1 -0
  59. package/dist/templates/locales/en/index.d.ts +14 -4
  60. package/dist/templates/locales/en/index.d.ts.map +1 -1
  61. package/dist/templates/locales/en/index.js +22 -25
  62. package/dist/templates/locales/en/index.js.map +1 -1
  63. package/dist/templates/locales/en/templates-asciidoc.d.ts +22 -0
  64. package/dist/templates/locales/en/templates-asciidoc.d.ts.map +1 -0
  65. package/dist/templates/locales/en/templates-asciidoc.js +764 -0
  66. package/dist/templates/locales/en/templates-asciidoc.js.map +1 -0
  67. package/dist/templates/locales/en/{templates.d.ts → templates-markdown.d.ts} +1 -1
  68. package/dist/templates/locales/en/templates-markdown.d.ts.map +1 -0
  69. package/dist/templates/locales/en/{templates.js → templates-markdown.js} +1 -1
  70. package/dist/templates/locales/en/templates-markdown.js.map +1 -0
  71. package/dist/templates/locales/es/index.d.ts +15 -10
  72. package/dist/templates/locales/es/index.d.ts.map +1 -1
  73. package/dist/templates/locales/es/index.js +23 -31
  74. package/dist/templates/locales/es/index.js.map +1 -1
  75. package/dist/templates/locales/es/templates-asciidoc.d.ts +22 -0
  76. package/dist/templates/locales/es/templates-asciidoc.d.ts.map +1 -0
  77. package/dist/templates/locales/es/templates-asciidoc.js +764 -0
  78. package/dist/templates/locales/es/templates-asciidoc.js.map +1 -0
  79. package/dist/templates/locales/es/{templates.d.ts → templates-markdown.d.ts} +1 -1
  80. package/dist/templates/locales/es/templates-markdown.d.ts.map +1 -0
  81. package/dist/templates/locales/es/{templates.js → templates-markdown.js} +1 -1
  82. package/dist/templates/locales/es/templates-markdown.js.map +1 -0
  83. package/dist/templates/locales/fr/index.d.ts +14 -9
  84. package/dist/templates/locales/fr/index.d.ts.map +1 -1
  85. package/dist/templates/locales/fr/index.js +22 -30
  86. package/dist/templates/locales/fr/index.js.map +1 -1
  87. package/dist/templates/locales/fr/templates-asciidoc.d.ts +22 -0
  88. package/dist/templates/locales/fr/templates-asciidoc.d.ts.map +1 -0
  89. package/dist/templates/locales/fr/templates-asciidoc.js +764 -0
  90. package/dist/templates/locales/fr/templates-asciidoc.js.map +1 -0
  91. package/dist/templates/locales/fr/{templates.d.ts → templates-markdown.d.ts} +1 -1
  92. package/dist/templates/locales/fr/templates-markdown.d.ts.map +1 -0
  93. package/dist/templates/locales/fr/{templates.js → templates-markdown.js} +1 -1
  94. package/dist/templates/locales/fr/templates-markdown.js.map +1 -0
  95. package/dist/templates/locales/it/index.d.ts +14 -9
  96. package/dist/templates/locales/it/index.d.ts.map +1 -1
  97. package/dist/templates/locales/it/index.js +22 -30
  98. package/dist/templates/locales/it/index.js.map +1 -1
  99. package/dist/templates/locales/it/templates-asciidoc.d.ts +22 -0
  100. package/dist/templates/locales/it/templates-asciidoc.d.ts.map +1 -0
  101. package/dist/templates/locales/it/templates-asciidoc.js +764 -0
  102. package/dist/templates/locales/it/templates-asciidoc.js.map +1 -0
  103. package/dist/templates/locales/it/{templates.d.ts → templates-markdown.d.ts} +1 -1
  104. package/dist/templates/locales/it/templates-markdown.d.ts.map +1 -0
  105. package/dist/templates/locales/it/{templates.js → templates-markdown.js} +1 -1
  106. package/dist/templates/locales/it/templates-markdown.js.map +1 -0
  107. package/dist/templates/locales/language-strategy-factory.d.ts +120 -0
  108. package/dist/templates/locales/language-strategy-factory.d.ts.map +1 -0
  109. package/dist/templates/locales/language-strategy-factory.js +127 -0
  110. package/dist/templates/locales/language-strategy-factory.js.map +1 -0
  111. package/dist/templates/locales/language-strategy.d.ts +16 -12
  112. package/dist/templates/locales/language-strategy.d.ts.map +1 -1
  113. package/dist/templates/locales/language-strategy.js.map +1 -1
  114. package/dist/templates/locales/nl/index.d.ts +14 -9
  115. package/dist/templates/locales/nl/index.d.ts.map +1 -1
  116. package/dist/templates/locales/nl/index.js +22 -30
  117. package/dist/templates/locales/nl/index.js.map +1 -1
  118. package/dist/templates/locales/nl/templates-asciidoc.d.ts +22 -0
  119. package/dist/templates/locales/nl/templates-asciidoc.d.ts.map +1 -0
  120. package/dist/templates/locales/nl/templates-asciidoc.js +764 -0
  121. package/dist/templates/locales/nl/templates-asciidoc.js.map +1 -0
  122. package/dist/templates/locales/nl/{templates.d.ts → templates-markdown.d.ts} +1 -1
  123. package/dist/templates/locales/nl/templates-markdown.d.ts.map +1 -0
  124. package/dist/templates/locales/nl/{templates.js → templates-markdown.js} +1 -1
  125. package/dist/templates/locales/nl/templates-markdown.js.map +1 -0
  126. package/dist/templates/locales/pt/index.d.ts +14 -9
  127. package/dist/templates/locales/pt/index.d.ts.map +1 -1
  128. package/dist/templates/locales/pt/index.js +22 -30
  129. package/dist/templates/locales/pt/index.js.map +1 -1
  130. package/dist/templates/locales/pt/templates-asciidoc.d.ts +22 -0
  131. package/dist/templates/locales/pt/templates-asciidoc.d.ts.map +1 -0
  132. package/dist/templates/locales/pt/templates-asciidoc.js +764 -0
  133. package/dist/templates/locales/pt/templates-asciidoc.js.map +1 -0
  134. package/dist/templates/locales/pt/{templates.d.ts → templates-markdown.d.ts} +1 -1
  135. package/dist/templates/locales/pt/templates-markdown.d.ts.map +1 -0
  136. package/dist/templates/locales/pt/{templates.js → templates-markdown.js} +1 -1
  137. package/dist/templates/locales/pt/templates-markdown.js.map +1 -0
  138. package/dist/templates/locales/ru/index.d.ts +19 -3
  139. package/dist/templates/locales/ru/index.d.ts.map +1 -1
  140. package/dist/templates/locales/ru/index.js +28 -24
  141. package/dist/templates/locales/ru/index.js.map +1 -1
  142. package/dist/templates/locales/ru/templates-asciidoc.d.ts +22 -0
  143. package/dist/templates/locales/ru/templates-asciidoc.d.ts.map +1 -0
  144. package/dist/templates/locales/ru/templates-asciidoc.js +996 -0
  145. package/dist/templates/locales/ru/templates-asciidoc.js.map +1 -0
  146. package/dist/templates/locales/ru/{templates.d.ts → templates-markdown.d.ts} +1 -1
  147. package/dist/templates/locales/ru/templates-markdown.d.ts.map +1 -0
  148. package/dist/templates/locales/ru/{templates.js → templates-markdown.js} +1 -1
  149. package/dist/templates/locales/ru/templates-markdown.js.map +1 -0
  150. package/dist/templates/locales/template-provider.d.ts +22 -10
  151. package/dist/templates/locales/template-provider.d.ts.map +1 -1
  152. package/dist/templates/locales/template-provider.js +53 -14
  153. package/dist/templates/locales/template-provider.js.map +1 -1
  154. package/dist/templates/locales/ukr/index.d.ts +25 -3
  155. package/dist/templates/locales/ukr/index.d.ts.map +1 -1
  156. package/dist/templates/locales/ukr/index.js +34 -18
  157. package/dist/templates/locales/ukr/index.js.map +1 -1
  158. package/dist/templates/locales/ukr/templates-asciidoc.d.ts +22 -0
  159. package/dist/templates/locales/ukr/templates-asciidoc.d.ts.map +1 -0
  160. package/dist/templates/locales/ukr/templates-asciidoc.js +764 -0
  161. package/dist/templates/locales/ukr/templates-asciidoc.js.map +1 -0
  162. package/dist/templates/locales/ukr/{templates.d.ts → templates-markdown.d.ts} +1 -1
  163. package/dist/templates/locales/ukr/templates-markdown.d.ts.map +1 -0
  164. package/dist/templates/locales/ukr/{templates.js → templates-markdown.js} +1 -1
  165. package/dist/templates/locales/ukr/templates-markdown.js.map +1 -0
  166. package/dist/templates/locales/zh/index.d.ts +25 -3
  167. package/dist/templates/locales/zh/index.d.ts.map +1 -1
  168. package/dist/templates/locales/zh/index.js +34 -18
  169. package/dist/templates/locales/zh/index.js.map +1 -1
  170. package/dist/templates/locales/zh/templates-asciidoc.d.ts +22 -0
  171. package/dist/templates/locales/zh/templates-asciidoc.d.ts.map +1 -0
  172. package/dist/templates/locales/zh/templates-asciidoc.js +764 -0
  173. package/dist/templates/locales/zh/templates-asciidoc.js.map +1 -0
  174. package/dist/templates/locales/zh/{templates.d.ts → templates-markdown.d.ts} +1 -1
  175. package/dist/templates/locales/zh/templates-markdown.d.ts.map +1 -0
  176. package/dist/templates/locales/zh/{templates.js → templates-markdown.js} +1 -1
  177. package/dist/templates/locales/zh/templates-markdown.js.map +1 -0
  178. package/dist/tools/arc42-init.d.ts +2 -1
  179. package/dist/tools/arc42-init.d.ts.map +1 -1
  180. package/dist/tools/arc42-init.js +154 -24
  181. package/dist/tools/arc42-init.js.map +1 -1
  182. package/dist/tools/arc42-status.d.ts.map +1 -1
  183. package/dist/tools/arc42-status.js +66 -10
  184. package/dist/tools/arc42-status.js.map +1 -1
  185. package/dist/tools/arc42-workflow-guide.d.ts +1 -0
  186. package/dist/tools/arc42-workflow-guide.d.ts.map +1 -1
  187. package/dist/tools/arc42-workflow-guide.js +16 -14
  188. package/dist/tools/arc42-workflow-guide.js.map +1 -1
  189. package/dist/tools/generate-template.d.ts +1 -0
  190. package/dist/tools/generate-template.d.ts.map +1 -1
  191. package/dist/tools/generate-template.js +16 -5
  192. package/dist/tools/generate-template.js.map +1 -1
  193. package/dist/tools/get-section.d.ts.map +1 -1
  194. package/dist/tools/get-section.js +28 -7
  195. package/dist/tools/get-section.js.map +1 -1
  196. package/dist/tools/update-section.d.ts +1 -1
  197. package/dist/tools/update-section.d.ts.map +1 -1
  198. package/dist/tools/update-section.js +71 -8
  199. package/dist/tools/update-section.js.map +1 -1
  200. package/dist/types.d.ts +2 -0
  201. package/dist/types.d.ts.map +1 -1
  202. package/dist/types.js +1 -0
  203. package/dist/types.js.map +1 -1
  204. package/package.json +1 -1
  205. package/dist/templates/locales/cz/templates.d.ts.map +0 -1
  206. package/dist/templates/locales/cz/templates.js.map +0 -1
  207. package/dist/templates/locales/de/templates.d.ts.map +0 -1
  208. package/dist/templates/locales/de/templates.js.map +0 -1
  209. package/dist/templates/locales/en/templates.d.ts.map +0 -1
  210. package/dist/templates/locales/en/templates.js.map +0 -1
  211. package/dist/templates/locales/es/templates.d.ts.map +0 -1
  212. package/dist/templates/locales/es/templates.js.map +0 -1
  213. package/dist/templates/locales/fr/templates.d.ts.map +0 -1
  214. package/dist/templates/locales/fr/templates.js.map +0 -1
  215. package/dist/templates/locales/it/templates.d.ts.map +0 -1
  216. package/dist/templates/locales/it/templates.js.map +0 -1
  217. package/dist/templates/locales/nl/templates.d.ts.map +0 -1
  218. package/dist/templates/locales/nl/templates.js.map +0 -1
  219. package/dist/templates/locales/pt/templates.d.ts.map +0 -1
  220. package/dist/templates/locales/pt/templates.js.map +0 -1
  221. package/dist/templates/locales/ru/templates.d.ts.map +0 -1
  222. package/dist/templates/locales/ru/templates.js.map +0 -1
  223. package/dist/templates/locales/ukr/templates.d.ts.map +0 -1
  224. package/dist/templates/locales/ukr/templates.js.map +0 -1
  225. package/dist/templates/locales/zh/templates.d.ts.map +0 -1
  226. package/dist/templates/locales/zh/templates.js.map +0 -1
@@ -0,0 +1,996 @@
1
+ /**
2
+ * Russian Templates - AsciiDoc Format
3
+ *
4
+ * Contains all arc42 section templates in Russian using AsciiDoc syntax.
5
+ * Based on the official arc42 templates from vendor/arc42-template.
6
+ *
7
+ * @module templates/locales/ru/templates-asciidoc
8
+ */
9
+ /**
10
+ * Get the Russian AsciiDoc template for a specific section
11
+ */
12
+ export function getTemplate(section) {
13
+ const templates = {
14
+ '01_introduction_and_goals': getIntroductionAndGoalsTemplate,
15
+ '02_architecture_constraints': getArchitectureConstraintsTemplate,
16
+ '03_context_and_scope': getContextAndScopeTemplate,
17
+ '04_solution_strategy': getSolutionStrategyTemplate,
18
+ '05_building_block_view': getBuildingBlockViewTemplate,
19
+ '06_runtime_view': getRuntimeViewTemplate,
20
+ '07_deployment_view': getDeploymentViewTemplate,
21
+ '08_concepts': getConceptsTemplate,
22
+ '09_architecture_decisions': getArchitectureDecisionsTemplate,
23
+ '10_quality_requirements': getQualityRequirementsTemplate,
24
+ '11_technical_risks': getTechnicalRisksTemplate,
25
+ '12_glossary': getGlossaryTemplate
26
+ };
27
+ return templates[section]();
28
+ }
29
+ function getIntroductionAndGoalsTemplate() {
30
+ return `= 1. Введение и цели
31
+
32
+ [role="arc42help"]
33
+ ****
34
+ Описывает соответствующие требования и движущие силы, которые должны учитывать архитекторы программного обеспечения и команда разработчиков.
35
+ К ним относятся
36
+
37
+ * основные бизнес-цели,
38
+ * важные особенности,
39
+ * основные функциональные требования,
40
+ * цели в области качества архитектуры и
41
+ * соответствующие заинтересованные стороны и их ожидания
42
+ ****
43
+
44
+ === Обзор требований
45
+
46
+ [role="arc42help"]
47
+ ****
48
+ .Содержание
49
+ Краткое описание функциональных требований, движущих сил, выжимка требований. Ссылка на (возможно, уже существующие) документы с требованиями
50
+ (с номером версии и информацией, где ее найти).
51
+
52
+ .Мотивация
53
+ С точки зрения конечных пользователей система создается или модифицируется, чтобы
54
+ улучшить поддержку деловой активности и/или улучшить качество.
55
+
56
+ .Форма
57
+ Краткое текстовое описание, вероятно, в табличном формате варианта использования.
58
+ Если существуют документы с требованиями, этот обзор должен ссылаться на эти документы.
59
+
60
+ Сделайте эти выдержки как можно короче. Соблюдайте баланс читабельности этого документа с потенциальной избыточностью по отношению к документам с требованиями
61
+
62
+
63
+ .Дальнейшая информация
64
+
65
+ Смотрите https://docs.arc42.org/section-1/[Введение и цели] в документации arc42.
66
+
67
+ ****
68
+
69
+ === Цели по качеству
70
+
71
+ [role="arc42help"]
72
+ ****
73
+ .Содержание
74
+ Три (максимум пять) главных целей в области качества для архитектуры, выполнение которых имеет первостепенное значение для основных заинтересованных сторон.
75
+ Здесь действительно имеются в виду цели качества для архитектуры. Не путайте их с целями проекта.
76
+ Они необязательно совпадают.
77
+
78
+ Рассмотрите этот обзор потенциальных тем (на основе стандарта ISO 25010):
79
+
80
+ image::01_2_iso-25010-topics-EN-2023.drawio.png["Категории требований по качеству"]
81
+
82
+ .Мотивация
83
+ Вы должны знать цели в области качества наиболее важных заинтересованных сторон, поскольку они будут влиять на фундаментальные архитектурные решения.
84
+ Убедитесь, что вы очень конкретно говорите об этих качествах, избегайте модных словечек.
85
+ Если вы как архитектор не знаете, как будет оцениваться качество вашей работы...
86
+
87
+ .Форма
88
+ Таблица с целями по качеству и конкретными сценариями, упорядоченными по приоритетам
89
+ ****
90
+
91
+ === Заинтересованные стороны
92
+
93
+ [role="arc42help"]
94
+ ****
95
+ .Содержание
96
+ Подробный обзор заинтересованных сторон системы, т. е. всех лиц, ролей или организаций, которые
97
+
98
+ * должны знать архитектуру
99
+ * должны быть уверены в архитектуре
100
+ * работать с архитектурой или с кодом
101
+ * нуждаются в архитектурной документации для своей работы
102
+ * должны принимать решения о системе или ее развитии
103
+
104
+ .Мотивация
105
+ Вы должны знать все стороны, участвующие в разработке системы или затронутые системой.
106
+ В противном случае вы можете получить неприятные сюрпризы позже в процессе разработки.
107
+ Эти заинтересованные стороны определяют степень и уровень детализации вашей работы и ее результатов.
108
+
109
+ .Форма
110
+ Таблица именами людей, их ролями и ожиданиями в отношении архитектуры и ее документации.
111
+ ****
112
+
113
+ [options="header",cols="1,2,2"]
114
+ |===
115
+ |Роль/Имя|Контактные данные|Ожидания
116
+ | _<Роль-1>_ | _<Контактные-данные-1>_ | _<Ожидания-1>_
117
+ | _<Роль-2>_ | _<Контактные-данные-2>_ | _<Ожидания-2>_
118
+ |===
119
+ `;
120
+ }
121
+ function getArchitectureConstraintsTemplate() {
122
+ return `= 2. Архитектурные ограничения
123
+
124
+
125
+ [role="arc42help"]
126
+ ****
127
+ .Содержание
128
+ Любое требование, ограничивающее архитекторов программного обеспечения в их свободе проектирования и решений по реализации или в принятии решений о процессе разработки. Эти ограничения иногда выходят за рамки отдельных систем и действительны для целых организаций и компаний.
129
+
130
+ .Мотивация
131
+ Архитекторы должны точно знать, где они свободны в своих проектных решениях, а где должны придерживаться ограничений.
132
+ С ограничениями всегда нужно иметь дело; хотя они могут быть предметом переговоров.
133
+
134
+ .Форма
135
+ Простые таблицы ограничений с пояснениями.
136
+ При необходимости вы можете разделить их на
137
+ технические ограничения, организационные и политические ограничения и
138
+ соглашения (например, рекомендации по программированию или управлению версиями, документация или соглашения о наименованиях)
139
+
140
+
141
+ .Дальнейшая информация
142
+
143
+ Смотрите https://docs.arc42.org/section-2/[Архитектурные ограничения] в документации arc42.
144
+
145
+ ****
146
+ `;
147
+ }
148
+ function getContextAndScopeTemplate() {
149
+ return `= 3. Контекст и рамки
150
+
151
+
152
+ [role="arc42help"]
153
+ ****
154
+ .Содержание
155
+
156
+ Контекст и область действия — как следует из названия — разграничивают вашу систему (ее рамки) от всех партнеров с которыми она коммуницирует (соседние системы и пользователи, т.е. контекст вашей системы). Таким образом, он определяет внешние интерфейсы.
157
+
158
+ При необходимости различайте бизнес-контекст (специфические для предметной области входы и выходы) и технический контекст (каналы, протоколы, аппаратное обеспечение).
159
+
160
+ .Мотивация
161
+ Интерфейсы домена и технические интерфейсы для коммуникационных партнеров являются одними из наиболее важных аспектов вашей системы. Убедитесь, что вы их полностью понимаете.
162
+
163
+ .Форма
164
+ Различные варианты:
165
+
166
+ * Контекстные диаграммы
167
+ * Списки коммуникационных партнеров и их интерфейсов.
168
+
169
+ .Дальнейшая информация
170
+
171
+ Смотрите https://docs.arc42.org/section-3/[Context and Scope] в документации arc42.
172
+
173
+ ****
174
+
175
+
176
+ === Бизнес контекст
177
+
178
+ [role="arc42help"]
179
+ ****
180
+ .Содержание
181
+ Спецификация *всех* коммуникационных партнеров (пользователи, ИТ-системы, ...) с пояснениями входных и выходных данных или интерфейсов, специфичных для предметной области.
182
+ При желании вы можете добавить специфичные для домена форматы или протоколы связи.
183
+
184
+ .Мотивация
185
+ Все заинтересованные стороны должны понимать, какими данными система обменивается со средой.
186
+
187
+ .Форма
188
+ Все виды диаграмм, изображающих систему в виде черного ящика и определяющих интерфейсы домена для коммуникационных партнеров.
189
+
190
+ В качестве альтернативы (или дополнительно) можно использовать таблицу.
191
+ Заголовок таблицы — это имя вашей системы, три столбца содержат имя партнера, с которым происходит коммуникация, входы и выходы.
192
+
193
+ ****
194
+
195
+ **<Диаграмма или таблица>**
196
+
197
+ **<необязательно: объяснение внешних доменных интерфейсов>**
198
+
199
+ === Технический контекст
200
+
201
+ [role="arc42help"]
202
+ ****
203
+ .Содержание
204
+ Технические интерфейсы (каналы и среды передачи), связывающие вашу систему с окружающей средой. Кроме того, сопоставление ввода/вывода, специфичного для предметной области, с каналами, то есть объяснение, какой ввод/вывод использует какой канал.
205
+
206
+ .Мотивация
207
+ Многие заинтересованные стороны принимают архитектурные решения на основе технических интерфейсов между системой и ее контекстом. Зачастую разработчики инфраструктуры или оборудования выбирают эти технические интерфейсы.
208
+
209
+ .Форма
210
+ Например, диаграмма развертывания UML, описывающая каналы к соседним системам,
211
+ вместе с таблицей сопоставления, показывающей взаимосвязь между каналами и вводом/выводом.
212
+
213
+ ****
214
+
215
+ **<Диаграмма или таблица>**
216
+
217
+ **<необязательно: Пояснения к техническим интерфейсам>**
218
+
219
+ **<Сопоставление ввода/вывода с каналами>**
220
+ `;
221
+ }
222
+ function getSolutionStrategyTemplate() {
223
+ return `= 4. Стратегия решения
224
+
225
+
226
+ [role="arc42help"]
227
+ ****
228
+ .Содержание
229
+
230
+ Краткое изложение и объяснение основных решений и стратегии, формирующих архитектуру системы. Они включают
231
+
232
+ * технологические решения
233
+ * решения о декомпозиции системы на верхнем уровне, т.е. использование архитектурного шаблона или шаблона проектирования
234
+ * решения о том, как достичь ключевых целей в области качества
235
+ * соответствующие организационные решения, т.е. выбор процесса разработки или делегирование определенных задач третьим лицам.
236
+
237
+ .Мотивация
238
+ Эти решения ложатся в основу вашей архитектуры. На них опираются многие другие более специфические решения или правила реализации.
239
+
240
+ .Форма
241
+ Объяснения таких ключевых решений должны быть короткими.
242
+
243
+ Мотивируйте решение (и почему было решено именно так)
244
+ на основе постановки задачи, целей в области качества и ключевых ограничений.
245
+ Подробности см. в следующих разделах.
246
+
247
+ .Дальнейшая информация
248
+
249
+ Смотрите https://docs.arc42.org/section-4/[Стратегия решения] в документации arc42.
250
+
251
+ ****
252
+ `;
253
+ }
254
+ function getBuildingBlockViewTemplate() {
255
+ return `= 5. Представление строительных блоков
256
+
257
+ [role="arc42help"]
258
+ ****
259
+ .Содержание
260
+ Представление строительных блоков показывает статическую декомпозицию системы на строительные блоки (модули, компоненты, подсистемы, классы, интерфейсы, пакеты, библиотеки, фреймворки, слои, партиции, уровни, функции, макросы, операции, структуры данных, ...) а также их зависимости (отношения, ассоциации, ...)
261
+
262
+ Это представление является обязательным для любой архитектурной документации.
263
+ По аналогии с домом это _план этажа_.
264
+
265
+ .Мотивация
266
+ Поддерживайте структуру исходного кода понятной с помощью абстракций.
267
+
268
+ Это позволит вам общаться с заинтересованными лицами на абстрактном уровне, не раскрывая деталей реализации.
269
+
270
+ .Форма
271
+ Представление стандартных блоков представляет собой иерархическую коллекцию черных и белых ящиков.
272
+ (см. рисунок ниже) и их описания.
273
+
274
+ image::05_building_blocks-EN.png["Иерархия строительных блоков"]
275
+
276
+ *Уровень 1* представляет собой описание всей системы в виде «белого ящика» вместе с описаниями всех содержащихся строительных блоков в виде «черных ящиков».
277
+
278
+ *Уровень 2* раскрывает детали некоторых строительных блоков уровня 1.
279
+ Таким образом, он содержит описание «белого ящика» выбранных строительных блоков уровня 1 вместе с описанием их внутренних строительных блоков как «черных ящиков».
280
+
281
+ *Уровень 3* увеличивает масштаб выбранных строительных блоков уровня 2 и так далее.
282
+
283
+ .Дальнейшая информация
284
+
285
+ Смотрите https://docs.arc42.org/section-5/[Представление строительных блоков] в документации arc42.
286
+
287
+ ****
288
+
289
+ === Система в общем («белый ящик»)
290
+
291
+ [role="arc42help"]
292
+ ****
293
+ Здесь вы описываете декомпозицию всей системы, используя следующий шаблон белого ящика. Описание содержит
294
+
295
+ * обзорную схему
296
+ * мотивацию декомпозиции
297
+ * описания содержащихся строительных блоков («черный ящик»). Для них мы предлагаем альтернативы:
298
+
299
+ ** используйте _одну_ таблицу для краткого и практичного обзора всех содержащихся строительных блоков и их интерфейсов
300
+ ** используйте список описаний составных частей «черного ящика» в соответствии с шаблоном «черного ящика» (см. ниже).
301
+
302
+ В зависимости от выбранного вами инструмента этот список может состоять из подглав (в текстовых файлах), подстраниц (в Wiki) или вложенных элементов (в инструменте моделирования).
303
+
304
+
305
+ * (необязательно:) важные интерфейсы, которые не объясняются в шаблонах «черного ящика» строительных блоков, но очень важны для понимания белого «ящика».
306
+ Поскольку существует так много способов указать интерфейсы, почему бы не предоставить для них специальный шаблон.
307
+ В худшем случае вам придется указать и описать синтаксис, семантику, протоколы, обработку ошибок,
308
+ ограничения, версии, качества, необходимые совместимости и многое другое.
309
+ В лучшем случае вам сойдут с рук примеры или простые подписи.
310
+
311
+ ****
312
+
313
+ _**<Обзорная диаграмма>**_
314
+
315
+ Мотивация::
316
+
317
+ _<текстовое объяснение>_
318
+
319
+
320
+ Содержащиеся строительные блоки::
321
+ _<Описание строительных блоков (черные ящики)>_
322
+
323
+ Важные интерфейсы::
324
+ _<Описание важных интерфейсов>_
325
+
326
+ [role="arc42help"]
327
+ ****
328
+
329
+ Вставьте свои объяснения черных «ящиков» из уровня 1:
330
+
331
+ Если вы используете табличную форму, вы будете описывать только свои черные ящики с именем и
332
+ ответственности по следующей схеме:
333
+
334
+ [cols="1,2" options="header"]
335
+ |===
336
+ | **Название** | **Ответственность**
337
+ | _<Черный ящик 1>_ | _<Текст>_
338
+ | _<Черный ящик 2>_ | _<Текст>_
339
+ |===
340
+
341
+
342
+ Если вы используете список описаний «черного ящика», то вы заполняете отдельный шаблон «черного ящика» для каждого важного стандартного блока.
343
+ Его заголовок — название черного ящика.
344
+
345
+ ****
346
+
347
+
348
+ ==== <Название черного ящика 1>
349
+
350
+ [role="arc42help"]
351
+ ****
352
+
353
+ Здесь вы описываете <черный ящик 1>
354
+ в соответствии со следующим шаблоном:
355
+
356
+ * Цель/ответственность
357
+ * Интерфейс(ы), если они не описаны отдельными абзацами. Эти интерфейсы могут включать качества и характеристики производительности.
358
+ * (Необязательно) Характеристики качества/производительности «черного ящика», например, доступность, поведение во время выполнения, ....
359
+ * (Необязательно) расположение каталога/файла
360
+ * (Необязательно) Выполненные требования (если вам нужна прослеживаемость к требованиям).
361
+ * (Необязательно) Открытые вопросы/проблемы/риски
362
+
363
+ ****
364
+
365
+ _<Цель/обязанности>_
366
+
367
+ _<Интерфейс(ы)>_
368
+
369
+ _<(Необязательно) Характеристики качества/производительности>_
370
+
371
+ _<(Необязательно) Папка/Расположение файла>_
372
+
373
+ _<(Необязательно) Выполненные требования>_
374
+
375
+ _<(необязательно) Открытые проблемы/проблемы/риски>_
376
+
377
+
378
+
379
+
380
+ ==== <Название черного ящика 2>
381
+
382
+ _<шаблон черного ящика>_
383
+
384
+ ==== <Название черного ящика n>
385
+
386
+ _<шаблон черного ящика>_
387
+
388
+
389
+ ==== <Название интерфейса 1>
390
+
391
+ ...
392
+
393
+ ==== <Название интерфейса m>
394
+
395
+
396
+
397
+
398
+ === Уровень 2
399
+
400
+ [role="arc42help"]
401
+ ****
402
+ Здесь вы можете указать внутреннюю структуру (некоторых) строительных блоков первого уровня в виде «белого ящика».
403
+
404
+ Вы должны решить, какие строительные блоки вашей системы достаточно важны, чтобы оправдать такое подробное описание.
405
+ Пожалуйста, предпочтите релевантность полноте. Укажите важные, неожиданные, рискованные, сложные или изменчивые строительные блоки.
406
+ Исключите нормальные, простые, скучные или стандартизированные части вашей системы.
407
+ ****
408
+
409
+ ==== Белый ящик _<строительный блок 1>_
410
+
411
+ [role="arc42help"]
412
+ ****
413
+ ...описывает внутреннюю структуру _строительного блока 1_.
414
+
415
+ ****
416
+
417
+ _<шаблон белого ящика>_
418
+
419
+ ==== Белый ящик _<строительный блок 2>_
420
+
421
+
422
+ _<шаблон белого ящика>_
423
+
424
+ ...
425
+
426
+ ==== Белый ящик _<строительный блок m>_
427
+
428
+
429
+ _<шаблон белого ящика>_
430
+
431
+
432
+
433
+ === Уровень 3
434
+
435
+ [role="arc42help"]
436
+ ****
437
+
438
+ Если вам нужны более подробные уровни вашей архитектуры, скопируйте эту
439
+ часть arc42 для дополнительных уровней.
440
+ ****
441
+
442
+
443
+ ==== Белый ящик <_строительный блок x.1_>
444
+
445
+ [role="arc42help"]
446
+ ****
447
+ Описывает внутреннюю структуру _строительного блока x.1_.
448
+ ****
449
+
450
+
451
+ _<шаблон белого ящика>_
452
+
453
+
454
+ ==== Белый ящик <_строительный блок x.2_>
455
+
456
+ _<шаблон белого ящика>_
457
+
458
+
459
+
460
+ ==== Белый ящик <_строительный блок y.1_>
461
+
462
+ _<шаблон белого ящика>_
463
+ `;
464
+ }
465
+ function getRuntimeViewTemplate() {
466
+ return `= 6. Представление времени выполнения
467
+
468
+ [role="arc42help"]
469
+ ****
470
+ .Содержание
471
+ Представление времени выполнения описывает конкретное поведение и взаимодействие строительных блоков системы в виде сценариев из следующих областей:
472
+
473
+ * важные варианты использования или функции: как строительные блоки их выполняют?
474
+ * взаимодействия на критических внешних интерфейсах: как строительные блоки взаимодействуют с пользователями и соседними системами?
475
+ * эксплуатация и администрирование: запуск, запуск, остановка
476
+ * сценарии ошибок и исключений
477
+
478
+ Примечание: Основным критерием выбора возможных сценариев (последовательностей, рабочих процессов) является их *архитектурная релевантность*.
479
+ *Не* нужно без надобности описывать большое количество сценариев.
480
+ Вам лучше задокументировать репрезентативный выбор.
481
+
482
+ .Мотивация
483
+ Вы должны понимать, как (экземпляры) строительных блоков вашей системы выполняют свою работу и взаимодействуют во время выполнения.
484
+ В основном вы будете фиксировать сценарии в своей документации, чтобы сообщить о своей архитектуре заинтересованным сторонам, которые менее склонны или не способны читать и понимать статические модели (представление стандартных блоков, представление развертывания).
485
+
486
+ .Форма
487
+ Существует множество обозначений для описания сценариев, например.
488
+
489
+ * пронумерованный список шагов (на естественном языке)
490
+ * диаграммы деятельности (activity diagrams) или блок-схемы
491
+ * диаграммы последовательности (sequence diagrams)
492
+ * BPMN или EPC (цепочки обработки событий)
493
+ * конечные автоматы
494
+ * ...
495
+
496
+ .Дальнейшая информация
497
+ Смотри https://docs.arc42.org/section-6/[Представление времени выполнения] в документации arc42.
498
+
499
+ ****
500
+
501
+ === <Сценарий времени выполнения 1>
502
+
503
+ * _<вставьте диаграмму выполнения или текстовое описание сценария>_
504
+ * _<вставьте описание важных аспектов взаимодействия между экземплярами стандартных блоков, изображенных на этой диаграмме.>_
505
+
506
+ === <Сценарий времени выполнения 2>
507
+
508
+ === ...
509
+
510
+ === <Сценарий времени выполнения n>
511
+ `;
512
+ }
513
+ function getDeploymentViewTemplate() {
514
+ return `= 7. Представления развертывания
515
+
516
+ [role="arc42help"]
517
+ ****
518
+ Представление развертывания описывает:
519
+
520
+ 1. техническую инфраструктуру, используемую для работы вашей системы, с элементами инфраструктуры, такими как географические местоположения, среды, компьютеры, процессоры, каналы и сетевые топологии, а также другие элементы инфраструктуры и
521
+
522
+ 2. сопоставление строительных блоков (программного обеспечения) с этими элементами инфраструктуры.
523
+
524
+ Часто системы выполняются в разных средах, например. среда разработки, тестовая среда, продакшн.
525
+ В таких случаях вы должны задокументировать все соответствующие среды.
526
+
527
+ Особенно важно задокументировать представление развертывания, если ваше программное обеспечение выполняется в виде распределенной системы с более чем одним компьютером, процессором, сервером или контейнером; или когда вы проектируете и создаете свои собственные аппаратные процессоры и микросхемы.
528
+
529
+ С точки зрения программного обеспечения достаточно зафиксировать только те элементы инфраструктуры, которые необходимы для демонстрации развертывания ваших строительных блоков.
530
+ Архитекторы аппаратного обеспечения могут пойти дальше и описать инфраструктуру с любым уровнем детализации, который им необходим.
531
+
532
+ .Мотивация
533
+ Программное обеспечение не работает без аппаратного обеспечения.
534
+ Эта базовая инфраструктура может и будет влиять на систему и/или некоторые сквозные (сквозные) концепции.
535
+ Поэтому необходимо знать инфраструктуру.
536
+
537
+ .Форма
538
+ Возможно, схема развертывания самого высокого уровня уже содержится в разделе 3.2. в виде технического контекста с собственной инфраструктурой, описанной ОДНИМ черным ящиком.
539
+ В этом разделе можно раскрыть этот черный ящик, используя дополнительные диаграммы развертывания:
540
+
541
+ * UML предлагает диаграммы развертывания, чтобы выразить это представление.
542
+ Используйте его, возможно, с вложенными диаграммами, в случае если ваша инфраструктура более сложна.
543
+ * Если заинтересованные стороны (связанные с аппаратным обеспечением) предпочитают другие виды диаграмм, а не диаграмму развертывания, позвольте им использовать любой вид, способный отображать узлы и каналы инфраструктуры.
544
+
545
+ .Дальнейшая информация
546
+ Смотри https://docs.arc42.org/section-7/[Представление развертывания] в документации arc42.
547
+
548
+ ****
549
+
550
+ === Инфраструктурный уровень 1
551
+
552
+ [role="arc42help"]
553
+ ****
554
+
555
+ Опишите (обычно в комбинации диаграмм, таблиц и текста):
556
+
557
+ * распределение системы по нескольким местоположениям, средам, компьютерам, процессорам и т. д., а также физическим соединениям между ними
558
+ * важные обоснования или мотивы для этой структуры развертывания
559
+ * характеристики качества и/или производительности этой инфраструктуры
560
+ * сопоставление программных артефактов с элементами этой инфраструктуры
561
+
562
+ Для нескольких сред или альтернативных развертываний скопируйте и адаптируйте этот раздел arc42 для всех соответствующих сред.
563
+ ****
564
+
565
+ _**<Обзорная диаграмма>**_
566
+
567
+ Мотивация::
568
+
569
+ _<объяснение в текстовом виде>_
570
+
571
+ Характеристики качества и/или производительности::
572
+
573
+ _<объяснение в текстовом виде>_
574
+
575
+ Сопоставление строительных блоков с инфраструктурой::
576
+ _<описание сопоставления>_
577
+
578
+ === Инфраструктурный уровень 2
579
+
580
+ [role="arc42help"]
581
+ ****
582
+ Сюда можно включить внутреннюю структуру (некоторых) Инфраструктурных элементов уровня 1.
583
+
584
+ Пожалуйста, скопируйте структуру уровня 1 для каждого выбранного элемента.
585
+ ****
586
+
587
+ ==== _<Инфраструктурный элемент 1>_
588
+
589
+ _<диаграмма + объяснение>_
590
+
591
+ ==== _<Инфраструктурный элемент 2>_
592
+
593
+ _<диаграмма + объяснение>_
594
+
595
+ ...
596
+
597
+ ==== _<Инфраструктурный элемент n>_
598
+
599
+ _<диаграмма + объяснение>_
600
+ `;
601
+ }
602
+ function getConceptsTemplate() {
603
+ return `= 8. Сквозные концепции
604
+
605
+
606
+ [role="arc42help"]
607
+ ****
608
+ .Содержание
609
+ В этом разделе описываются главные правила и идеи решений, которые применимы к нескольким частям (= сквозные) вашей системы.
610
+ Такие концепции часто связаны с несколькими строительными блоками.
611
+ Они могут включать множество различных тем, таких как
612
+
613
+ * модели, особенно модели предметной области
614
+ * архитектура или шаблоны дизайна
615
+ * правила использования конкретных технологий
616
+ * принципиальные, часто технические решения всеобъемлющего (= сквозного) характера
617
+ * правила реализации
618
+
619
+
620
+ .Мотивация
621
+
622
+ Концепции составляют основу _концептуальной целостности_ (непротиворечивости, однородности) архитектуры.
623
+ Таким образом, они являются важным вкладом в достижение внутренних качеств вашей системы.
624
+
625
+ Некоторые из этих концепций не могут быть отнесены к отдельным строительным блокам, например к безопасности или производительности.
626
+
627
+ .Форма
628
+ Форма может быть разнообразной:
629
+
630
+ * концептуальные документы любой структуры
631
+ * сквозные фрагменты моделей или сценарии с использованием обозначений архитектурных представлений
632
+ * примеры реализации, особенно для технических концепций
633
+ * ссылка на типичное использование стандартных фреймворков (например, использование Hibernate для объектно-реляционного сопоставления)
634
+
635
+ .Структура
636
+ Потенциальная (но не обязательная) структура этого раздела может быть следующей:
637
+
638
+ * Концепции домена
639
+ * Концепции взаимодействия с пользователем (UX)
640
+ * Концепции безопасности и защиты
641
+ * Архитектура и шаблоны проектирования
642
+ * "Под капотом"
643
+ * концепции развития
644
+ * операционные концепции
645
+
646
+ Примечание: может быть сложно отнести отдельные концепции к одной конкретной теме в этом списке.
647
+
648
+ image::08-concepts-EN.drawio.png["Возможные темы для сквозных концепций"]
649
+
650
+
651
+ .Дальнейшая информация
652
+
653
+ Смотри https://docs.arc42.org/section-8/[Концепции] в документации arc42.
654
+ ****
655
+
656
+
657
+ === _<Концепция 1>_
658
+
659
+ _<объяснение>_
660
+
661
+
662
+
663
+ === _<Концепция 2>_
664
+
665
+ _<объяснение>_
666
+
667
+ ...
668
+
669
+ === _<Концепция n>_
670
+
671
+ _<объяснение>_
672
+ `;
673
+ }
674
+ function getArchitectureDecisionsTemplate() {
675
+ return `= 9. Архитектурные решения
676
+
677
+
678
+ [role="arc42help"]
679
+ ****
680
+ .Содержание
681
+ Важные, дорогие, крупномасштабные или рискованные архитектурные решения, включая их обоснование.
682
+ Под «решениями» мы подразумеваем выбор одной альтернативы на основе заданных критериев.
683
+
684
+ Решите сами, следует ли документировать архитектурное решение в этом центральном разделе, или лучше документировать это локально (например, в шаблоне белого ящика одного стандартного блока).
685
+
686
+ Избегайте избыточности.
687
+ Обратитесь к разделу 4, где вы уже зафиксировали наиболее важные решения вашей архитектуры.
688
+
689
+ .Мотивация
690
+ Заинтересованные лица вашей системы должны иметь возможность понять и проследить ваши решения.
691
+
692
+ .Форма
693
+ Различные варианты:
694
+
695
+ * ADR (https://cognitect.com/blog/2011/11/15/documenting-architecture-decisions[Документирование архитектурных решений]) для каждого важного решения
696
+ * Список или таблица, упорядоченные по важности и последствиям или:
697
+ * подробнее в виде отдельных разделов по решению
698
+
699
+ .Дальнейшая информация
700
+
701
+ Смотри https://docs.arc42.org/section-9/[Архитектурные решения] в документации arc42.
702
+ Там вы найдете ссылки и примеры по ADR.
703
+
704
+ ****
705
+ `;
706
+ }
707
+ function getQualityRequirementsTemplate() {
708
+ return `= 10. Требования к качеству
709
+
710
+
711
+ [role="arc42help"]
712
+ ****
713
+
714
+ .Содержание
715
+ Этот раздел содержит все требования к качеству в виде дерева качества со сценариями. Наиболее важные из них уже были описаны в разделе 1.2. (цели качества)
716
+
717
+ Здесь вы также можете зафиксировать требования к качеству с меньшим приоритетом,
718
+ не создающие высоких рисков будучи не полностью достигнутыми.
719
+
720
+ .Мотивация
721
+ Поскольку требования к качеству будут иметь большое влияние на архитектурные
722
+ решения, вы должны знать что действительно важно для каждой из заинтересованных сторон (конкретно и измеримо).
723
+
724
+ .Дальнейшая информация
725
+
726
+ Смотри https://docs.arc42.org/section-10/[Требования к качеству] в документации arc42.
727
+
728
+ ****
729
+
730
+ === Дерево качества
731
+
732
+ [role="arc42help"]
733
+ ****
734
+ .Содержание
735
+ Дерево качества (как определено в ATAM — Architecture Tradeoff Analysis Method) со сценариями качества/оценки в виде листьев.
736
+
737
+ .Мотивация
738
+ Древовидная структура с приоритетами обеспечивает обзор большого количества требований к качеству.
739
+
740
+ .Форма
741
+ Дерево качества представляет собой высокоуровневый обзор целей и требований в области качества:
742
+
743
+ * древовидное уточнение термина «качество». Используйте «качество» или «полезность» в качестве корня
744
+ * майндмпеп с категориями качества в качестве основных ветвей
745
+
746
+ В любом случае дерево должно включать ссылки на сценарии следующего раздела.
747
+
748
+ ****
749
+
750
+ === Сценарии качества
751
+
752
+ [role="arc42help"]
753
+ ****
754
+ .Содержание
755
+ Конкретизация (иногда расплывчатых или неявных) требований к качеству с использованием сценариев (качества).
756
+
757
+ Эти сценарии описывают, что должно произойти, когда в систему поступает стимул.
758
+
759
+ Для архитекторов важны два вида сценариев:
760
+
761
+ * Сценарии использования (также называемые сценариями приложений или сценариями вариантов использования) описывают реакцию системы во время выполнения на определенный стимул. Сюда также входят сценарии, описывающие эффективность или производительность системы. Пример: Система реагирует на запрос пользователя в течение одной секунды.
762
+ * Сценарии изменений описывают модификацию системы или ее ближайшего окружения. Пример: Реализована дополнительная функциональность или изменены требования к атрибуту качества.
763
+
764
+ .Мотивация
765
+ Сценарии конкретизируют требования к качеству и позволяют
766
+ легче измерить или решить, выполнены ли они.
767
+
768
+ Особенно, когда вы хотите оценить свою архитектуру, используя такие методы, как
769
+ ATAM вам необходимо описать ваши цели в области качества (из раздела 1.2)
770
+ точнее до уровня сценариев, которые можно обсуждать и оценивать.
771
+
772
+ .Форма
773
+ Табличный или произвольный текст.
774
+ ****
775
+ `;
776
+ }
777
+ function getTechnicalRisksTemplate() {
778
+ return `= 11. Риски и технический долг
779
+
780
+
781
+ [role="arc42help"]
782
+ ****
783
+ .Содержание
784
+ Список выявленных технических рисков или технических долгов, упорядоченный по приоритету
785
+
786
+ .Мотивация
787
+ «Управление рисками — это управление проектами для взрослых» (Тим Листер, Atlantic Systems Guild).
788
+
789
+ Это должно быть вашим девизом для систематического обнаружения и оценки рисков и технических задолженностей в архитектуре, которые потребуются управляющим заинтересованным сторонам (например, руководителям проектов, владельцам продуктов) в рамках общего анализа рисков и планирования измерений.
790
+
791
+ .Форма
792
+ Список рисков и/или технических долгов, возможно, включая предлагаемые меры по минимизации, смягчению или предотвращению рисков или сокращению технических долгов.
793
+
794
+
795
+ .Дальнейшая информация
796
+
797
+ Смотри https://docs.arc42.org/section-11/[Риски и технический долг] в документации arc42.
798
+
799
+ ****
800
+ `;
801
+ }
802
+ function getGlossaryTemplate() {
803
+ return `= 12. Глоссарий
804
+
805
+ [role="arc42help"]
806
+ ****
807
+ .Содержание
808
+ Наиболее важные доменные и технические термины, которые ваши заинтересованные стороны используют при обсуждении системы.
809
+
810
+ Вы также можете использовать глоссарий в качестве источника переводов, если вы работаете в многоязычной команде.
811
+
812
+ .Мотивация
813
+ Вы должны четко определить свои условия, чтобы все заинтересованные стороны
814
+
815
+ * имели одинаковое понимание этих терминов
816
+ * не использовали синонимы и омонимы
817
+
818
+ .Форма
819
+
820
+ Таблица со столбцами <Термин> и <Определение>.
821
+
822
+ Потенциально больше столбцов на случай, если вам понадобятся переводы.
823
+
824
+
825
+ .Дальнейшая информация
826
+
827
+ Смотри https://docs.arc42.org/section-12/[Глоссарий] в документации arc42.
828
+
829
+ ****
830
+
831
+ [cols="e,2e" options="header"]
832
+ |===
833
+ |Термин |Определение
834
+
835
+ |<Термин-1>
836
+ |<определение-1>
837
+
838
+ |<Термин-2>
839
+ |<определение-2>
840
+ |===
841
+ `;
842
+ }
843
+ /**
844
+ * Get the Russian workflow guide in AsciiDoc format
845
+ */
846
+ export function getWorkflowGuide() {
847
+ return `= Руководство по документированию архитектуры arc42
848
+
849
+ == Обзор
850
+
851
+ Это руководство поможет вам документировать архитектуру программного обеспечения с использованием шаблона arc42. Шаблон arc42 — это практичный, проверенный шаблон для документирования архитектуры программного обеспечения и систем.
852
+
853
+ == Доступные языки
854
+
855
+ Этот arc42 MCP Server поддерживает несколько языков для документации:
856
+
857
+ [options="header",cols="1,2,2"]
858
+ |===
859
+ |Код |Язык |Название на родном языке
860
+ |EN |Английский |English
861
+ |DE |Немецкий |Deutsch
862
+ |CZ |Чешский |Čeština
863
+ |ES |Испанский |Español
864
+ |FR |Французский |Français
865
+ |IT |Итальянский |Italiano
866
+ |NL |Нидерландский |Nederlands
867
+ |PT |Португальский |Português
868
+ |RU |Русский |Русский
869
+ |UKR |Украинский |Українська
870
+ |ZH |Китайский |中文
871
+ |===
872
+
873
+ == Начало работы
874
+
875
+ === Шаг 1: Инициализация рабочего пространства
876
+
877
+ Используйте инструмент \`arc42-init\` для создания рабочего пространства документации:
878
+
879
+ [source]
880
+ ----
881
+ arc42-init(projectName: "Мой проект", language: "RU")
882
+ ----
883
+
884
+ Вы можете указать другой язык, используя код ISO языка.
885
+
886
+ === Шаг 2: Проверка статуса
887
+
888
+ Используйте \`arc42-status\` для просмотра текущего состояния документации:
889
+
890
+ [source]
891
+ ----
892
+ arc42-status()
893
+ ----
894
+
895
+ === Шаг 3: Генерация шаблонов разделов
896
+
897
+ Используйте \`generate-template\` для получения подробных шаблонов для каждого раздела:
898
+
899
+ [source]
900
+ ----
901
+ generate-template(section: "01_introduction_and_goals", language: "RU")
902
+ ----
903
+
904
+ == 12 разделов arc42
905
+
906
+ . *Введение и цели* — Начните здесь! Определите, что вы создаете и зачем.
907
+ . *Архитектурные ограничения* — Что вам НЕ разрешено делать?
908
+ . *Контекст и рамки* — Что входит, а что нет?
909
+ . *Стратегия решения* — Высокоуровневый подход к решению задачи.
910
+ . *Представление строительных блоков* — Статическая структура системы.
911
+ . *Представление времени выполнения* — Динамическое поведение и сценарии.
912
+ . *Представление развертывания* — Как система развертывается и эксплуатируется?
913
+ . *Сквозные концепции* — Шаблоны, используемые во всей системе.
914
+ . *Архитектурные решения* — Важные решения и их обоснование.
915
+ . *Требования к качеству* — Конкретные сценарии качества.
916
+ . *Риски и технический долг* — Что может пойти не так?
917
+ . *Глоссарий* — Определите ваши термины.
918
+
919
+ == Лучшие практики
920
+
921
+ . *Начните с раздела 1* — Понимание целей является основополагающим
922
+ . *Будьте краткими* — arc42 прагматичен, а не бюрократичен
923
+ . *Используйте диаграммы* — Одна картинка стоит тысячи слов
924
+ . *Документируйте решения* — Будущий вы поблагодарит настоящего вас
925
+ . *Итерируйте* — Документация архитектуры никогда не бывает «завершенной»
926
+
927
+ == Доступные инструменты
928
+
929
+ * \`arc42-init\` — Инициализация рабочего пространства документации
930
+ * \`arc42-status\` — Проверка статуса документации
931
+ * \`generate-template\` — Генерация шаблонов разделов
932
+ * \`update-section\` — Обновление содержимого раздела
933
+ * \`get-section\` — Чтение содержимого раздела
934
+ * \`arc42-workflow-guide\` — Показать это руководство
935
+
936
+ == Ресурсы
937
+
938
+ * link:https://arc42.org/[Веб-сайт arc42]
939
+ * link:https://docs.arc42.org/[Документация arc42]
940
+ * link:https://arc42.org/examples[Примеры arc42]
941
+ `;
942
+ }
943
+ /**
944
+ * Get the Russian README content in AsciiDoc format
945
+ */
946
+ export function getReadmeContent(projectName) {
947
+ const name = projectName || 'Проект';
948
+ return `= ${name} — Документация архитектуры
949
+
950
+ Этот каталог содержит документацию архитектуры для ${name}, следующую шаблону arc42.
951
+
952
+ == Структура
953
+
954
+ * \`sections/\` — Отдельные файлы разделов AsciiDoc (12 разделов)
955
+ * \`images/\` — Диаграммы и изображения
956
+ * \`arc42-documentation.adoc\` — Основной объединенный документ
957
+ * \`config.yaml\` — Конфигурация
958
+
959
+ == 12 разделов arc42
960
+
961
+ . *Введение и цели* — Требования, цели качества, заинтересованные стороны
962
+ . *Архитектурные ограничения* — Технические и организационные ограничения
963
+ . *Контекст и рамки* — Бизнес и технический контекст
964
+ . *Стратегия решения* — Фундаментальные решения и стратегии
965
+ . *Представление строительных блоков* — Статическая декомпозиция
966
+ . *Представление времени выполнения* — Динамическое поведение
967
+ . *Представление развертывания* — Инфраструктура и развертывание
968
+ . *Сквозные концепции* — Общие правила и подходы
969
+ . *Архитектурные решения* — Важные решения (ADR)
970
+ . *Требования к качеству* — Дерево качества и сценарии
971
+ . *Риски и технический долг* — Известные проблемы и риски
972
+ . *Глоссарий* — Важные термины
973
+
974
+ == Начало работы
975
+
976
+ . Начните с раздела 1: Введение и цели
977
+ . Работайте над разделами итеративно
978
+ . Используйте диаграммы для иллюстрации концепций
979
+ . Сосредоточьтесь на решениях, а не на деталях реализации
980
+
981
+ == Генерация документации
982
+
983
+ Используйте инструменты MCP для:
984
+
985
+ * Проверки статуса: \`arc42-status\`
986
+ * Генерации шаблонов: \`generate-template\`
987
+ * Обновления разделов: \`update-section\`
988
+
989
+ == Ресурсы
990
+
991
+ * link:https://arc42.org/[Веб-сайт arc42]
992
+ * link:https://docs.arc42.org/[Документация arc42]
993
+ * link:https://arc42.org/examples[Примеры arc42]
994
+ `;
995
+ }
996
+ //# sourceMappingURL=templates-asciidoc.js.map