有这么一个软件大神, 他很少谈论操作系统,数据库这些底层的东西,也很少谈什么高并发,海量用户, 他也没有开发过什么知名软件,但是却被奉为软件开发的教父。
这位大神就是Martin Fowler。
如果把软件开发分为3层的话,Martin Fowler其实生活在最上层。
这一层挤着很多程序员,因为越往下层,路越难走。必须得能耐得住寂寞,经得起诱惑,对某个狭窄的领域有着极为精深的研究才可以。
但是Martin Fowler在应用层“突围”了,能呼风唤雨,被人尊称为软件开发的教父, 因为他具备一个非凡的能力:擅长把一些软件开发实践总结成“概念”。 很明显,这需要极强的抽象能力。
在这些概念当中,最知名的就是“重构”了, 当时《重构》刚出来的时候,被誉为和《设计模式》齐名的著作,一个是倚天剑,一个是屠龙刀,我个人觉得炒作成分不少,它是比不上设计模式的地位的。
但是它确确实实推动了重构这个实践的普及,以至于在IDE中,重构变成了一个必备的功能, 如果你还没有用过,应该好好反思一下。
重构还成了静态类型语言“鄙视”动态类型语言的一个重要方面。
重构的流行,也引发了另外一个市场: 向模式重构, 有一些书专门讲如何把“烂代码”重构为模式。
另外一个著名的案例就是《企业应用架构模式》, Martin Fowler把企业应用开发中的一些最佳实践分门别类地总结了出来:
比如讲领域逻辑模式的“事务脚本”,“表模块”,“领域模型”,“Service Layer” 等。
讲ORM的“单表继承”,“类表继承”,“活动记录”等。
虽然已经快20年了,你再去读这本书,还是会有很多收获,这就是基础知识,核心知识的魅力吧。
对于时下热门的“微服务”,虽然Martin Fowler并不是第一个谈及微服务的概念,但是他的文章对微服务总结得最好,传播最为广泛,尤其是其中的配图,非常精彩,强烈推荐:
https://insights.thoughtworks.cn/microservices-martin-fowler/
经过这么一折腾,很多人就认为微服务这个概念就是Martin Fowler最先提出来的。 足以反映出他强悍的抽象能力。能够说出别人想说,但是难以表达的东西,成功地搔到了大家的痒处。
除此之外,Martin Fowler还有几本著名的书《分析模式》,《UML精粹》,《领域特定语言》,都是各自领域内的经典之作。
Martin Fowler做了很多年的ThoughtWorks首席科学家,ThoughtWorks是敏捷软件开发践行者和领头羊,记得他们最早是做定制的软件开发,就是给客户开发项目软件, 后来推出了一些自己的工具。 这个公司文化独特,也有很多牛人,在业界有不小的影响力,感兴趣的可以多了解下。
虽然Martin Fowler说自己仅仅是author, speaker,但是我相信如果没有大量项目实践的支撑,他不可能总结,抽象出这么多概念和方法。
我大胆猜想一下,Martin Fowler的工作方式就是全世界到处飞,发掘那些开发中的实践,然后总结出来,写博客,出书, 最终形成软件开发的宝贵财富。
很少听到Martin Fowler谈论操作系统,数据库,这些底层的东西,也很少听他谈什么高并发,海量用户。我们也很少使用他开发的软件,但是他的思想,他建立的‘词汇’却贯穿在我们日常开发中。
Martin Fowler给我们的启示就是:实现业务逻辑并不比底层的系统级开发低级,只要善于总结,善于思考,这一领域也大有可为。
最新热门文章