看JDon論壇隨感一篇——中國成功的開源專案在哪裡?

wind13發表於2007-03-23
看了這一貼 http://www.jdon.com/jive/thread.jsp?forum=62&thread=27279 和其他的一些貼後有感……
先引用一下BanQ總結的框架現狀:

就目前Java框架狀況,小結如下:不足之處請補充:

1. EJB3 可惜只有JBoss ORacle幾家支援,時隔1年多IBM和BEA巨頭還未成熟伺服器。所以,JBoss Seam目前還只好先於JBoss AS捆綁在一起,Seam也不是Ioc/AOP框架。

2. Spring 2.0 雖然亡羊補牢,為時未晚,可惜編譯器換了,不能用Java標準編譯器,那是不是在語言上走向另外一個方向?而且根據執行時動態更換軟體元件設計原則,Spring 2.0將AOP weaving做成了靜態,是不是設計倒退?雖然效能提升了。

3. RoR, 不是Java框架,萬一系統不小心做大了,不知向何處發展?還將業務程式碼和MVC的Controller混淆在一起程式設計,減少架構層次達到快速開發的招,地球人都會,這是以喪失軟體質量為代價的快速開發。

4. Scopes,獨立的物件生命週期管理的框架,可以管理物件狀態長短,可適用在J2EE和Swing當中,剛剛出來,狀態管理是一件很複雜很靈活的事情,是否成熟有待觀察。

5.JF, 國人開發的框架,因為觀念問題,未獲得國人廣泛認同,所以,維護只能靠Jdon;進而又阻礙其廣泛應用。 


從我做專案一開始,就想要尋找一個好的框架來幫助完成專案,EJB、Spring、Struts、Jdon等等,自己的水平又很一般,也不可能每個框架拿來試,只能從各方面找用過的人發的貼子看,Jdon論壇上當然也有很多討論,當時考慮到EJB(那時3.0還沒出來)的複雜,聽說Spring也不簡單,呵呵……於是就選了Jdon這個短平快的,因為如果沒有框架的話,就我們專案成員的水平也就是做假三層結構、偽J2EE的BS軟體,所以第一、有個框架總比沒有好,第二、不能太複雜難上手,一定要能儘快應付專案開發,最後選擇使用了Struts+Jdon+Hibernate的框架。

可以這樣說,使用了這麼長時間後,感覺自己的J2EE開發才算是入門了。

Hibernate不錯,使得開發很大程度地脫離了資料庫,真正可以物件導向了,只要注意配置XML時的一些屬性就好了,摸索出一套適合自己專案的配置方式就OK了,最主要就是many-to-one的配置方法,再就是lazy=false還是不設lazy,case-cade等方面。基本配好了,形成一套規範,之後再設計Model就容易多了,Model完成後複製一份做成Form類,呵呵……
接著就是DAO介面和DAO的實現,建議就定義最基本的增刪改查和傳SQL查就差不多夠了,必要的時候定義傳SQL更新和傳SQL刪除等。
接下來就是寫Service介面和Service實現,跟DAO差不多,也都象是模板一樣,照貓畫虎即可,先寫最基本的增刪改查,以後再根據業務需要組織一些複雜的Service,在Service實現中呼叫Dao介面,有些方法可以重用Dao的介面,只需傳入不同的SQL引數即可。
到此基本持久層和業務層就差不多了,再上面就是寫Struts的Action,由於使用了Jdon的封裝,很多基本的操作都無需寫Action了,只要直接配置成ModelViewAction、ModelListAction或ModelSaveAction就可以了,再要有特別的操作,可以繼承這些Jdon的Action,修改excute()方法即可,新增一些自己的操作然後再呼叫super.excute()。
總得來說,如果多做幾個模組後,就基本可以掌握Jdon的使用了,而且持久層和業務層的程式碼非常規範化,專案也比較整齊,這其中重要的是將一些細節確定規範下來,全專案組的人員統一遵循。
正如 http://www.jdon.com/jive/thread.jsp?forum=61&thread=31159&message=23104101 這一貼所提,目前專案就是感覺在前臺方面還不夠舒服,使用了Struts中的Tiles技術,非常不錯的技術,可以將整個網站的風格統一到模板上,同時各頁面上的元素都可以做成類似“網頁零件”的小JSP頁面,這樣不同的頁面如果元素類似,只需拼裝這些“零件”就可以了。我因為從事了幾年網頁設計製作工作,所以將整個專案的CSS逐級組織,達到即有統一風格,又可各欄目各頁面變化。
然而即使這樣,在表現層的開發還是感覺有點難過,其中有很大的一個原因也是人員方面,我們這個專案組中網頁設計和製作人員很少,水平也一般,我覺得通常情況也是如此,大多數公司和專案組,是有程式設計師和設計師的,但中間卻缺少所謂“表現層架構師”的角色,程式設計師不喜歡搞表現層的介面,認為那是設計的事,我實現了功能就OK,設計師不喜歡搞HTML、CSS、Javascript的事,看了程式碼就頭暈……所以好象多數開發專案組這一環節總是雞肋。再加上瀏覽器的軟體和版本各式各樣,開發人員通常不重視瀏覽器的相容性,HTML和CSS等語言的容錯性又導致大量的表現層程式碼非常不規範,可謂之混亂,許多的小問題,特別是客戶提出的問題則通常集中到這個層面,結果是直接導致專案的表現不如人意,因為客戶只可能看看你軟體的表面實現的情況。
說了這麼多,主要是想說Jdon框架總體上是非常不錯的,我們看一個框架好不好,一方面從方向上來評判,即技術的前瞻性和科學性,這方面我覺得BanQ總結了很多文章,而且時刻關注著Java技術的最新動向,目前看IOC注入模式的應用、AOP狀態攔截管理等都是先進的,同時Jdon也一再強調它的相容性,可以和EJB共同使用,甚至也提到Jdon框架自身也是可以拆散和被替換的。這些也是當初選擇JDon的原因之一,想著哪天真要是專案擴大了,需要分散式叢集服務,也可以慢慢轉到EJB上,呵呵……另一方面,好的框架就是用來使開發更容易同時決不犧牲規範性、擴充套件性等,所以Jdon在這方面也是很容易上手的,象我們專案組透過使用Jdon,大家對J2ee架構的多層概念有了更深的瞭解,再不是以前那種管他什麼手段,只要實現功能就OK的開發思想了。一旦掌握了Jdon的使用,開發持久層和業務層都將是很容易的一件事,再特殊的就是要學會Jdon中的事務處理,這個俺還沒找到方法,看了另一貼 http://www.jdon.com/jive/thread.jsp?forum=61&thread=31162 自己也沒找到答案,不過我想問題不大的,因為是使用J他的嘛。
最後,希望大家多多支援Jdon這個框架,我的感覺就是Jdon一直是靠 BanQ 一己之力在支援,沒有形成一個開源專案的團隊,大家不要象中國的舊傳統中那樣“文人相輕”,而是應該想法一起合作做出些真正有價值的事,即使目前Jdon由於BanQ一人精力的不足而無法更加完善,我們反而應該給予更多的幫助,而不是因此就說“你看你Jdon就是不如人家的什麼什麼吧?”。國外的很多開源專案和社群之所以成功,我想也是大家共同支援的結果,那麼在中國我們就不能建立一個成功的開源專案,一個成功的開源社群嗎?

相關文章