一、引言
古人云 :一图胜千言,闲人说:无图无真相。
在日常的聊天工具当中,无论是使用微信,还是钉钉。使用图片或表情包的频次越来越高,那是为什么呢?其实在互联网没有那么发达的时候,我们都是通过电话或短信的方式来沟通交流,这种方式也是能够解决信息传达的问题,只是在情感表达或表情上无法充分展示当事人的情绪及感受。那么随着互联网的快速发展,目前流行的各种表情包,都被大众所乐捧、喜爱,这种方式可以让绝大多数的人理解事情的真相,了解当事人的情绪。
回到我们自己本身来说,不仅是开发人员需要掌握画图的技能,其实其他的人也都应该掌握该项技能。做图可以将零散的知识碎片结构化,通过图形来结构化我们的思维模式,这样的好处是可以清晰的认识到自身对事物的理解和掌控程度。
今天这次分享的主要目的,还是对我们的技术开发人员来说的,当然其他的人也同样受用。对于我们技术人员来说,从以下的几个方面来说明画图的好处。首先,在我们编码之前先做设计图,可以清楚的让自己认识到对业务需求的理解程度,避免自己一边写编码一边踩业务需求的坑。其次,可以减少人员之间的沟通理解成本,看图总比看代码更容易理解业务逻辑,也能够让不懂技术的人明白程序实现的真正逻辑。最后,程序的设计图,可以存档沉淀为公司宝贵的技术资源,优秀的设计图还可以共享给其他的人学习参考,实现真正的 "共同富裕"。(大家好,才是真的好)
那么,下面开始介绍几种,我们比较常用图形的作图方法。
注:如果其中讲的有不好的,或者有问题的,可以直接打断,进行提问。
二、思维导图
思维导图又称为脑图,使用一个关键词或者想法引出的一系列形象化、分类的想法,是一种结构化思维的树形发散图。一个事物有很多个维度,通过思维导图去合理细化每一个节点。
三、类图
类图常用于数据表的实体关系设计。实体之间一般有四种关联关系,从强到弱依次是:组合、聚合、依赖、关联。对于组合和聚合关系,在设计中可以用一个字段代替,例如:联系人信息,可以代替联系姓名、联系方式、联系地址等。对于依赖和关联,其实就是实体表结构的一种关系,例如:1对多,多对1,多对多。
四、时序图
时序图常用于分析复杂的业务流程,时序图不需要将所有的时序都细化,只需要聚集关注点,关系核心逻辑。
五、流程图
流程图可以通过纵向泳道和横向泳道来划分,纵向泳道表示阶段,横向泳道表示参与方。
六、架构图
架构图有很多种,常见的例如:系统架构图、网络架构图、业务架构图等。我们对不同的场景、对象,需要输出不一样的架构。架构图主要是为了抽象的描述整体与各个子系统、组件的关系及边界;描述软件系统的物理部署和软件系统的演进方向的整体视图。
七、总结
画图是理解业务逻辑思考锻炼的过程,是分析复杂业务逻辑的基本功力。有时我们面对一个业务,脑子里整理思路的时候,想的明明白白,但是一画图则原型毕露,暴露出很多没有考虑到的问题。因此在编码之前,画图是很有必要的,它可以理清逻辑,能提前发现逻辑错误并予以及时纠正。最后,画图也是需要我们掌握的必备技能之一,它可以适应各种行业、各种场景,不仅仅只是适合编码;希望这次的分享,可以让大家对画图这项技能有个基本的认识,能够意识到其重要性;当然这次的分享,也只是做到抛砖引玉的作用,还有很多涉及到画图的知识和技能,这里都没有展开详谈;画图就类似磨刀不误砍柴工,以后大家可以多去了解、尝试。