架构制图:工具与方法论(11)
本文插图
架构制图的第三要点 , 是合理运用层次化(hierarchical)的套路 , 自顶向下逐层描述 。 无论是 C4 模型还是 arc42 模板 , 背后都深刻运用并显著强调了这一点 。 为什么一定要这么做?其中蕴含了两个普适的原理:
- 分而治之:软件领域中 , 分而治之是控制和应对复杂系统的最有效方法 。 而层次化拆分 , 本质上就是一种分而治之手段:将系统按照从粗到细的粒度 , 一级一级地拆分成多个相对独立和低耦合的元素(子系统、应用、组件等);
- 金字塔原理:这本书的核心观点就是 , 按照自顶向下的方式 , 先抛出主观点再依次用各个子观点去论证 。 这样的沟通方式更符合人类的思维逻辑 , 也更容易让读者接受 。 简单来说 , 就是要“先说重点” , 帮助读者做归纳总结和划重点 , 而不是先抛出一大堆细枝末节的零散东西让读者自己去消化和推演 。
本文插图
架构制图的第四要点 , 是在向传统的工程制图方法论致敬:使用多种架构视图来描述你的架构 。 在工程制图的世界里 , 任何立体的制品 , 大到机床小到零件 , 都至少需要通过三种视图(主视图、俯视图、左视图)来描述 。 作为现实世界的映射 , 软件系统也是多维和立体的 , 只用单一视图不可能覆盖所有关键的架构信息;即使强行把这些信息都塞在一张图里 , 那也一定会复杂到让人无法理解 。
在架构设计领域 , 架构视图(architectural view)有专门的定义:针对系统架构某一个方面(aspect)的一种描述;每个视图都会覆盖项目干系人的一种或多种关注点 。 从上述定义可以看出来 , 不同的架构视图会有不同的侧重点 , 同时在描述自己所专注的方面时也会略去与当前视图无关的其他细节 —— 这其实也是一种与层次化拆分类似的分而治之思想 , 只不过这里是针对完整系统的维度分解 , 而层次化则是针对某一具体视图再做自顶向下的垂直下钻(drill-down);两者是正交且可以相互配合的 , 例如前面说到的结构视图、部署视图甚至动态视图 , 都可以分别再进行层次化拆分 。
5. 遵循规范和最佳实践
本文插图
架构制图的第五要点 , 其实只是一句正确的废话:遵循规范和最佳实践 。 这一点已经不限于架构制图 , 而是上升到了工程实践领域的通用方法论层面 。 正如前面章节所说 , “学习架构制图的目标 , 就是要把它从一门手艺变成一项工程” , 因此架构制图的“施工”过程也理所应当符合工程化思维:
- 一方面 , 制图需要遵循明确的规范 , 在理论层面进行约束和指引 , 确保过程和产物的高质量与标准化;
- 另一方面 , 制图还需要遵循业界最佳实践 , 在实践层面持续吸取优秀经验 , 不断精进自己和团队的制图技能 。
国际上对架构描述其实建立了专门的标准(ISO / IEC / IEEE 42010:2011) , 其中的很多概念词汇在本文中都有提到(e.g. Stakeholder、Concern、View、Viewpoint) , 有兴趣的同学可以进一步研究下 。
推荐阅读
- 上游新闻|?你确定?,扫个厕所要18道工序、46种工具
- Win10又绕过用户强制重启 只为安装Office网页版工具
- 公司|华锐工具:今年科创板过会第145家 招商证券过5单
- ITheat热点科技|锐龙 5000 移动低压处理器曝光:Zen 3 架构,AMD
- |航母时速大约是30节,如果将其换算为地面交通工具,到底有多快?
- 假如我能勇敢点|独立站及外贸免费工具,溪致科技推荐8个亚马逊
- 趣头条|有了简易洗车工具套装,又可以省一大笔开销!
- 兔玩电竞|剑姬凯隐成版本答案吸血流剑姬统治上路凯隐晋升打野一哥阿狸转型工具人中单魔切女枪崛起总结,10.21强势套路推荐
- 趣头条途观搭载随车小型工具箱,小问题自己修省钱更方便!
- 兔玩电竞|10.21强势套路推荐 剑姬凯隐成版本答案吸血流剑姬统治上路凯隐晋升打野一哥阿狸转型工具人中单魔切女枪崛起总结
