原文地址: https://MP.weixin.QQ.com/s/v7y 6zw 8j JZ-r 4c 7e6tdh QA
1模式映射是系统中不同元素之间关系的图形表示。
元素可以有多种粒度,包括系统级、组件级和类级。
2结束时,他说:“不是为了描绘物理视图而描绘物理视图,而是为了描绘逻辑视图而描绘逻辑视图。”
这让我切实感受到,在实际工作中,有技术方案的模板,很多人不考虑项目规模就制定技术方案。
有些项目不需要画所有的图,也不需要画得很复杂。有些人只是按照模板画画,不知道为什么要画这些图。
所以我们在画画之前,最终的目的是弄清楚为什么要画这些图,其实是如何很好地表达自己的意思。
3 C4软件体系结构可视化模型的逻辑
C4软件体系结构可视化模型的主要逻辑:
(1)从整体到局部,从宏观到具体(遵循人类认知规律) ) ) ) ) )。
)每张图都有特定参与者,针对特定层次的观点) )具体文章已经出现) )。
考虑4.1为什么不是C3或C5。 突然在面试中问道:“为什么HTTP的3次握手不是2次而是3次? 你是不是觉得”? 这样吗?
我认为,其最主要的原因是作者在考虑到能在多少层清楚地表现框架后进行了取舍选择。
C4体系结构模型从宏观到微观,从抽象到具体,可以从四个层次充分表达体系结构的思想。
三楼的表现不够好,五楼太复杂,四楼正好。
4.2 C4模型制图的痛点是什么? C4软件体系结构的可视化模型比传统的UML更简洁,有自己成熟的逻辑。
我前几天也见过,也试着画过。 绘制“组件”视图时,如果组件太多,放置组件框会很花时间。
自己的思考
)1)能否参考PlantUML等[代码式作图]进行作图,提高作图效率
)2)或者是否支持neo4j控制台等图形显示工具,进行更动态伸缩的图形显示,展示效果会更好。 例如,sqdxtg中只有一个与控制器相关的组件,可以隐藏其他组件,也可以仅高亮显示与当前组件相关的其他组件。
意外收获
写文章浏览官网,竟然发现了支持C4模式的plantuml扩展
3359 github.com/plant UML-stdlib/C4-plant UML
我还推荐了其他工具
https://c4model.com/#Tooling
我想在这里突然提到【先预想后验证】的思想,在我们学习某项技术之前,可能会先预想它是如何制作的,核心逻辑应该是什么,然后再验证是否是这样。
有相似之处,自己也能高兴一点,增加学习技术的乐趣; 如果完全不同,可以比较优劣,给人留下更深的印象。
5熟练在充分理解C4模型的核心思想后,多练习,熟练程度会更好。
6举一反三(1)的例子,我们不是也可以从C 4的不同层次之间抽象出层次,形成自己的C5 C6体系结构模型吗? (纯粹是胡说八道) ) ) )。
)2)在其他场合,借鉴C4模型的思想,不是可以简化几个步骤吗?
)3)本文提到了绘制体系结构图的常见误区,包括为什么要使用方框、实现和虚线和颜色的含义是什么、单个图形的局限性等,并给出了C4软件体系结构可视化模型的方案。
文章最后说:“画画前请考虑一下。 把画给谁看,看什么,怎么不解释就理解。”
同样,网上有很多DDD图形也有一些问题。
由于DDD有很多概念,所以简单地用图形和颜色来区分,特别是图形大的时候容易混淆。
像《DDD 的最短学习路径》千兆的配图一样
好棒啊。
因为对作者来说画了很多次,所以也许可以自己迅速分辨颜色的意思。
为了能理解各种颜色的含义,“亲切”地在顶部提供了图例。
但对于读者来说,依然需要反复核对图例来区分不同颜色的含义。
那么,为什么不能像图中红色部分的“实体”那样直接在框中标记域服务、域能力和值对象呢?
可能有人会说,写起来很麻烦啊。
但是制图的目的不是为了让读者更快更准确地理解你要表达的意思吗?
另外,在绘图工具中,同一类型的元素是复制&; 可以用胶水完全贴上。 并不是针对每个相同的要素反复敲击title。