经历了几周的开发,我们小组的爬虫第一版终于也快诞生了。经历了个人编程,结对编程,团队编程,本来就有不少体会,再加上看完这篇叫做《有人负责,才有质量:写给在集市中迷失的一代》的文章,真是感触颇深。
在这个年代才开始学习编程的我们,基本就算是最年轻的一代coder了吧。我想每一个我们这样的coder,在第一次编写一些稍具规模的小程序时,都是去搜过相关的开源源码的甚至于把人家的代码改了改了就当成了自己的。就像作者说的,这是一个开源运动如火如荼的时代,是一个让coder们容易迷失在这个充满源码的大集市的时代。代码重用,是每一天都在不断重复发生的事情。我们总是认为代码重用没什么不好,既然已经存在的可以利用的模块,为什么不去直接使用呢?然后,事实上,不同来源的重用的代码,凑到一起,往往把整个项目搞的一团糟。其实,我以为,当你需要做一个什么项目的时候,自己重新计划好每一个模块然后亲手写一个也许是最好的,这样的代码条理清晰,其中的依赖关系完全不像前面所说的那么混乱。这次的团队项目--爬虫,就让我在这方面深有体会。最开始,我们也是想当然的希望在网上找到爬虫的各部分现成的代码,然后拼凑到一块改一改就可以了。可是却发现这样一来进度越来越缓慢,整个代码越来越混乱,到最后根本无法debug出来,只好推翻了干脆重新写。结果重新一写,就发现这东西并不是那么复杂,一点一点的小爬虫也就诞生了。
作者说,学会计算机编程很容易,就像学会用钉子把两块木板钉在一起一样容易。可以说,这两年多来,我们花在编程上的时间真的很少,特别是相对于很多所谓的基础课来说。犹记得那些为数学分析、电路分析等“基础课”花掉大把大把时间的日子,我们当时简直不理解为什么不让我们花更多时间在代码上。可是,随着慢慢的看一些书,做一些小的项目,感觉编程真的不是太难的事。然而,这种所谓的会编程也就只是会把两块木板钉在一起,有什么意义呢,市场对这种产品有需求吗?若没有进一步的精致加工,我们和我们的代码也就只能慢慢在集市里迷失。就想我们最开始拼凑出来的爬虫,最终指定也只能毫无存在感的消失于集市中。
作者用沉睡在集市中的美轮美奂的unix大教堂做了个例子,来说明了一个现实:一坨脓包似的权宜代码,被一群盲目的根本不知IT架构为何物的所谓IT“专业人士”永无休止地复制着,粘贴着。我以为,集市,就是整个开源软件的世界,而大教堂,就是通过严谨的也呆板的整个软件构建过程写出来的伟大而漂亮的项目。作者说,这一代的coder早已迷失在集市中,他们没有见过大教堂,不懂为什么需要大教堂,更不用说去想象大教堂的样子。
其实吧,我也有一点与作者不完全相同的看法。集市中的东西虽然大部分略显粗糙,但是总会有那么一两个东西有成为大教堂的潜质。开源这种事情,其实也是群体智慧的最大化。前两天看见一篇关于“群体软件工程”的演讲,没怎么看懂,好像跟这个问题不是太一致,但是也谈到有类似的观点。既然已经存在集市这个现实了,好像也不可能完全推翻它了。怎么在集市与大教堂中间寻找一个平衡点或许是最需要解决的事情。有人负责,就会有质量。