华人澳洲中文论坛

热图推荐

    干货:C4模型绘制软件架构图

    [复制链接]

    2022-10-16 18:06:21 17 0

    前言
    比来被安利了绘制软件架构图的C4模型,才发现以前只是根据本人的教训进行架构图设计,有些架构图也只是由凌乱的框和线组成罢了,并无成熟的办法做为指点。所以明天就跟大家一同学习下C4模型,如何指点咱们高效地进行软件架构图设计。


    甚么是C4模型
    C4模型是Simon Brown提出的一种软件架构的可视化模型,简略来讲,就是如何形容软件架构,如何画架构图,而不是如何设计软件架构。C4模型反应软件架构师和开发人员如何思考和构建软件的笼统,一种在不同笼统档次上交流软件架构的简略办法。C4模型把零碎分为四层,每层都代表着不同的视图架构,关注点也不同。


    C4模型
    上下文:System Context,零碎高档次的笼统,一个零碎可由多个容器组成。容器:Container,容器代表组件履行或驻留之处,它能够是web容器、运用办事器、客户端或数据库,例如Docker能够以为是这样的容器。组件:Component,一个组件能够以为是由一个或多个类代码组成的逻辑组。代码:Code,代码是软件零碎最小的构建模块。第①层:零碎上下文-System Context第①层是零碎上下文图,它显示了构建的全部软件零碎,以及零碎与用户及其余软件零碎之间的逻辑瓜葛,能够说是一个零碎的外观。如下图形容了一个虚拟的互联网银行零碎的零碎上下文:


    零碎上下文
    客户使用互联网银行零碎查看银行账户信息并进行领取。互联网银行零碎使用银行现有的大型计算机银行零碎来履行此操作,并使用银行的电子邮件零碎向客户发送电子邮件。图中灰色表现曾经存在的软件零碎,蓝色表现待建的零碎。
    第②层:容器-Container
    第②层是容器,缩小软件零碎,显示组成该软件零碎的容器(运用顺序、微办事、数据存储等),它是可独立部署/独立运转的单元。容器图显示了软件体系构造的高层构造以及如安在此间调配职责,它还显示了次要的技术选择以及容器之间的通讯形式,技术决策也是容器图的症结部份。
    例如,互联网银行零碎(虚线框)由五个容器组成:办事器端Web 运用顺序、客户端单页面运用顺序、挪动运用顺序、办事器端API 运用顺序和数据库。


    容器图
    第③层:组件-Component
    第③层是组件,行将单个容器缩小,就会显示其中的组件,每个组件是甚么,它们的职责以及技术/完成细节。上面是一个网上银行零碎的组件图示例,显示了API运用顺序中的一些组件。


    组件图
    第④层:代码-Code
    第④层是代码,假如缩小某个组件,就会显示组件是如何经过代码完成的。上面是网上银行零碎的UML类图,显示了组成 MainframeBankingSystemFacade 组件的代码元素(接口和类)。


    类图
    无关C4模型的更多信息,大家能够参阅 http://c4model.com/
    大家可能会问到,文章中的图都是用甚么工具画的呀,有无保举?固然,作者自己以前就专门写了篇文章给大家引见如何画图、用甚么工具,能够点击干货:顺序员必备画图技巧》。
    [比心]欢送关注,八零后顺序员不按期分享技术干货!

    发表回复

    您需要登录后才可以回帖 登录 | 立即注册

    返回列表 本版积分规则

    :
    中级会员
    :
    论坛短信
    :
    未填写
    :
    未填写
    :
    未填写

    主题40

    帖子46

    积分221

    图文推荐