架构图技巧 ########## 一. 为何 ======== * 画图:一图胜千言 .. figure:: https://img.zhaoweiguo.com/knowledge/images/jikes/jinjies/architect1.png 架构师能力模型图——from:《在首席架构师眼里,架构的本质是…》 .. note:: 用更系统化的视图去观察和思考,想必也会让你得到更成体系化的系统设计。 对于一个复杂的软件系统,需要不同抽象维度:系统的全貌、不同子系统间的关联和交互、子系统内部模块间的接口和调用、某个关键实现点的处理流程等。一个架构师应该可以在这些不同的抽象维度上把系统或系统的一部分清晰地描绘出来。 画图对于能力模型中的 “抽象思维” 就起到了一种锻炼,其作用就是帮助你在不同的层次上去思考系统设计,并具象化这个设计。既然具象化了设计,那么再基于此去沟通交流自是事半功倍。成为架构师之后,你自己明白还不是主要的,要让别人明白才更重要。 站在一个多层次、全方位的系统架构图面前,在不同抽象维度上描绘了系统的各个重要方面,想必更容易看到问题的本质,也能更好地发现和找到系统的症结。如果解决系统的问题就像走迷宫,那么你是直接钻进去反复尝试寻找出路,还是站在更高的维度去俯视迷宫然后再找最佳的问题解决路径呢? 在更宏观和全局的视野下,与系统所有相关人员进行清晰准确地交流,直击问题本质,那么再进行正确而适当的技术决策与平衡取舍就相对容易。 二. 如何 ======== 1. 图形:: 只会使用一些最基础的图形,比如:矩形、圆、三角、菱形、气泡、箭头 这些最基本的图形几乎所有的画图软件都会自带的,所以工具的依赖性很低, 但真正画时的操作效率却又很高。 一些著名外部系统可能都有各自知名的 Logo 图标 .. figure:: https://img.zhaoweiguo.com/knowledge/images/jikes/jinjies/graph1.png 一些常用画图元素 2. 颜色:: Designing with the Mind in Mind(《认知与设计》)提出的色彩使用准则: 1. 使用饱和度、亮度以及色相区分颜色,确保颜色的高反差 因为人的视觉是为边缘反差而优化的。 2. 使用独特的颜色,因为人最容易区分的颜色包括:红、绿、黄、蓝、白和黑 3. 避免使用色盲无法区分的颜色对 比如:深红-黑,深红-深绿,蓝色-紫色,浅绿-白色。 4. 使用颜色之外的其他提示 对有颜色视觉障碍的人友好,而且也增强了可理解性 5. 避免强烈的对抗色 比如:红黑,黄黑 .. figure:: https://img.zhaoweiguo.com/knowledge/images/jikes/jinjies/graph2.png 颜色配色参数