组件化思考

今天翻看OpenNETCFBlogOpenNETCF年末总会评选出一年中最好的文章,尽管“The Best of 2005”有所减少。但是OpenNETCF.Rss占据了很重要的位置,谁叫Blog今年这么火呢。

因为这两天也在琢磨着类似的题目,所以留心看了看,看完OpenNETCF.RSS的类图还是吃了一惊,从异步到同步,不同网络协议的支持,不同RSS协议都得到很好的支持。尽管作者参考了其他人的设计,但是如此考虑完善的类库,让我觉得“人比人也得扔”。

紧接着,看同一位作者(Alex Yakhnin)写的RSS阅读器,一句话让我很有感触:“The best way to test functionality and usability of a library is to use it for development for some real project.

于是,我一下子明白了大家的差距为什么这么大。写软件如同盖房子,这是个不新鲜的比喻了。除了设计图纸、土木工作外,建材也很重要。中国农民盖房子,会买砖、瓦、木头,这些基本的材料,然后木工、瓦工一起上,把木头变成门窗、房梁,再用砖瓦盖起房子来。祖祖辈辈都是这么过的。可是我们盖不出世贸中心来(当然也引不来拉登……),美国在上世纪大批量建筑那些摩天大楼时,用的都是钢结构,所有的结构都是按标准生产的,施工的工程其实就是组装。

套用到软件工程上来,中国的程序员大部分还着眼于可以交付给客户的软件,这个软件中体现更多的是用户的思想以及他们的行业特点,而程序员的工作大部分还集中在把数据库的信息显示到客户可以看懂的界面上。简单,直接,如同黄土地上三间亮堂堂的大瓦房。

当然,在这些木匠瓦匠中,也有不安分的人,总是想着能够更省力。所以他们也创造了一些标准,一些可以直接拿来用的组件,比如门窗。可是当他们想统一大梁的标准时,用户不干了,我家的房子怎么能跟牛二家的房子一样?于是,木匠们用去继续寻找符合主人要求的木头去了。

中国的程序员也知道设计类库会为以后的工作节省大量的精力,可是项目的压力很重,老板总要求随时看到可以演示的东西,大部分老板是不会帮你Review代码的。于是,即使有程序员写了一个类库,也只是实现了当前项目需要的功能,没有测试、没有文档,使用范围也只是身边的伙伴。当下一次再碰到类似问题时,翻出原来的代码,发现老类库没办法适应新要求了,没有文档,连程序员自己也弄不清代码究竟是什么意思了。于是,索性再按新项目的要求写一段新的代码,这次连类库都省了,反正以后也用不到。

久而久之,程序员思维的中心便是用户界面,再也不会去想费时费力却得不到老板认可的类库了。所以,中国没有WTL、没有OpenNETCF

其实所有程序员心里最先想到的是组件,用一个组件去实现某个功能,将所有的错误处理、边界控制,全都放在这里组件里,而不是交给用户界面去做。我们要对组件进行单元测试,而不应该把测试交给界面测试人员,界面测试人员应该更关注人机交互性能,而不应该在逻辑迷宫里转悠。

程序员看似无用的忙忙碌碌,也许会创造一个新的世界。学会组件化思考,我们以后写得不应该是应用程序,而应该是组件。新的一年快到来了,希望程序员们明年有个好心情,也希望更多的老板们可以像Google那样,多给程序员一点思考的空间,也许他们创造出来的就是下一个WTL
阅读更多
个人分类: 程序日记
上一篇[翻译]设计.Net Compact Framework(二)
下一篇我的BCB情缘
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭