簡單就是美!淺談java各層框架。

boby2046發表於2007-08-01
很久沒有來過Jdon了,感覺陌生了許多,也許有人看了我的標題以為我是一個ROR的鼓吹手,其實,剛好相反,基於現在開發的現狀,我覺得JAVA陣營有必要站穩陣腳,分析清楚技術的走向,畢竟都涉及到我們的飯碗前途問題。
之前有人問我這麼幾個問題:Java除了做Web還能做什麼?Java做一個專案為什麼要用這麼多框架?問題沒有標準答案,答案大家都比我清楚,這個我就不多說了。但是使我想到的是,的確,Java是越來越複雜了,JDK的速度發展驚人,之前的tiger 5.0,今年剛出爐的mustang 6.0,還有即將出臺的dolphin.我越來越感嘆Java程式設計師的辛苦。特別是面對眾多的選擇,有開源的,也有商業化成熟的產品,雖說框架工具不是重要,重要的是OO思想,設計模式,但實際操作起來,框架的選擇還是十分重要的,如果專案開始選擇錯誤的話,將會面臨嚴重的成本的危機。由於我的能力和實際經驗有限,先說說本人對JAVA各層框架的理解。
先從頁面層說起,頁面的技術五花八門,標準的Taglib和jsp,雖然說是工業標準,侵入性太強,卻是累活,髒活,對前臺設計十分不友好,一些前臺設計師就發難了,說邏輯和頁面混合起來,還怎麼開發啊?於是才有了struts,webwork類的web框架MVC模式。聽說Model Macth開源的Fastm專案在解決非侵入性方面非常棒,一直都找不到相關例子。頁面層的工作通常是最多的,是面向客戶的,所以現在一些RIA應用興旺起來的根本原因是要最大程度地滿足客戶的需求。在這層Java陣營可以說是敗了,UI開發不方便的同時,也沒有VS.NET拖曳式開發的好處,既要對開發設計人員所見即所得,又要對客戶展現富客戶端的優勢,這點我預測就是最近幾年頁面層技術發展的方向。
然後說Web層,Web層是最不好選的,但如果想支援一些RIA的應用,諸如Ajax,Flex,就只能用JSF。其他的框架各有優點,Struts成熟使用者群大,有很好的標籤庫,而webwork用起來簡捷方便,有利於TDD,適合用於小專案開發;tapastry很完美,可惜入手太難了。
再說業務邏輯層,選擇視乎不是很多,要實現叢集,負載均衡的用Ejb,
靈活輕便,面向測試的就選擇Spring Framework.JBoss Seam和Jdon Framework沒有用過,不過看起來也是很簡便的。這層的核心是當前的主流IOC和AOP,相信大家也不會有所爭議的。這裡才是程式設計師真正關心的。可是跟邏輯業務無關的操作實在是太多了。
最後的OR層,Hibernate,Ibatis,Toplink,JPA,都是傑出的代表,是應用系統中最難的地方,涉及到DDD和OO,不能簡單的以為做OR層就是分頁+CRUD+快取,提高效能和效率是OR層也就是持久化層的最終目的。
實現SOA不在我們程式設計師的目光內,對,它是必然趨勢,但是是針對專案管理者的。SOA現在還離我們很遠,只能靜觀其變。
Java也許它的使命就是解決複雜的應用,我們能從ruby,phython之類的語言學到什麼嗎?迴歸原點,專案的關鍵不在技術,而在於需求。我們不能再陶醉在JAVA的海洋裡自我滿足了,無論ROR,.NET裡面也有很好的思想,它們也有龐大的社群,也有在前進。JAVA的優勢是眾多的元件,類庫,框架可供選擇,但怎樣才能不讓我們的優勢不變劣勢呢?這是我們要仔細思量的。

相關文章