嚴(yán)肅一點說,在當(dāng)今JavaEE領(lǐng)域,如果你不知道SpringSide,如果你不是一個排斥新技術(shù)的極端頑固分子,應(yīng)該就是一個已經(jīng)不求上進(jìn)的技術(shù)混混。
開玩笑來說,如果你知道SpringSide而不知有AppFuse,那么我可以肯定你的JavaEE一定還是幼兒班的水平,要走的路還會非常長。
借用2007年看幾部電影的感想:雖然“兄弟不可靠、組織不可靠、男人女人不可靠”,但最后“幫你的還是你的兄弟,給你正名的還是你的組織”。
SpringSide簡介
SpringSide是什么,字面意思正如他們網(wǎng)站上的名稱:“春天的傍邊”,是“暖冬”還“初夏”呢?在我看來都是,也都不是。
下面我們直接看SpringSide的官方網(wǎng)站中關(guān)于SpringSide的介紹:
SpringSide--Pragmatic Enterprise Application KickStart and Common Library Stack,這么長的一個名字下來,不用解釋大家都知道是做什么的了----以Spring Framework為core,提供一個Pragmatic的企業(yè)應(yīng)用開發(fā)基礎(chǔ)以及企業(yè)應(yīng)用中各主題的最佳實踐展示。
愿景:為使用Spring框架的開發(fā)者提供一個非Demo版的復(fù)雜、正式而體現(xiàn)最佳使用實踐的參照系統(tǒng)。為JavaEEer必須面對的問題提供合乎Pragmatic原則的解決方案。
SpringSide的四個部分--
Springside-Bookstore: 一個Full Feature的書店示例,兼有書店前臺和后臺管理,作為典型企業(yè)應(yīng)用的微縮版。
SpringSide-Core :SpringSide封裝的核心代碼。
SpringSide-Templates: 讓用戶可以快速復(fù)制粘貼構(gòu)建出自己應(yīng)用的代碼模版,分Application與Plugins兩部分。
SpringSide-Generator: 自動整合SpringSide-Application/Plugins生成項目,生成CRUD代碼的Eclipse Plugins 和Ant 腳本。
SpringSide涉及了很多當(dāng)前流行的JavaEE技術(shù),并有機(jī)地把這些技術(shù)應(yīng)用有機(jī)地整合起來,教您如何解決企業(yè)應(yīng)用開發(fā)中會面臨的各種問題,比如持久化、Web Service、安全等等。
從1.0到2.0再到現(xiàn)在正在開發(fā)中3.0,SpringSide帶給了我們一份又一份的技術(shù)大餐。讓很多渴望學(xué)術(shù)或被迫學(xué)習(xí)的程序員們能夠快速學(xué)會構(gòu)建符合企業(yè)最佳實踐的JavaEE應(yīng)用。我有一個朋友的朋友的朋友的表弟的網(wǎng)友就曾經(jīng)用SpringSide那個Bookstore,界面文字換一換變成一個“專業(yè)”的電子商務(wù)應(yīng)用銷售給客戶。
SpringSide的靈魂
然而,SpringSide的靈魂決不是Spring。SpringSide的靈魂所在,是他的主創(chuàng)人江南白衣,一個來自江南經(jīng)常穿著白衣服的程序俠客。2007年在北京跟江南白衣見了一面,跟他的交流給我留下了比較深的印象,也讓我發(fā)現(xiàn)了SpringSide的靈魂所在。
由于SpringSide涉及到很多的技術(shù),比如1.0里面就涉及了Spring2、Hibernate 3 、JSP2.0、XFire 、Acegi 、Eclipse BIRT 2 、JBoss Rules 3 、JBpm 、ActiveMQ、Quartz、DWR、Dojo 、JMaki 、Compass 、Groovy 、Commons Validator 、SiteMesh 、OSCache , Ehcache、ExtremeTable、Log4j 、Ant、Maven2。
對于一個普通的程序員,如果他把上面這些框架或工具的用戶手冊看一遍都要花不少的時間。更何況SpringSide要把他們最好的地方充分發(fā)揮出來,有機(jī)的整合到一起,形成一個骨架應(yīng)用,這也就注定了SpringSide團(tuán)隊需要充分掌握這些技術(shù),不但是使用方法,還要針對同類框架及工具進(jìn)行深入的了解及對比,甚至有的時候還需要擴(kuò)展,因此這是一個非常具有挑戰(zhàn)性的事,是一個人很難完成的事。然而,SpringSide確實做到了,并發(fā)布了1.0及2.0。而且大多數(shù)都是由江南白衣一人所完成,很多技術(shù)一直在升級,比如Spring2升到了Spring2.5、XFire變成了CFX、Struts變成了webwork,面對這些升級,江南白衣一直在跟進(jìn),并不斷把學(xué)習(xí)研究的成果分享給大家。
以前在
《中國java開源界最可愛的人們》中說過,江南白衣在技術(shù)是一個天才人物,他不但年輕,而且好學(xué),并且學(xué)得很快,并且文彩很不錯,又具有開源精神,是愿意做事,又能做事的人。可以說,在SpringSide團(tuán)隊里,從學(xué)習(xí)能力及奉獻(xiàn)精神上,可能沒有一個能趕得上江南白衣。因此你就不難想象為什么大多數(shù)人想?yún)⑴c這個項目的人們一直都只能在項目中扮演著學(xué)習(xí)、打雜或者是建議者的角色,曾經(jīng)貢獻(xiàn)的源碼也只能放到了系統(tǒng)回收站中永久封存。
可以這么說,SpringSide缺少什么都可以,就算Spring沒有了也無所謂,但是就不能缺江南白衣,這一點可以從SpringSide2007下半年的表現(xiàn)得到印證,同時也充分證明黎叔“二十一世紀(jì)最貴的是人才”的決論。由于有了江南這個靈魂人物的存在,使得SpringSide非常具有偶像特質(zhì)。
SpringSide的不足
由于“為JavaEEer必須面對的問題提供合乎Pragmatic原則的S解決方案”這樣的愿景也決定了SpringSide團(tuán)隊奮斗之路的漫長。因為隨著JavaEE各項技術(shù)的發(fā)展,每一年都會有可以用來解決企業(yè)級應(yīng)用的新技術(shù)或方案出現(xiàn),而SpringSide要做的,就是不斷融入這些技術(shù),不斷圍繞著他的主人Spring并肩前進(jìn)。因此,SpringSide的名字注定了他只能做而且也一直做著隨波逐流的事。
在每一年的奧斯卡大獎中,我們都知道除了有最佳男女主角以外,還有最佳男女配角。一個一開始就把自己定義為Side,就好比一個名叫“斯瓦辛格配角”的美女演員,當(dāng)“斯瓦辛格”在演電影的時候,她可以跟著捧奧斯卡的最佳配角獎;當(dāng)“斯瓦辛格”當(dāng)從政當(dāng)州長后,她可以跟著當(dāng)秘書,只要主人不死,則這個配角則永遠(yuǎn)在。
SpringSide的不足其實是很明顯的,首先在軟件界,沒有真正的最佳實踐,各種技術(shù)都是可選的,一個看似笨拙的東西,只要跟上一個搭檔,本來是缺點也會得到彌補(bǔ),比如EJB之于Spring,對于一個企業(yè)來說,現(xiàn)前最佳的肯定就是大家最熟悉而且又能解決問題的東西。
因此,相對于SpringSide,AppFuse在這一方面就要聰明得多,沒有最佳的實踐,你可以自由選擇最熟悉的技術(shù)構(gòu)架組合,開始你的企業(yè)實用。
由于為SpringSide這個項目貢獻(xiàn)源碼的人越來越少,因為有能力貢獻(xiàn)源碼而且也愿意貢獻(xiàn)源碼的人畢竟在國內(nèi)越來越少,導(dǎo)致這個項目存在了不少限制,因此一個人的能力肯定是有限的,更何況這個項目的定位本身具有非常大的挑戰(zhàn)性。
雖然已經(jīng)形成了江南、CAC、差沙等組成的核心團(tuán)隊,但代碼及文檔產(chǎn)出上卻基本上仍然是一個人;代碼是開源項目的生命所在,而這樣的項目要做好,要做成中國的AppFuse決定了這是一個人不可能完成的任務(wù),因此離成功就會很遠(yuǎn)。
SpringSide經(jīng)常會處于迷茫的階段,這不,在SpringSide3里,江南又為是選擇Struts1還是Struts2還是SpringMVC迷茫了不少時間。因為整個JavaEE的世界就讓人很迷茫,好的東西太多,可選擇的東西太多,導(dǎo)致了這種迷茫的出現(xiàn)。
SpringSide現(xiàn)在的水平要想得到開源界大腕的正式認(rèn)可,這是非常難的,比如你可以看到國外一些知名開源項目的官方文檔中提到Huihoo的JFox、但你有看到提到SpringSide的嗎?因為這樣的應(yīng)用骨架每一個企業(yè)都有自己的,而Spring也不太會過多的關(guān)注一直扮演著他Side、Left或Right的其它角色,因為他們自己的示例里面就已經(jīng)有了不少關(guān)于這些的東西。SpringSide里面用的每一種技術(shù)及框架都不是無可選擇的,而根據(jù)個人喜好就支持某一種框架而放棄另一種框架,這難免會給新手們傳遞錯誤的信:“xx就是比xx好,你看springside都用了”。
SpringSide不善于合作,比如國內(nèi)已經(jīng)有很多優(yōu)秀的開源項目或框架出現(xiàn),比如operamasks、JFox、JDon、easyjweb等,通過最近的深入研究,我發(fā)現(xiàn)他們都很不錯。但在springside項目及文檔里,沒有一點與這些開源項目相關(guān)的,要想讓SpringSide更具有生命力,從一個從屬角色變?yōu)槟茏约簺Q定自己的命運甚至變成真正的主角,那么就應(yīng)該充分與國內(nèi)的開源項目合作,加入對這些國內(nèi)開源項目的支持。
借用2007年看幾部電影的感想:雖然“兄弟不可靠、組織不可靠、男人女人不可靠”,但最后“幫你的還是你的兄弟,給你正名的還是你的組織”。
SpringSide的未來
只要江南在行動,又可以為我們帶來很多的東西。江南白衣的回歸讓SpringSide又開始有了活力,在Spring3的藍(lán)圖及日志中我們可以看到,SpringSide已經(jīng)開始行動,又將會引入當(dāng)前一些比較流行的技術(shù)及框架應(yīng)用,比如ExtJS、Struts2、RESTfull Service等,給了我們很多的期待。
SpringSide的未來會怎樣,是永遠(yuǎn)站在傍邊還是會走到中間,讓我們持目以待。期望有更多的人參與到SpringSide中來,貢獻(xiàn)出你的代碼,只有這樣SpringSide的愿景才會更早實現(xiàn)。
版權(quán)聲明:本文版權(quán)由Blogjava的小雨開源所有,受法律保護(hù)。歡迎轉(zhuǎn)載,轉(zhuǎn)載請保留作者版權(quán)聲明及連接。