笔记: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

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

以下是以那张图为例说的架构图中常见的问题(说实话虽然我一开始看那张图也觉得有些问题,不过没有想到他能列这么多):
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

时间: 2024-09-30 16:44:43

笔记:The Art of Crafting Architectural Diagrams的相关文章

读书笔记:关于适当的微服务架构的看法(Perspective on Architectural Fitness of Microservices)

微服务现在很火,但是怎样才能建设合适自己的微服务架构呢,这篇文章进行了很好的实践也给了实用的建议. Key Takeaways Microservices are not a panacea; they have their place in modern architecture, but just not any place. Understanding the business domain is vital for assessing whether a microservices-ba

笔记:Driving Architectural Simplicity - The Value, Challenge, and Practice of Simple Solutions

感觉这篇文章对于为什么,以及如何简化架构说的很透.开篇:Key TakeawaysSimple architectures are easier to communicate, build, deploy, operate, and evolve. Architectural simplicity is not easily encapsulated by one type of model or practice. Several practices can be applied in com

kvm虚拟化学习笔记(二十一)之KVM性能优化学习笔记

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1606422 本学习笔记系列都是采用CentOS6.x操作系统,KVM虚拟机的管理也是采用virsh方式,网上的很多的文章都基于ubuntu高版本内核下,KVM的一些新的特性支持更好,本文只是记录了CentOS6.x系列操作系统下KVM优化的点,有很多都是默认支持开启了的,除了采用virtio方式的磁盘IO,与网络IO接口

Android群英传笔记——第一章:Android体系与系统架构

Android群英传笔记--第一章:Android体系与系统架构 图片都是摘抄自网络 今天确实挺忙的,不过把第一章的笔记做一下还是可以的,嘿嘿 1.1 Google的生态圈 还是得从Android的起源说起,Android是一个以Linux为基础的开源移动设备操作系统,主要用于智能手机和平板电脑,由Google成立的Open Handset Alliance(OHA,开放手持设备联盟)持续领导与开发中.Android已发布的最新版本为Android 6.0.1(M). Android系统最初由安

《多核编程的艺术》读书笔记

感谢网友 郑思遥 投递本稿. 这份笔记是我2013年下半年以来读"The Art of Multiprocessor Programming"这本书的读书笔记.目前有关共享内存并发同步相关的书籍并不多,但是学术文献却不少,跨越的时间范围也非常长,说明人们一直在做出努力. 这本书是这个领域的好书,作为一本好书,它总结了这个领域自发展以来的大量重要成果,介绍了共享内存同步的基本理论,并介绍了大量并发算法和数据结构(主要是无锁算法),包括并发队列.栈.链表.计数器.排序网络.散列.跳表.优先

Android群英传笔记——摘要,概述,新的出发点,温故而知新,可以为师矣!

Android群英传笔记--摘要,概述,新的出发点,温故而知新,可以为师矣! 当工作的越久,就越感到力不从心了,基础和理解才是最重要的,所以买了两本书,医生的<Android群英传>和主席的<Android开发艺术探索>,主要是再全面点的把自己所学的知识消化,这样也就不枉自己天天熬夜学习了,现在群英传快看完了,准备重新再看一遍,同时把笔记以博客的形式记录下来,这样也许更加的深刻,然后再消磨一下主席的那本书,这本书有视频讲解,更加好,所以预计以后应该很少再写其他的博客,不过工作中碰到

WWDC 2013 Session笔记 - SpriteKit快速入门和新时代iOS游戏开发指南

这是我的WWDC2013系列笔记中的一篇,完整的笔记列表请参看这篇总览.本文仅作为个人记录使用,也欢迎在许可协议范围内转载或使用,但是还烦请保留原文链接,谢谢您的理解合作.如果您觉得本站对您能有帮助,您可以使用RSS或邮件方式订阅本站,这样您将能在第一时间获取本站信息. 本文涉及到的WWDC2013 Session有 Session 502 Introduction to Sprite Kit Session 503 Designing Games with Sprite Kit SpriteK

Bootstrap教程JS插件滚动监听学习笔记分享_javascript技巧

本文主要来学习一下JavaScript插件--滚动监听. 1.案例 滚动监听插件可以根据滚动条的位置自动更新所对应的导航标记.你可以试试滚动这个页面,看看左侧导航的变化. 先把实现的代码上了,你可以通过测试代码先来看看效果. <!DOCTYPE html> <html> <head> <title>Bootstrap</title> <meta name="viewport" content="width=de

Bootstrap Metronic完全响应式管理模板之菜单栏学习笔记_javascript技巧

继续上一篇,针对Bootstrap Metronic菜单栏整理的笔记分享给大家,供大家参考,具体内容如下 1.简介1)  .环境配置 2)  .提取页面 3).动态生成菜单(无限级别树)  2.系统环境配置 项目需要程序数据支撑,这里选择MVC5.0+EF6.0[SQLSERVER](不对MVC架构和SQLServer做出解读)  运行环境:VS2013+MVC5.0+EF6.1+SQLServer2012  解决方案名称:AppSolution 项目名称:App.Web(UI层)与App.Mo