English

鲍勃大叔和他的拼图板

2003-08-06 来源:中华读书报 刘天北 我有话说
英语里有些俏皮话真是匪夷所思。比方说,有句话叫“鲍勃是你叔叔(Bob is your uncle)”,从字面上很难明白说的是什么。其实这里的意思很简单,相当于北京人说的“那就成了”、“那就齐了”。据说几个世纪前,有位名字是Robert(昵称“鲍勃”)的英国政治家,刚当上首相就把自己的侄儿提拔为财政大臣。这种劣迹免不了遭到大家的揶揄,说到什么事难办总爱加上一句“鲍勃要是你叔,这事儿就成了!”久而久之,这位鲍勃倒在英美俗语里留下了芳名,说起“鲍勃大叔”,大家不会想到任人唯亲,眼前却总浮出一个神通广大的“大能人”形象。

在软件开发界,“鲍勃大叔”是老牌专家Robert C. Martin的绰号。光是这个名字,对业内人士来说就意味着难以替代的声望:一位从1970年就开始开发软件的专家、面向对象技术的重要贡献者、名牌杂志《C++Report》的前主编、多部核心论著的著者或编者、专业开发咨询/培训公司Object Mentor Inc.的创始人和总裁。在软件业非常成熟的北美,咨询、培训远不是博取证书的敲门砖这么简单,许多顶尖的软件开发专家都投身于这个行业,或授课、或撰稿、或演讲、或顾问,以自己的经验和思考带动所有开发者实践水平的提升。在这些“顶尖专家”中间,Martin就是他们心目中的“鲍勃大叔”。

我在别处也讲过,一般所说的“软件工程”学科,其实存在着两种截然不同的思路,这里我愿意把它们分别称为“纯方法论者”和“经验论者”。在前者看来,对于软件开发的各个方面,我们都能总结出一组非常形式化的原则和指导体系,如果具体的开发者一切照此办理,那么软件项目也就无往而不胜。这些纯方法论者在推行一系列严格的准则时总带有某种“理性的狂热”,抽象的图示啦、贫血的模型啦、爬满数字的评估报告啦,都是他们心爱的装置和摆设。借助于一些业界权威机构,这些专家繁衍出不少可敬的标准、难以终卷的论著和迷宫般繁复的开发工具,他们的工作也形成了一个奇怪的利润丰厚的产业。

要是听信某些一面之词,“软件工程学”也就只能和上述货色画上等号。幸好在那些权威机构制造的嗡嗡声背后,一直都蕴藏着某种更理智、更温和的暗流。像Robert Martin这样的面向对象方法论大师,从“模式社区”初创的时期开始,就一直以经验、实践和变化的名义有效地抵制着“纯方法论者”日益僵化的趋势。这两种方法论实践之间的内在张力,也是推动软件工程学科的重要因素。2001年,在CMM之类的嗡嗡声被调到最大音量的时候,Kent Beck、Martin Fowler和Robert Martin等经验论阵营的头领决定组织起一个松散的团体,为自己长久以来的实践命名。这样就诞生了“敏捷联盟(Agile Alliance)”。

正如旁观者总结的,这个联盟的十几位专家各有特色,有些像诲人不倦的传道士,有些像极具攻击性的看门狗,有些则是乐于幕后操纵的低调人士(若有机会,我会更详尽地介绍这个团体的其他有意思的成员和轶事)。Robert Martin可能会被划分到上面的第三类中。也许这就是为什么他的声名对不少人如雷贯耳,有些普通开发者却未曾耳闻。但早在敏捷联盟成立前很久,大家就开始传说“鲍勃大叔在写一部新书”,人们相信这本书将重绘软件方法论的地图,同时也终会把这位幕后的大师带到前台。是的,这本《敏捷软件开发(Agile Software Development,中国电力2003年影印版)》果然不负众望,去年一推出,就获得了年度图书“震撼”大奖。这是软件开发者的最新版圣经。

对于全书的价值,以本文的篇幅很难穷尽地讨论,不过Martin本人在书中倒有个很妙的比喻。在讲到软件开发中“隐喻”的重要性时,他说好的隐喻就像是拼图板上的那幅画。没有原画的参照,光靠比对一个个拼块的形状也能痛苦地完成整个拼图,但是有了这幅画,拼图才有了指引、有了乐趣。这是说“隐喻”的作用,可未必不能看成夫子自道。在我看来,鲍勃大叔的这部新书就是拼图板上的那幅画。对于面向对象原则、设计模式、UML、XP方法论、重构等等方面,此前都有大量名师巨著加以讨论,但是Martin在本书中令人信服地用这些原料烧成了一道大菜。所有这些方面,在“敏捷开发”的宏观料理下产生了全新的滋味,Martin的独家调料是大量的开发案例分析(case study),读者面对着来自第一线开发的实际问题,能轻松地学会将看似空洞的原则织入实践的肌理中。我甚至觉得,对于粗通开发语言,想要到“软件工程”领域一探究竟的初学者来说,这就是独一无二的“那本”教材。本书的出现,也算得上是方法论著作迈出支离破碎的白垩纪的一个里程碑。

上面谈到了大局观和对实践的聚焦,其实对于我这样的肤浅读者,本书的另一个好处是它的风格。读完这本五百多页的大部头,只消费了我不到两周的业余时间,这固然是因为书中点缀了不少清晰易懂的代码段落,更多的还是得益于作者亲切、流畅的文笔。Martin的长期撰稿经验和咨询、培训背景在这里体现了优势:他知道怎样表达想法,知道怎样说有意思的话。受够了各种“权威机构”制作的宏论的朋友,可以先去书店翻翻本书每章的题图,再扫一眼附录C里那两个并排印刷的虚构故事(一个CMM的牺牲品和另一间采用敏捷方法的公司同时开发同一类型的产品),如果你没有受到吸引,那就回去读那些宏论好了。

手机光明网

光明网版权所有

光明日报社概况 | 关于光明网 | 报网动态 | 联系我们 | 法律声明 | 光明网邮箱 | 网站地图

光明网版权所有