干货:程序员必备画图技能

前言程序员不是专门写代码的吗,只要把代码写得足够优雅就行了呀,为什么还要画图?画好图呢?

干货:程序员必备画图技能

文章插图
 
没错!一图胜千言,对复杂问题进行分析分解,再通过图形化的表达方式,来描述业务或者技术上的逻辑,可以说事半功倍!今天作者就带大家认识一些常见的图、图的画法以及常用的画图工具 。
思维导图
干货:程序员必备画图技能

文章插图
 
英文名称是The Mind Map,也叫做心智导图,脑图,心智地图,脑力激荡图,灵感触发图,概念地图,树状图,树枝图或思维地图 。它是表达发散性思维的有效图形思维工具,它简单却又很有效,是一种实用性的思维工具 。可用于会议记录、思路整理、测试用例、商业计划等 。
流程图
干货:程序员必备画图技能

文章插图
 
以特定的图形符号加上说明,表示算法的图,称为流程图或框图 。流程图是一个系统的信息流、观点流或部件流的图形代表,也是软件设计开发过程中比较常用的图形 。流程图的图形符号如下图所示:
干货:程序员必备画图技能

文章插图
 
时序图
干货:程序员必备画图技能

文章插图
 
时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图 。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作,也是软件设计开发过程中比较常用的图形 。时序图中包括的建模元素主要有:角色、对象、生命线、控制焦点、消息等等 。
干货:程序员必备画图技能

文章插图
 
数据库ER图
干货:程序员必备画图技能

文章插图
 
E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型,它是描述现实世界关系概念模型的有效方法 。
干货:程序员必备画图技能

文章插图
 
数据库模型
  1. 概念模型:找到你开发设计的系统,业务层面核心的实体和关系,如上述E-R图 。
  2. 逻辑模型:整理完善系统所有实体、实体间的关系,给实体添加字段属性 。
  3. 物理模型:通过case工具(例如:powerdesigner)由逻辑模型自动生成物理模型(可生成不同数据库类型的DDL语句、数据字典) 。

干货:程序员必备画图技能

文章插图
参考文档 https://blog.51cto.com/u_15067238/2573674
架构图①业务架构:使用一套方法论/逻辑对产品(项目)所涉及到的业务进行边界划分,所以熟悉业务是关键,如下图所示某业务中台架构图:
干货:程序员必备画图技能

文章插图
 
②应用架构:它是对整个系统实现的总体上的架构,需要指出系统的层次、系统开发的原则、系统各个层次的应用服务 。如下图所示,就将系统分为数据层、服务层、通讯层、展现层,并细分写明每个层次的应用服务 。
干货:程序员必备画图技能

文章插图
 
③技术架构:技术架构是应接应用架构的技术需求,并根据识别的技术需求,进行技术选型,把各个关键技术和技术之间的关系描述清楚 。技术架构解决的问题包括:纯技术层面的分层、开发框架的选择、开发语言的选择、涉及非功能性需求的技术选择等 。
干货:程序员必备画图技能

文章插图
 
④部署图(deployment diagram,配置图)是用来显示系统中软件和硬件的物理架构 。部署图中可以了解到软件和硬件之间的物理关系以及处理节点的组件分布情况 。使用部署图可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件元素的配置和部署方式 。
干货:程序员必备画图技能

文章插图
 
⑤网络拓扑图:是指用传输媒体互连各种设备的物理布局,就是用什么方式把网络中的计算机等设备连接起来 。拓扑图给出网络服务器、工作站的网络配置和相互间的连接,它的结构主要有星型结构、环型结构、总线结构、分布式结构、树型结构、网状结构、蜂窝状结构等 。


推荐阅读