背景
-
从客观上来看,程序员经常会碰到这样的情况:很简单的一个需求用文字罗列了很大篇幅,词不达意,讲不到重点,且逻辑混乱。
-
从主观上来讲:程序员是一项需要终身学习的职业:包括学习各种技能、工具、训练自身思维、提升创造能力等,在学习过程中各种各样的知识需要厘清脉络。
图解思考
图解思考已经成为了技术人员的一项基础技能。何谓图解思考:就是用画图的方式来直观表示出我们思考的内容,这有利于我们对所思考问题的解答。
常言道,一图胜千言,在表达技术逻辑上,我们必须要掌握以下两种图形:流程图与结构图。
流程图
流程图是一个动态关系,描述的是固有规律的活动个体,通过一系列特定逻辑的设定,完整体现价值的过程。
基本流程图
“流程”+“图”,能够让我们直观上看到重点信息及其中的逻辑关系:
比如在理清敏捷开发的脉络这篇文章中,通过流程图可以清晰地将多个个体的活动与前后逻辑关系表达清楚。
程序时序图
再比如:SpringBoot实现微信小程序登录这篇文章中引用到了微信小程序官方的登录交互流程图,通过该图,开发者可以根据图中的时序及逻辑关系,顺利地完成架构设计与程序开发。
流程图工具
除了我们经常用的mircosoft office visio客户端工具外,再介绍一个网站:processOn,利用该网站无需担心下载和更新的问题,不管Mac还是Windows,一个浏览器就可以随时随地的作图。
结构图
流程图帮我们理清了价值流,程序时序、数据流等动态关系。那结构图就是让程序员进行头脑风暴,把某项事物进行分层分解,形成结构化思维。
比如在Java集合架构常用类与Iterator迭代器文章中,通过结构图可以清晰表达了架构的层次关系及常用类型,这里的图形表示比文字描述更能达意。
层次结构图
思维导图
结构图的作用不止如此,比如我们一直用到的思维导图:思维导图,不止是一个整理和记忆工具,而是思考工具。
比如java程序员经常整理地技术栈的思维导图, 通过思维导图的推导,可以扩展出了更大的空间。
##### 生活中的应用
不光是在工作中,在生活中我们也可以运用结构化思维进行思考:
结语
思考问题的时候,如果只是在脑子里面想,那么只是反反复复围绕少数几个概念或者想法绕来绕去;如果这时你把想法随手画下来,边画边想的过程中可能会出人意料地诞生出许多新的思路。
绘制草图是建筑设计师、工业设计师的一项必备技能,设计师不仅用草图表现自己的思考,更用草图推进自己的思考。同理绘制流程图与结构图,也是程序员必备的一项技能,流程图与结构图的运用,能对思维进行特殊训练,对逻辑进行清晰表达。将思维转化为图像,让思考形成自己的形状是程序员这生必须掌握的技能。