簡單就是美!淺談java各層框架。
很久沒有來過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的優勢是眾多的元件,類庫,框架可供選擇,但怎樣才能不讓我們的優勢不變劣勢呢?這是我們要仔細思量的。
之前有人問我這麼幾個問題: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的優勢是眾多的元件,類庫,框架可供選擇,但怎樣才能不讓我們的優勢不變劣勢呢?這是我們要仔細思量的。
相關文章
- 淺談JAVA集合框架(引的)Java框架
- 淺談 SpringMVC 中各層職責的設計SpringMVC
- 簡單談談Hilt——依賴注入框架依賴注入框架
- 淺談框架框架
- block底層淺談BloC
- 淺談分層圖
- 簡單選擇排序就是簡單~~~排序
- Java多執行緒就是這麼簡單Java執行緒
- 簡單音樂播放器----java (美。。。。)播放器Java
- 淺談Spring框架Spring框架
- 單例模式就是如此簡單單例模式
- 淺談MVC框架中View層的優雅設計及例項MVC框架View
- jdbc就是這麼簡單JDBC
- WebService就是這麼簡單Web
- WebSocket就是這麼簡單Web
- jwt 就是這麼簡單JWT
- Activiti就是這麼簡單
- 淺談 Fresco 框架結構框架
- 淺談 Java集合Java
- 從一個簡單的Java單例示例談談併發Java單例
- 淺談美顏演算法:美顏SDK的“背後”演算法
- 簡單之美:Java技術沙龍隨筆薦Java
- 淺談單調棧
- 淺談 OI 中各種合併操作
- 簡單就是易於除錯除錯
- promise原理就是這麼簡單Promise
- ThreadLocal就是這麼簡單thread
- 簡單的Python爬蟲 就是這麼簡單Python爬蟲
- 淺談Storm流式處理框架ORM框架
- 淺談java泛型Java泛型
- 淺談Java迭代器Java
- 淺談Java抽象類Java抽象
- 淺談Java併發Java
- 淺談表單設計
- Windows程式間各種通訊方式淺談Windows
- 建造者模式就是這麼簡單模式
- SpringBoot就是這麼簡單Spring Boot
- 淺談框架模式 MVC、MVP 和 MVVM框架模式MVCMVPMVVM