笔记:The Art of Crafting Architectural Diagrams

简介:

讲如何画好架构图,写的不错,平时需要写方案、做架构的人正好可以借鉴一下。

Key Takeaways
Designing architectural diagrams might not be an easy task; it can be tricky or error prone, even for the simplest ones. Creating consistent and meaningful diagrams brings clarity and consensus across different stakeholders.
In most cases, the real issues are not strictly related to using a less efficient Architectural Description Language (e.g. UML), but the misunderstanding of diagrams importance, relying on improper or inconsistent guidelines or even the lack of architectural education.
In the process of creating diagrams, try to blend automatically generated with manually created ones in order to minimize the work, to illustrate different set of concerns and to cover multiple abstraction levels of the system.
As the system is evolving, maintaining diagrams up-to-date requires extra effort. We need to know how to efficiently proceed in such cases by still keeping consistency and robustness across architectural diagrams.
Modern architectures bring extra complexities which are reflected in the diagrams. Additional concerns might emerge and could easily

然后以下图为例,讲了不好的架构图的问题
screenshot

以下是以那张图为例说的架构图中常见的问题(说实话虽然我一开始看那张图也觉得有些问题,不过没有想到他能列这么多):
What does a box or shape denote?
What do different edges of a shape represent?
What does a line or an arrow denote?
What is the communication/association type indicated by a line or arrow?
What does that color mean?
Missing relationships between diagram elements or isolated entities
Misleading/undocumented acronyms or too vague/generic terms
Emphasize technologies, frameworks, programming or scripting languages, IDE or development methodology on diagrams
Mix runtime and static elements in the same diagram
Make assumptions like "I will verbally describe this", and "I will explain it later"
Conflicting levels of details or mixed abstractions
Cluttered or too vague diagrams trying to show too much or insufficient level of detail

然后是画架构图的建议:
Choose the optimal number of diagrams
Keep structural and semantical consistency across diagrams
Prevent diagrams fragmentation
Keep traceability across diagrams
Add legends next to architectural diagrams

然后是对一些问题的探讨:
1,Does the Architectural Description Language (e.g. UML, ArchiMate, etc.) make a difference?这部分感觉没有说什么太有用的。
2,How can diagrams be kept up-to-date as the system is developed, and changes to the architecture materialize。
这个他提了三条:
first option, and the easiest one, would be to automatically generate diagrams out of the source code, which is the ground truth.
The second approach would be to first design the diagrams using a dedicated tool which then generate the source code skeletons (e.g. components/packages with boundaries, APIs) used later on by developers to fill in the code.
The last case involves manually updating the diagrams every time a new feature - which has an impact on the architectural design - is implemented.
Taking into account existing tools, my recommendation is to have a mix; to blend automatically and manually create diagrams.
3,What complications (or simplifications) emerge for architectural diagrams when dealing with modern architectures (e.g. microservices)?
这个感觉也米有说太多有用的。

原文链接:https://www.infoq.com/articles/crafting-architectural-diagrams

相关文章
|
6月前
|
存储 测试技术 UED
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
Qt中实现界面回放的艺术:从理论到代码“ (“The Art of Implementing UI Playback in Qt: From Theory to Code
153 1
|
图形学 iOS开发
《View Programming Guide for iOS》阅读笔记
文档地址: 《View Programming Guide for iOS》 View and Window Architecture 视图绘制周期 UIView 类使用了请求式绘制模型来展示内容。
1122 0
|
XML JSON 数据格式
编码与模式------《Designing Data-Intensive Applications》读书笔记5
进入到第四章了,本篇主要聊的点是编码(也就是序列化)与代码升级的一些场景,来梳理存储之中涉及到的编解码的流程。目前主流的编解码便是来自Apache的Avro,来自Facebook的Thrift与Google的Protocolbuf,在本篇之中,我们也会一一梳理各种编码的优点与痛点。
1310 0
|
BI Windows 内存技术