<!--enpcontent--> Patterns of Enterprise Application Architecture 《企业应用架构模式》 Martin Fowler 电力出版社2004年4月影印版
我有一双定做的休闲鞋,一只鞋上赫然写着“KISS”,另一只则写着“YAGNI”——这是程序员圈子里的“黑话”,也算是我对自己职业的一点炫耀吧,它们的意思分别是“Keep It Simple and Stupid”和“You Aren'tGonna Need It”。这是来自敏捷社群的两句箴言,我愿意把它们留在我的鞋子上,让它们随时提醒自己:不要过度追求程序设计的完美,因为我可能永远不需要那样一个完美的设计。 然而,上个星期我却只做了一件事:对一个项目的业务层代码进行重构,将它的体系结构设计从Transaction Script模式变成Domain Model模式。如果说软件开发者应该始终选择可行所有方案中的最简单者,如果说编程的唯一目的是实现业务需求,我的这一行为恐怕将无法解释。也许唯一合理的解释,只能是对惟美的偏爱了。
柏拉图认为万事万物都有一个完美的、先验的“理型”(eidos)存在,而我们眼见身受的事物无非是这理型的一个不完美的投影或者复制品———就像用模子烤出来的蛋糕。如果我们愿意传承这位先贤的世界观,那么在我手边的这本Patterns of Enterprise Application Architecture(PoEAA)就多少有些像是柏拉图所设想的“理型的花园”了。如果要为这本PoEAA设计广告词的话,我会说它“承载了Martin Fowler之于企业级应用开发的思想精华”———英文中的“idea”一词恰好源自希腊文的“eidos”,这也算是词源学的一次巧合吧。
MartinFowler在面向对象社群素有“教父”的美名———我们当然还记得UML Distilled、Analysis Patterns和Refactoring。据说有位先生曾在一个技术研讨会的午餐时间与他的邻桌讨论OO技术,当他得知对方是Thought Works的员工时,立刻懊恼地说:“我竟然试图教Martin Fowler的同事OO技术,这简直就是木匠门前玩斧头、大江边上卖水了。”作为这个圈子里最著名的“传教士”,MartinFowler有一种常人所不及的归纳总结、提纲挈领的能力。很多“古已有之”的技术都是经过了他的点石成金,才真正在开发者的芸芸众生中流行起来———重构技术就是一个最好的例子,而最近的例子则是Dependency Injection模式。
从他的作品中,我们可以明显地看出:Martin Fowler一直致力于为企业级应用开发者提供一套完备、自足的话语系统,一个理型的世界。Analysis Patterns告诉我们如何分析用户需求,Refactoring告诉我们如何改善代码质量,Planninge Xtreme Programming告诉我们如何规划敏捷的开发过程。这本PoEAA恰好是拼图的最后一块,它所记录的47个模式直指架构企业级应用时无法回避的那些问题。现在,Martin Fowler的信徒们可以完全用自己的一套话语来谈论企业级应用开发了。
面对这本PoEAA,或许不少读者会冒出这样一个念头:为什么我要使用这些模式?——这个问题从前的版本是“为什么要重构”、“为什么要采用多层结构”,它们背后的潜台词是“为什么我要给自己增加这些麻烦”。实用主义的陈词滥调我们已经听得太多了:优雅的设计提升灵活性和复用性、使系统便于维护……噢,一边做着设计,一边还要考虑“这里是否需要灵活性”,我不认为自己有那么好的精力。在我看来,这里只有一个问题:系统是否呈现出一种内在的美。在我的系统中采用Transaction Script模式让我感到缺乏美感,所以我把它重构成Domain Model模式,这就是我的方式。
我提到了“美感”,这是一种形而上学吗?软件开发的全部艺术就是权衡:在简单与复杂之间权衡,在一种方案与另一种方案之间权衡。如果把每个问题、每个权衡的利弊都考虑得清清楚楚,恐怕开发一个应用程序的成本会高得惊人。所以,很多时候我们更依赖自己的审美眼光,用平静的心去设计一个赏心悦目的系统。缺乏美感的程序通常也同时缺乏质量,从前曾经流行的“万能JSP”就已经充分证明了这一点。这本PoEAA就像一幅画卷,它向我们展示了具有美感的架构方案。如果能暂时抛开实用主义的立场,用审美的眼光去浏览这幅画卷,或许能引起你更多的共鸣。
但是,请不要忘了,MartinFowler同时也是一位敏捷方法的鼓吹者。在他看来,过度设计、堆砌模式的系统同样是缺乏美感的。就像这本PoEAA,如果把这47个模式全部用在一个系统里,最终得到的只能是一堆臃肿不堪的垃圾。于是,我只好不时看看自己脚上的鞋子,在心里默念“KISS”、“YAGNI”,然后继续在完美与简单之间权衡。PoEAA给了我们优雅的设计方案,但它并不保证用这些方案能够得到具有美感的架构设计,你仍然必须不断地选择、权衡。在这个领域里,没有银弹。不然,还要我们程序员干什么?
<!--/enpcontent-->
|
相关推荐
《以美启德,以美启智——借力绘本构建道德与法治深度学习课堂》便是这样一部深入探讨如何通过绘本这一独特教育工具,促进学生在道德与法治学科领域实现深度学习的研究之作。 绘本,作为一种图文结合的书籍形式,其...
钢铁行业深度报告:以美为鉴——探寻后工业化时代中国钢铁行业供需演变
钢铁行业深度报告:以美为鉴——探寻后工业化时代中国钢铁行业供需演变.pdf
VMI库存管理模式案例分析-以美的为例
从传播心理学分析网络视频直播——以美拍APP生活类直播为例.pdf
浅析短视频软件发展趋势——以美拍APP为例.pdf
#资源达人分享计划#
家族式企业财务管理模式及其改进策略—以美的集团为例
网络视频直播作为一种新兴的媒体形式,近年来在全球范围内迅速崛起,尤其是以美拍为代表的短视频应用,吸引了大量用户参与。从传播心理学的角度看,网络视频直播的火爆现象揭示了人类心理需求在新媒体环境下的独特...
这篇金融研究论文主要探讨了我国上市公司实施股权激励的动因及其对公司效果,以美的集团为例进行深入分析。股权激励作为一种重要的激励机制,最初在美国兴起,我国在20世纪90年代初才开始尝试。尽管早期遇到诸多困难...
在投资建议方面,报告提出,随着市场集中度的提升,规模和资金实力较弱的企业将被淘汰,这将有利于行业龙头企业的市场份额增长。值得关注的有宝钢股份、南钢股份等龙头企业。同时,产品结构适应国家产业升级需求的特...
在探讨LBS(基于位置的服务)和O2O(线上到线下)商业模式在移动电商平台中的应用与创新之前,首先需要明确几个概念。LBS是一种通过移动通信网络获取移动设备用户位置信息的服务,在GIS(地理信息系统)支持下,为...
【文档描述】:这份结题报告探讨了“以美养德,以美育人”这一德育理念在中小学教育中的应用,旨在提高德育实效性和融入美育元素,以构建生活化、常态化的德育体系。 【知识点详细说明】: 1. 德育与美育的结合:...
#### (一)以美润心——填补幼儿感性教育的空缺 在传统的教育模式中,往往忽略了对幼儿感性认识的培养。信息技术的应用可以为幼儿提供更加生动、直观的学习材料,比如通过视频、动画等形式展现自然界的美丽景象,...
PPT模板中的场景设计,不仅在视觉上给人以美的享受,更是在情感上与观者产生共鸣。雪山下的温暖家庭,圣诞老人驾着雪橇车,这些元素搭配在一起,不仅丰富了圣诞的主题,也为模板使用者提供了广阔的创意空间。 在这...
以美的企业为例,其企业文化注重细节,如VI/CI系统的严格规范和管理体系的持续更新,体现了美的对品质和服务的执着追求。同时,美的在员工福利、工作环境和文化设施建设上的投入,展示了其关心员工、重视团队建设的...
整体来看,这份“瑞雪丰年——喜迎元旦喜庆红元旦节ppt模板.zip”将中国传统元素与现代设计理念完美结合,不仅在视觉上给予人以美的享受,更在文化上带给人深刻的认同感。无论是用于商业展示,还是亲朋好友间的祝福...
同时,散文的语言魅力在于其自然流畅和富有音乐性,因此,在写作时应特别注重语言的美感和节奏感,使得文章不仅仅是内容上的丰富,更在形式上给人以美的享受。通过不断的学习和实践,学生将能够逐渐掌握并运用这些...
在佛山等地区,许多企业正在积极探索新零售模式,并通过构建体验型门店、应用先进技术以及精细化运营大数据,来适应新零售时代的需求,并塑造未来的消费模式。这一变革不仅仅是对零售场景的创新,更是对整个零售生态...
这首诗不仅给人以美的享受,更激发了孩子们对大自然的热爱和向往。通过诵读这样的诗篇,孩子们能够将自己带入诗人的角色,体验到那份贴近自然的心境,同时,这也是一种审美情感的早期培养。 当然,提起儿童启蒙诗词...