Better, Faster, Lighter Java
 Bruce A. Tate、Justin Gehtland/著
 O'Reilly出版
 售價:34.95美元

 推薦:Amazon四顆星

我記得二十年前看過電影「上帝也瘋狂」(God Must Be Crazy),第二集一開始有提到:「人們為了節省時間,所以簡化事物,為了簡化事物,制訂許多規則,為了學習這些規則,又必須花許多時間學習規則,為了學習這些規則又必須…」。這好像是J2EE的寫照:為了許許多多的好處,所以Sun搞出J2EE這樣的架構,但是太過於複雜和昂貴,把所有好處都抵銷了。

J2EE不是唯一的道路
所幸J2EE不是唯一的路,許多非Sun所主導的技術,讓我們有了別的選擇。在這本得獎的《Better, Faster, Lighter Java》書中,作者指引我們另一條不同於J2EE的路,讓我們知道,Java在企業的應用,也可以很輕巧,很有效率。作者實際參與過許多這類將EJB系統簡化成非EJB系統的案子,新的架構更簡單,更快,並且更可靠。

Java的複雜度已經超越我們的能力。曾經只是用來解析文字的XML比以前變得更複雜。不管合不合適,到處都是EJB和Web Service這一類怪獸。這股膨脹的趨勢讓人憂心忡忡。我們一遇到問題就習慣用複雜的解決方案,直到被之前所輕視的簡單方案打敗為止。我們被訓練成對於眼前的簡單答案視而不見。

大型軟體廠商為了自身的利益,以疊床架屋的結構來超越對手與增加銷售的動機。功能越來越多,但是用戶卻無法跟上。新玩意強迫我們要學習太多的東西。典型的J2EE開發者得同時了解關聯式資料庫、Java程式設計語言、EJB抽象、JNDI的服務、JTA的交易、JCA的資料來源連結管理、XML的資料表示法、Struts的抽象使用者介面MVC設計等等。

然後,還得學習全套的通用設計模式,和企業設計模式才能解決J2EE規格的漏洞。不只這樣,還得提心吊膽的注意到不知哪天會冒出來的新技術,像是JavaServer Faces(JSF)、Web Service、SOA。

過去筆者在當這方面顧問的時候,常被這些技術搞得焦頭爛額。現在我把這些全都扔了,發現世界不再複雜灰暗,變得簡單又明亮。我們已經接近了經驗與能力的極限,程式設計師撰寫支援所選架構的程式碼,比解決真正問題的部分還要多:為了省下撰寫資料庫交易的部分,是否值得花一半的時間去撰寫支援CMP的程式碼?

我們所熟知的開發程序也在失控當中。我們花了一大堆專案時間在無關程式的效能、可靠性、或穩定性的事物上。在需求因為無可避免的因為日增的競爭壓力而改變時,這些事物也必須跟著修改,最後我們發現這些事物並沒有給我們任何幫助,反而變成加在我們身上的枷鎖。這一定還有更好的方式才對。

Spring + Hibernate聯手解救墜落J2EE地獄的蒼生
幾個獨立的開發者正嘗試重新思考企業等級的Java開發與建構更合適的工具。Hibernate讓我們以最少的API進行永續保存;Spring讓我們具有輕量級的Container。這些新的技術不打算要在越來越不穩固的J2EE地基上發展,反而是往底層去找尋更穩固的基礎。

這就是此書的主題。建議大家重新想像J2EE可以做到什麼程度,以及應該做到什麼程度,並且回到真正能夠被理解與建構簡單應用程式的基本原則上。現在正是應該要超越傳統軟體開發方法,並專注於讓複雜任務簡單化的時刻。如果你服膺這本書的基本哲學,就會讓時間花在真正重要的事物上,並建構更簡單的解決方案。

除了技術之外,這本書也可以幫助程式員建立正確的心態,包括了:「保持簡單」、「必需抗拒一次解決所有問題的衝動」、「對專案和技術做出正確的抉擇」、「追求擴充性與通透性」。

這本書不是寫給對每個問題都已經有答案的程式高手看的。若你認為J2EE可以達成每個需求且你能運用自如,那這本書就不適合你。這本書是寫給受挫的人看的。它的對象是那些中高階的開發者,具有實際的Java經驗且正在尋找出口,迫不及待想逃離無止盡的複雜性。

「簡單」可不是一件簡單的事!這本書所使用的技術稱不上簡單,但是如果和J2EE這種複雜到無與倫比的東西比較起來,這本書的技術肯定是簡單許多。如果你還在使用J2EE,或許應該看看這本書。

《作者簡介》蔡學鏞
曾任大學資訊系講師、IT技術經理、專欄作家。熟悉的程式語言:C、Java、C#、Ruby、REBOL。研究領域:Natural Language Processing、Decompiling、GUI。

熱門新聞

Advertisement