像绘画那样写代码

很久不写代码,发现写代码的习惯有点变化了。以前基本都是把一个类(或者功能)写好了,并测试通过了,再去写另一个类。至于两者如何交互的,事先要考虑清楚,也就是要做设计,画UML图等。至少是先写的功能,要充分考虑未来调用者的各种使用场景。就像在一张白纸上作画,第一笔总是很难的,所以往往也是最苦闷的时候,写代码的进度也很慢。现在不一样了,根本不等把细节考虑,就开始写代码。先是大概把代码框架写了,想到什么就先写下什么,还没有确定的细节,就用伪代码,文字说明或者不完整的代码来大意示意一下。就这样,东一下子西一下的就把几个相关的类(功能)的框架给勾勒出来。虽然还无法编译通过,但是却让我对整个结构有了更多的认识,细节不断变得清晰,然后不断填充。这边的细节确定了,那边也就确定了,就这样来来回回的填充,很快所有的伪代码或者不完整代码就都变成了真正的代码。等到所有空白都填上了,就可以F5编译了。这时候,编译器还会发现一些错误,继续修补直至编译通过。最后是运行调试,直至得到预期结果。

 

于是就想到,绘画的时候,我们会首先用简单的几笔勾勒出大致的轮廓,然后不断的补充细节。刚开始的时候,看不出是什么东西,但随着细节的不断加入,就越来越生动了。你不可能说画一个人的肖像的时候,先把每一根头发都描绘出来,然后才是画眼睛,画鼻子......你当然会先勾勒出发型,眼睛和鼻子的位置,然后再来回细描,每一次都会力图保证所有的部位在细节的细密程度是一致的,而不能说头发很细致而眼睛很粗陋。我不懂绘画,但我觉得这是要力图保证协调,保证全局观。看电影里的大师作画,开场总是随便在纸上随便点上几笔,甚至是随意的泼墨,然后就着这些墨迹,这里加一笔,那里加一笔,一幅栩栩如生的画就诞生了,让人叹为观止。还有另一种绘画方式,就是打印。纸从一头进入,从另一头出来,画面是一行行的绘制出来的,细节也是一次性完成的,并不是来回补充上去的。

 

手绘和打印的区别就是,手绘前不需要考虑细节,只要胸中有一个大概的轮廓和思路即可,细节可以在绘画过程中不断补充。而打印,需要在一开始就把所有细节都考虑清楚,并在一开始就把细节做好。如果开始时没有把细节考虑清楚,那么打印结果是无法挽回的。手绘则可以通过再加入更多的细节来平衡以达到修补的目的,因为关注的是整体,而不是某一个局部。而且因为细节是不断加入的,所以发现错误的时候还有时间补救。不过,如果设计图(即底稿)很好的话,打印则可以得到更好的效果。所以,手绘具有灵活的特点。而打印则可以保证质量。

 

想想看,敏捷开发方式和瀑布型开发方式,不正好是跟手绘和打印类似?

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值