视图如何画出一张优秀的架构图?( 三 )
2. 容器图 (Container Diagram)
容器图是把语境图里待建设的系统做了一个展开 。
本文插图
上图中 , 除了用户和外围系统 , 要建设的系统包括一个基于 javaspring mvc 的 web 应用提供系统的功能入口 , 基于 xamarin 架构的手机 app 提供手机端的功能入口 , 一个基于 java 的 api 应用提供服务 , 一个 mysql 数据库用于存储 , 各个应用之间的交互都在箭头线上写明了 。
看这张图的时候 , 不会去关注到图中是直角方框还是圆角方框 , 不会关注是实线箭头还是虚线箭头 , 甚至箭头的指向也没有引起太多注意 。
我们有许多的画图方式 , 都对框、线的含义做了定义 , 这就需要画图的人和看图的人都清晰的理解这些定义 , 才能读全图里的信息 , 而现实是 , 这往往是非常高的一个要求 , 所以 , 很多图只能看个大概的含义 。
用途
这个图的受众可以是团队内部或外部的开发人员 , 也可以是运维人员 。 用途可以罗列为:
- 展现了软件系统的整体形态
- 体现了高层次的技术决策
- 系统中的职责是如何分布的 , 容器间的是如何交互的
- 告诉开发者在哪里写代码
用一个框图来表示 , 内部可能包括名称、技术选择、职责 , 以及这些框图之间的交互 , 如果涉及外部系统 , 最好明确边界 。
3. 组件图 (Component Diagram)
本文插图
组件图是把某个容器进行展开 , 描述其内部的模块 。
用途
这个图主要是给内部开发人员看的 , 怎么去做代码的组织和构建 。 其用途有:
- 描述了系统由哪些组件 / 服务组成
- 厘清了组件之间的关系和依赖
- 为软件开发如何分解交付提供了框架
本文插图
这个图很显然是给技术人员看的 , 比较常见 , 就不详细介绍了 。
案例分享
下面是内部的一个实时数据工具的架构图 。 作为一个应该自描述的架构图 , 这里不多做解释了 。 如果有看不明白的 , 那肯定是还画的不够好 。
本文插图
画好架构图可能有许多方法论 , 本篇主要介绍了 C4 这种方法 , C4 的理论也是不断进化的 。 但不论是哪种画图方法论 , 我们回到画图初衷 , 更好的交流 , 我们在画的过程中不必被条条框框所限制 。 简而言之 , 画之前想好:画图给谁看 , 看什么 , 怎么样不解释就看懂 。
END
推荐阅读
- 传奇英雄▲荒野乱斗:最值得培养的传奇英雄,微氪玩家如何选择?
- 【】财鑫闻丨两市成交量连续2日破万亿,牛市真的来了?下一步如何擒“牛”?
- 精选泛科技|结果如何?,一加8续航遭质疑:上半年最全机型横评出炉
- 健康干货桶|重症肝病患者可否活动?如何掌握?
- 精选泛科技一加8续航遭质疑:上半年最全机型横评出炉,结果如何?
- 「孙权」孙策逝世后,弟弟孙权是如何对待20岁嫂子大桥的?说出来别不信
- 科学家■如果宇宙由奇点大爆炸而来,那么奇点又是如何来的?
- 娱娱乐道|厚嘴唇加大饼脸,网友:她是如何火的?,杨超越大量旧照曝光
- “健康北京”微信公众号|新型冠状病毒肺炎确诊病例如何分型?北京中医医院院长解答
- 央视网|上直播、转内销……外贸企业如何突围?
