返回介绍

第 44 章 C4 的常见问题

发布于 2024-08-18 00:06:35 字数 1373 浏览 0 评论 0 收藏 0

当人们基于我的C4方法画架构图时,经常会问我下面这些问题。

语境图上的系统名称

问题:你说语境图应该包括一些必要的技术细节。那系统名称应该被包括在内吗?

回答:如果你需要包括一个众所周知的软件系统,那么我会将它的名称包括在图中。我可能还会只是为了避免任何混淆而加上一个简短的职责声明来明确那个系统是做什么的。

混合的抽象层次

问题:既然我的系统容器图看起来很简单,你会建议把容器图和组件图合到一起吗?换句话说,我能够在一张图上展所有容器中的全部组件吗?

回答:对于简单的系统,这是一个你可以尝试的选择。我发现,即使是微型系统,一张图展示容器及其组件往往也太乱了。我个人的偏好是保持容器图尽可能简单,为图中每一个容器标注一个简短的职责清单,而不是展示全部组件。这不仅会得到一张简洁的图,还能提供可以展示给运营和支持人员的很好的高层次技术图。

共享组件

问题:我的系统由一个Web服务器和一个独立应用程序组成,它们都使用一个共享的数据访问层。我应该怎么在图上展示这一点?

回答:我会把共享的数据库访问组件画在每个适当的组件图上,并用类似“这是共享组件”的注解来简单地注释。如果有疑问,问问自己将如何实际编码和部署系统。如果你的共享组件将和其他所有组件一起被部署在一个容器内,那就把它画在图上反映出来。

工具组件

问题:如果我有像日志组件这样被所有其他组件使用的东西,应该怎么在图上展示这一点?

回答:你有两个选择,然而只有一个倾向于得到更简洁的图。选项1是把日志组件画在图的中间某个位置,并与其他组件连接起来。尽管这是准确的,你的图却会很快变得混乱。选项2是把日志组件画在较偏的某个地方,简单标上“这是一个所有组件都在使用的工具组件”之类的注解。

从IT的角度勾画企业语境

问题:我喜欢C4方法,但它每次只关注一个软件系统。我们如何能够展示更多的软件系统?

回答:在现实世界中,软件系统从不孤立地存在,了解各种软件系统如何在企业的界限内结合在一起往往是很有用的。要做到这一点,我会简单地在C4图上面添加一个图,从IT的角度展示企业语境。因此C4变成了C5,额外的这张图会展示:

组织边界;

内部和外部用户;

内部和外部系统(包括一个对它们的职责和拥有数据的高层次总结)。

本质上这变成了企业级软件系统的高层次地图,每个软件系统都对应了相关的C4层级。需要说明一点,以我的经验,我领会到企业架构并不只是关于技术的,但是很多组织并没有从企业架构的观点来看它们的IT环境。事实上,缺乏整体认识的各种规模的组织之多令我震惊,特别是考虑到IT通常是它们实现业务流程和服务客户的一个关键部分。从技术的角度勾画企业语境,至少提供了一种跳出围绕IT系统形成的典型筒仓来进行思考的方法。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文