关于程序设计的思考
周日早晨陪2岁的孩子玩,他想画画,于是找了一本英语单词的书。书上面有很多插图,找了一个waiter的插图准备要画。看着这个图片还真有点无从下手,虽然也没学过画画,但是了解过程序设计,想着画图其实也是一种设计,于是把画画的过程类比到程序设计上。 画画流程对比程序设计流程 下面是我画画的流程: 我要画的对象是什么,仔细看看,能大致描述这个物体。这次就是一个托着托盘的服务员 对象能大致分解成几部分。头、躯干、下肢、一些装饰性物体。 图片上这几部分之间是直接连接上的还是有特殊物品来装饰。头和躯干之间由脖子连接,脖子上有一个蝴蝶结。 在图纸上勾勒出整体的轮廓,进而勾勒出每一部分的大致轮廓。 针对每一部分进行设计,再适当勾勒轮廓。例如头部上的发型、五官,此时还只是勾勒轮廓的过程,还没具体画。 整体的再过一遍,看看已经勾好的轮廓是否比例合适,针对性的修改一下。 开始画,把每个轮廓都画上内容。 整体再润色一下。 给孩子看看,好在孩子小,看似效果还可以。 针对他指的地方再看一下是不是可以再改改。 针对画画的步骤,我做软件开发的时候也有对应的步骤: what?了解清楚要开发的程序是用来做什么的,它大致是由什么样的人使用。 decomposition。在全面了解对象之后把系统进行细化,拆分。大系统拆成小系统,大模块拆成小模块,大class拆成子class组合的形式。然后用包图进行描述关系。