视图如何画出一张优秀的架构图?( 二 )
本文插图
- 开发视图
本文插图
以上 5 种架构视图从不同角度表示一个软件系统的不同特征 , 组合到一起作为架构蓝图描述系统架构 。
怎样的架构图是好的架构图
上面的分类是前人的经验总结 , 图也是从网上摘来的 , 那么这些图画的好不好呢?是不是我们要依葫芦画瓢去画这样一些图?
先不去管这些图好不好 , 我们通过对这些图的分类以及作用 , 思考了一下 , 总结下来 , 我们认为 , 在画出一个好的架构图之前 ,首先应该要明确其受众 , 再想清楚要给他们传递什么信息, 所以 , 不要为了画一个物理视图去画物理视图 , 为了画一个逻辑视图去画逻辑视图 , 而应该根据受众的不同 , 传递的信息的不同 , 用图准确地表达出来 , 最后的图可能就是在这样一些分类里 。 那么 , 画出的图好不好的一个直接标准就是:受众有没有准确接收到想传递的信息 。
明确这两点之后 , 从受众角度来说 , 一个好的架构图是不需要解释的 , 它应该是自描述的 , 并且要具备一致性和足够的准确性 , 能够与代码相呼应 。
画架构图遇到的常见问题
1. 方框代表什么?
本文插图
为什么适用方框而不是圆形 , 它有什么特殊的含义吗?随意使用方框或者其它形状可能会引起混淆 。
2. 虚线、实线什么意思?箭头什么意思?颜色什么意思?
本文插图
随意使用线条或者箭头可能会引起误会 。
3. 运行时与编译时冲突?层级冲突?
本文插图
架构是一项复杂的工作 , 只使用单个图表来表示架构很容易造成莫名其妙的语义混乱 。
本文推荐的画图方法
本文插图
C4 模型使用容器(应用程序、数据存储、微服务等)、组件和代码来描述一个软件系统的静态结构 。 这几种图比较容易画 , 也给出了画图要点 , 但最关键的是 , 我们认为 , 它明确指出了每种图可能的受众以及意义 。
下面的案例来自 C4 官网 , 然后加上了一些我们的理解 , 来看看如何更好的表达软件架构
1. 语境图 (System Context Diagram)
本文插图
这是一个想象的待建设的互联网银行系统 , 它使用外部的大型机银行系统存取客户账户、交易信息 , 通过外部电邮系统给客户发邮件 。 可以看到 , 非常简单、清晰 , 相信不需要解释 , 都看的明白 , 里面包含了需要建设的系统本身 , 系统的客户 , 和这个系统有交互的周边系统 。
用途
这样一个简单的图 , 可以告诉我们 , 要构建的系统是什么;它的用户是谁 , 谁会用它 , 它要如何融入已有的 IT 环境 。 这个图的受众可以是开发团队的内部人员、外部的技术或非技术人员 。 即:
- 构建的系统是什么
- 谁会用它
- 如何融入已有的 IT 环境
中间是自己的系统 , 周围是用户和其它与之相互作用的系统 。 这个图的关键就是梳理清楚待建设系统的用户和高层次的依赖 , 梳理清楚了画下来只需要几分钟时间 。
推荐阅读
- 传奇英雄▲荒野乱斗:最值得培养的传奇英雄,微氪玩家如何选择?
- 【】财鑫闻丨两市成交量连续2日破万亿,牛市真的来了?下一步如何擒“牛”?
- 精选泛科技|结果如何?,一加8续航遭质疑:上半年最全机型横评出炉
- 健康干货桶|重症肝病患者可否活动?如何掌握?
- 精选泛科技一加8续航遭质疑:上半年最全机型横评出炉,结果如何?
- 「孙权」孙策逝世后,弟弟孙权是如何对待20岁嫂子大桥的?说出来别不信
- 科学家■如果宇宙由奇点大爆炸而来,那么奇点又是如何来的?
- 娱娱乐道|厚嘴唇加大饼脸,网友:她是如何火的?,杨超越大量旧照曝光
- “健康北京”微信公众号|新型冠状病毒肺炎确诊病例如何分型?北京中医医院院长解答
- 央视网|上直播、转内销……外贸企业如何突围?
