Martin Fowler:英国口音的软件工程

原创 2003年06月27日 14:50:00

刘天北

在一些罕见的情况下,大师会被阐释者夺走自己的创见。比如在软件工程界就有这么句话:“统一建模语言(UML)的发明者Grady Booch本人,都不一定比Martin Fowler更会用UML。”这说的是知名软件工程专家,《UML Distilled(中译UML精粹,清华大学出版社2002年出版)》的作者Martin Fowler。对于今天的软件开发者来说,UML是他们的面包和黄油,但在1997年,大多数人面对刚刚推出的UML 1.0规范,却都因其丰富和复杂而感到无所适从。就在这年,Fowler用那本两百页出头的小书说出了初学者最渴望的内容,恰如其分地抚平了业界焦虑的神经。虽然随后UML的官方机构也编撰了大量文档、论著,但不少朋友告诉我,他们关于UML的主要知识,都来自捧读《UML Distilled》的那个周末——Fowler亲切、流畅的叙述轻快地把他们引出了那个充满抽象的标记、图示的迷宫。
也许这就是官方文献和经典著作之间的区别。一方面是严谨、准确,但又高度抽象化甚至形式化;一方面则是生动、直观,不求面面俱到,但能让人很快就对概念大厦的全貌一目了然。的确,对于UML中几种最关键的视图之间的关系,很难有其他作者能给出如此简洁的解释。但别误解我的意思:这决非什么通俗读物或是缩写本,你在每一页上都能收获关于软件开发的真知灼见。而且Fowler的野心并不限于介绍作为一种工具的UML。比如对于被RUP长篇累牍、一口官腔的文档吓退的朋友们,该书的第二章就是介绍统一软件开发过程的最佳导引。
 
也许本文开头的说法还不确切。Martin Fowler远不止是一个简单的“掠夺者”,事实上他本人就是一位大师。当然,与创立UML的“三位老友(the three amigos)”或是合写《设计模式》的“四人帮(GoF)”相比,Fowler肯定是个晚辈。但是从1986年在故乡英国拿到电子工程学位,到参与开发建模软件Ptech,再到成为独立开发顾问,参与国家保健服务系统的开发,再到移居美国,加入著名的克莱斯勒C3项目,到成为软件顾问公司ThoughtWorks的首席科学家,Fowler以惊人的加速度获得了业界的认同和仰视。如今,虽说还是比那些业界元勋年轻得多,但他的言论已经是开发领域最重要的声音之一,他在各地的演讲、他对大量项目的实际咨询,都直接引领着软件开发科学的发展,指导着各国开发者的工作实践。
当然,对大多数读者而言,Fowler更多地还是意味着一部部经典著作。虽然《UML Distilled》是很多普通开发者的恩物,但是在Fowler本人那里,它却不是个宠儿——毕竟这只是关于特定工具、特定开发过程的导论。他似乎更看重自己的第一部著作《分析模式》,最近还在张罗该书的修订。对于最近流行的极限编程思想,Fowler的两部著作《重构(中国电力出版社即出中译)》、《规划极限编程(人民邮电出版社2002年出版中译)》处于理论的核心,前一部更被权威网站JavaWorld视作Java开发人员的圣经之一。而在日前评出的2002年度软件开发“震撼(Jolts)”大奖中,他的新作《企业应用构架模式》获得了效率大奖。
 
“编辑大人残酷地扼杀了我的英国口音”,Fowler在《分析模式》的前言里这么抱怨。他是说美国编辑们改掉了所有的英国单词拼法。我却总觉得自己能从他每一部著作的行文、理念中听出独有的英国口音。这里,英美文化差异扮演了微妙的角色:两相比较,美国人天真、率直,而英国人则更加矜持、老练,注重距离和分寸;我个人体会,这也是Fowler与其他美国专家之间最大的差别:那些专家对自己要介绍的内容总有一种天真的狂热,好像是在揭示什么世界终极奥秘,而Fowler则更谦卑、随和,乐意与所谈的内容保持某种讥讽的亲和性。文如其人,另一位大师Kent Beck曾经描述两人初遇的情景。那是一次学术会议, Fowler对Beck这么做的自我介绍:“I'm the only person here I've never heard of.——这么多人里我就没听过自己的名字。”这种亲切,这种包含自省的醇厚,一经与过人的洞察力遇合,就形成了作品中难以错认的优美和可读性。
也不仅是可读性的问题。我认为这更牵涉到关于软件工程、关于“方法论”的理念。软件工程界盛行各种大写的方法论。作者们急于用刻板的语言推销自己心目中的“最佳实践”。在他们眼里,方法论是数学意义上的严格科学,软件开发中的操作非对即错、泾渭分明。虽然Fowler的著作覆盖了软件项目的生命周期的大多数方面,并几乎为开发实践的每一个环节都画出了崭新的地图,但他的工作还属于一般认为的“方法论领域”。Fowler本人却不会太乐意接受“方法论学家”这个称号。毕竟,英国口音包含的距离感,与一般方法论者的一厢情愿很难兼容。在这个意义上,Fowler和他研究敏捷开发的朋友们算得上是软件工程界的异数,他们似乎站在方法论的阵营中,却又不时地质疑所有被奉为万应良药的方法论的意义。方法论的效用是不容忽视、但却有限的。实际的软件开发是一系列权衡、妥协的结果,其中抽象的方法论思考可能帮助、但无法取代这个困难的过程。
也许英国盛产的经验论是Fowler的另一个秘诀。作为一位独立顾问,他曾审视过成百上千个案例。对这些项目的成败、构架设计的优劣的反思,有效地构成了洞察力的核心来源。阅读Fowler著作,我总能体会到一种来自实际问题的切实感。与此相比,方法论学家们钟爱的“形式化”变成了名副其实的paperwork(纸上谈兵)。
由此我想到,大师的产生需要特定的生态环境。软件业是该看重经验还是打字速度,什么才是合理的开发者的年龄结构,软件咨询、培训公司应该扮演何种角色...对这些问题的回答是这个环境的一部分。我还想到,之所以介绍Martin Fowler这位大师(这是我个人的荣幸),也许不仅是为了推动对经典的阅读,更包含了我对产生大师的环境的期待,和对中国自己的大师的期待。

Martin Fowler谈微服务的优缺点

君子性非异也,善假于物也。 大师搞软件开始考虑成本问题了,这是很多技术人不屑于谈的问题啊! 【大牛观点】Martin Fowler谈微服务的优缺点 【编者的话】本文作...
  • knight_zhen
  • knight_zhen
  • 2015年07月30日 08:59
  • 4187

读 Martin Fowler设计已死?总结

 1 Planned and Evolutionary Design Evolutionary :code and fix bug ,会陷入越修改bug越多的情况 Planned:按照需求分析,概要设...
  • zhoudshu
  • zhoudshu
  • 2006年09月13日 17:58
  • 1123

Martin Fowler 经典软件著作合集

Martin Fowler的经典大作,英文版。[Addison-Wesley Professional] 分析模式 可复用的对象模型[Addison-Wesley Professional] Anal...
  • zlfprogram
  • zlfprogram
  • 2017年07月01日 15:53
  • 2635

Martin Fowler关于微服务的原文翻译(一)

原文如下:http://martinfowler.com/articles/microservices.html微服务一个新的架构术语“微服务架构”一词是在过去几年里涌现出来的,它用于描述一种独立部署...
  • u013970991
  • u013970991
  • 2016年11月25日 14:23
  • 5398

大师Martin Fowler强烈推荐的一本书

大师Martin Fowler强烈推荐的一本书——《JRuby实战》——从全球第一到全国第一推荐阅读:1.JRuby:谁说鱼与熊掌不可兼得  基本信息原 书 名:Practical JRuby On ...
  • turingbooks
  • turingbooks
  • 2008年05月31日 15:32
  • 4763

读-Martin Fowler-企业应用架构模式

分层 组织领域逻辑 映射到关系数据库 表现层 并发会话状态分布式 并发 会话状态 分布策略 领域逻辑模式 事务脚本 领域模型 表模块模型 服务层 数据源架构模式 表数据入口 行数据入口 活动记录 数据...
  • xiaoxufox
  • xiaoxufox
  • 2016年11月03日 17:26
  • 1429

Martin Fowler关于microservices(微服务)的原文和翻译

原文链接: https://martinfowler.com/articles/microservices.html 翻译链接:(巨赞) http://blog.cuicc.com/blog/2...
  • MikeLC7
  • MikeLC7
  • 2018年01月29日 18:07
  • 26

UMLChina: 1月23日与Martin Fowler交流实录

UMLChina第十四期专家交流实录返回首页 返回目录 北京时间2002年1月23日(星期三)上午9:30-11:30 嘉宾:Martin Fowler。Martin Fowler在面向对象分析设计...
  • rolt
  • rolt
  • 2002年01月25日 16:12
  • 1083

IoC容器和Dependency Injection模式---Martin Fowler著,透明翻译

关于IoC容器和DI模式的经典文章。地址:http://gigix.blogdriver.com/gigix/inc/DependencyInjection.pdf...
  • surprisesdu
  • surprisesdu
  • 2006年05月19日 16:53
  • 1418

Martin Fowler

【背景介绍】  现任ThoughtWorks公司首席科学家的Martin Fowler先生是当今世界软件开发领域最具影响力的五位大师之一。在数十年的职业生涯中,他大力倡导业内最先进的软件开发技术,如统...
  • chenzijun20082008
  • chenzijun20082008
  • 2006年12月22日 00:41
  • 580
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Martin Fowler:英国口音的软件工程
举报原因:
原因补充:

(最多只允许输入30个字)