個人經歷
很難想像Rod Johnson的學歷,真的讓好多人大吃一驚,他是悉尼大學的博士,然而他的專業不是計算機,而是音樂學。不明白那個禿頂的腦袋瓜里怎么會同時擁有如此高深的計算機技術和高雅的藝術細胞,只能驚為神人。禿腦袋瓜並沒有讓Rod Johnson變得難看,好幾個同學一致認為這傢伙長得很酷。他看去是一個典型的英國紳士,雖然他好像出生在澳大利亞,但是現在住在倫敦。說起話來也是一板一眼,有條有理。字正腔圓而略有點尖的口音讓人聽起來特別清楚。然而Rod Johnson似乎也天生缺少一樣東西:幽默感。一本正經的講座和採訪雖然讓人聽起來很爽,但是我找不到聽Ted Neward或Marc Fleury時的那種激情和快感。記得去年的TheServerSide Symposium上,Rod Johnson因為JBoss那幫傢伙戴著面具穿著小丑衣出席會議時說他自己和整個Spring項目組都沒啥幽默感,也不會穿那種衣服出席,結果引來了 Gavin King用最污穢的詞在他的blog上作出的回應。 接下來的SpringFramework和Expert One on one J2EEDevelopment without EJB的成就幾乎是人所共知的事情了。隨後是他創辦了interface21,一個專業的SpringFramework的諮詢公司,Open source的專業化道路是Java community的最好出路。很多人說那裡的培訓很精彩。Rod Johnson的老本行就是做諮詢的,在出名以前,他就給很多歐洲的大公司和大項目做資詢。 Rod Johnson的另一個閃光的地方是他對standardization的看法,他是JDO 2.0和Servlet2.4的專家組成員,不過他對很多標準都持懷疑態度,當然最明顯的就是EJB。如果誰都沒有implement過某個技術而直接制定標準絕對是 dangerous的。這也是今年他在TheServerSide Symposium上keynote speaking的主題。
輪子理論
“輪子理論”,也即“不要重複發明輪子”,這是西方國家的一句諺語,原話是:Don't Reinvent the Wheel。當然由於國內IT從業人員接受的都是西方先進技術(誰讓中國沒有先進技術給大家學呢?),因此看見大家經常引用這一句話。“不要重複發明輪子 ”,意思是企業中任何一項工作實際上都有人做過,我們所需要做的就是找到做過這件事情的人。拿到軟體領域中就是指有的項目或功能,別人已經做過,我們需要用的時候,直接拿來用即可,而不要重新製造。
“輪子理論”既然只是一句諺語,怎么又跟Rod Johnson大叔聯繫在一起了呢?因為Rod Johnson大叔告訴我們,Spring就是在“不重複發明輪子”的理念及指導原則上做起來。於是一夜之間,隨著Spring在全世界的風風火火,特別是吹到我們祖國的時候,也許是愛屋及烏(或鳥)的原因吧,“輪子理論”也被眾多的Spring冬粉當成做人做事做程式的信條及原則。
這樣有問題嗎?當然有嚴重的問題。
“輪子理論”這一理論本身沒有錯,錯的是輪子理論的濫用,錯的是大家被Rod Johnson大叔忽悠了一把而不知或不承認。熟悉Spring的朋友都知道,Spring除了IOC、AOP及與其它各種框架的整合集成接口以外,也一樣有自己的WEB MVC、有自己的持久層資料庫訪問,當然,IOC、AOP就更加不是他的首創了。你能說這些東西難免不帶有“發明輪子”的嫌疑嗎?筆者由於資歷乃至閱歷皆淺薄,無法證明Spring“發明了輪子”,這裡只是拋出一個疑命題,還請高人來求證。如果Spring的MVC等能證明他本身也是發明輪子的話,我們再去想想Rod Johnson大叔說這話的動機,難免會讓人往其他不友好的方面想。
(Rod Johnson在Spring中創造SpringMVC的原因是因為當時流行的MVC框架都有各種各樣的缺陷)
Rod Johnson-《Expert one-on-one J2EE Development without EJB》
談到Rod Johnson,除了Spring框架本身以外,他所著作的《Expert One-on-One J2EE Development without EJB》一書,其影響力比Spring框架本身還更加震撼。這裡插播一段廣告:《Expert One-on-One J2EE Development without EJB》這本書的中文版(2005)就已經出了,有興趣的朋友可以去買來一看。
Rod Johnson對J2EE乃至整個Java的貢獻我這裡就不再多說了,下面直接引用一些從網上摘下來的原話,我想大家也能看出他的厲害。
社會評價
我們曾經在無數的書籍和文章中看到,EJB是J2EE的核心技術之一;而Rod Johnson竟然宣稱,絕大多數的J2EE套用根本不需要EJB。
Rod Johnson將會引領一種影響深遠的潮流。但這潮流不是Spring和Hibernate,也不是IoC和AOP,甚至不是“輕量級架構”,而是一切實事求是的“循證架構”的工作方式。惟有掌握這種工作方式,你才能夠真正自信滿滿地挺起胸膛說:“我選擇的架構是適合套用需求的架構。”
Rod Johnson認為,應該是基於實踐的證據、來自歷史項目或親自試驗的經驗,而不是任何形式的偶像崇拜或者門戶之見。Rod Johnson給我傳授了“循證”的工作方式——那原本就應該是程式設計師的工作方式。-摘自“J2EE without EJB”書評
Spring 提供這些價值也離不開其它開源框架的支持(Spring 的理念:不去重新發明輪子),但是 Spring 是所有這些開源框架的集大成者,為集成各種開源的成果提供了一個非常理想的平台。所以 Rod Johnson 對於 J2EE 的貢獻在我看來要比其他人高一些的。-摘自網友評論Rod Johnson-《Expert One-on-One J2EE Design and Development》
這本書是Rod Johnson的成名著作,非常經典,從這本書中的代碼誕生了springframework。 內容涉及:在何種情況下使用分散式體系結構;如何高效地使用EJB;開發有效的數據存取策略;設計簡潔並且可維護性高的Web接口;設計高性能的J2EE應用程式等。本書的觀點是完全獨立的,面向問題而非規範,並以作者在生產實踐中使用J2EE的實際經驗為基礎。閱讀完本書之後,熟悉J2EE的基本概念但可能還沒有任何J2EE使用經驗的開發人員,將能夠自信地嘗試J2EE項目。經驗豐富的設計師或開發人員將能夠從本書以實用角度為出發點的J2EE體系結構與實現的討論中受益,因而本書適用於Java設計師、具有J2EE經驗的開發人員以及擁有J2EE基礎知識並希望從事J2EE項目的Java開發人員。
The results of using J2EE in practice are often disappointing: applications are often slow, unduly complex, and take too long to develop. Rod Johnson believes that the problem lies not in J2EE itself, but in that it is often used badly. Many J2EE publications advocate approaches that, while fine in theory, often fail in reality, or deliver no real business value. Expert One-on-One: J2EE Design and Development aims to demystify J2EE development. Using a practical focus, it shows how to use J2EE technologies to reduce, rather than increase, complexity. Rod draws on his experience of designing successful high-volume J2EE applications and salvaging failing projects, as well as intimate knowledge of the J2EE specifications, to offer a real-world, how-to guide on how you too can make J2EE work in practice.