專訪:Java框架SimpleFramework開發(fā)團(tuán)隊創(chuàng)始人
陳侃先生與家人
陳侃,是simpleframework.net 的首席架構(gòu)師和共同創(chuàng)始人。在2001年秋季全面轉(zhuǎn)向?qū)ava,并對Java情有獨(dú)鐘,發(fā)起了simpleframework開源項目,并參與了許多前沿技術(shù)的開發(fā)(如 工作流、AOP、腳本語言和Web等),技術(shù)之外,還有一手飛車絕技,酷愛打羽毛球。
51CTO:向我們各位網(wǎng)友介紹一下Simpleframework框架吧。
陳侃:Simple最早來自工作流Web客戶端的自定義表單功能。當(dāng)時曾考慮過采用標(biāo)簽庫或XForm來實現(xiàn),為避免表單定義和JSP語法的混搭,決定采用XML來描述表單的元信息,同時為更好的兼容標(biāo)簽庫和Struts等基于Servlet的技術(shù),最終選用了Filter攔截響應(yīng)的HTML流,此即Simple 的起源。
◆Simple V1僅處理了表單,在使用過程中逐步發(fā)現(xiàn)其實完全有能力處理整個請求頁面,如同樣用分離的XML去描述相關(guān)的業(yè)務(wù),會極大減輕開發(fā)工作,更重要的是,可以定義一套基于XML描述的組件規(guī)范,從而實現(xiàn)業(yè)務(wù)相關(guān)的代碼級積累,于是誕生了Simple V2?;蛟S有人會問:Simple V2會不會和Struts一樣呢?無需擔(dān)心:
◆Simple V2面向組件,而Struts面向請求,性質(zhì)不同。
◆Simple V2以XML描述(或聲明)組件,學(xué)習(xí)曲線低。
◆Simple V2不僅簡化客戶端,而且也大大簡化服務(wù)器端。
◆ Simple V2面向業(yè)務(wù)的組件庫可避免大部分的重復(fù)開發(fā)。
◆SimpleV2解析的基礎(chǔ)是HTML而非標(biāo)簽庫,兼容性更強(qiáng)。
◆ Simple V2大幅減少代碼量,降低了系統(tǒng)構(gòu)建的復(fù)雜度,更高效和安全。
SimpleV3 解決了Simple V2以下幾個缺陷:
◆ 組件不規(guī)范: Simple V2雖具備組件思想,但組件定義的不開放,以及Simple團(tuán)隊能開發(fā)組件,而其他開發(fā)人員不能快速上手,無統(tǒng)一規(guī)范。
◆ 組件無復(fù)合:Simple V2高級組件實現(xiàn)過于復(fù)雜,一些本應(yīng)通過組件間的組合就可形成的組件,在Simple V2中卻自成體系,無法繼承和復(fù)合。
◆客戶端弱勢:隨著Web技術(shù)的發(fā)展,尤為瀏覽器的提速,原本服務(wù)器要做的事,現(xiàn)很多已轉(zhuǎn)移到了客戶端
◆渲染方式單一:Simple V2的組件只提供Javascript一種渲染方式,而作為框架技術(shù),不應(yīng)該僅此一種方式。
◆數(shù)據(jù)訪問死板:Simple V2僅通過基于Spring JDBCTemplate的封裝實現(xiàn)數(shù)據(jù)訪問。
SimpleV3對數(shù)據(jù)訪問層進(jìn)行了優(yōu)化,實現(xiàn)目標(biāo)如下:
◆ 為組件訪問DB、Lucene、No-SQL提供一致的編程接口。
◆ Bean獲取提供更靈活的架構(gòu),諸如通過配置可選用基于數(shù)據(jù)庫、緩存,或分布式緩存的支撐方式。
◆ 數(shù)據(jù)訪問更高效,可滿足超大規(guī)模數(shù)據(jù)處理的業(yè)務(wù)需求。
SimpleFramework根據(jù)java應(yīng)用發(fā)展路線如下圖:
51CTO:在開發(fā)Simpleframework框架的過程中遇到過哪些挑戰(zhàn)和困難呢?怎么樣克服的?
陳侃:我們與很多開發(fā)人員一樣,開始迷戀框架,迷戀框架設(shè)計的優(yōu)雅以及對于開發(fā)的便利。但現(xiàn)在更關(guān)注可以解決我的什么問題。
首先,初期的時候framework的設(shè)計在大部分都是猜測,剛開始的時候這些猜測大部分都很準(zhǔn),因為這個時候距離是framework的設(shè)計者可以看到了,隨著項目時間的增長,在加上中間需求的一些變更,這時候的位置已經(jīng)不是framework的設(shè)計者所能看到的距離了。這個時候framework對于開發(fā)限制開始突出,而開發(fā)人員礙于修改framework成本太高,很多時候被framework所牽制。 所以我們提出基于組件的開發(fā)模式。
其次,framework的設(shè)計思想也會隨著項目人員的進(jìn)進(jìn)出出,項目進(jìn)度的壓力,大家都沒有實踐仔細(xì)的去看framework。framwork的設(shè)計思想變的不再清晰,大家開始按照自己的對于framework的理解來寫代碼,后來著更不理解framework,會照那些前面未必正確的理解的代碼來書寫。
依靠團(tuán)隊的力量
Simple團(tuán)隊不僅是在維護(hù)一份源代碼,更重要的是維護(hù)這個項目所承載的知識。而這些知識不是只記在某些關(guān)鍵人物的腦中,我們團(tuán)隊成員都是每周進(jìn)行溝通,分享,交流。
51CTO:Simpleframework框架相比于其他框架,優(yōu)點(diǎn)在哪里?或者說著重點(diǎn)在哪里?
陳侃:先說下Simpleframework的優(yōu)點(diǎn):
由于其貫穿始終的核心理念是“組件構(gòu)建,業(yè)務(wù)復(fù)用,資源積累”,決定了有以下特點(diǎn)。
◆全程覆蓋:具有可支撐Web應(yīng)用開發(fā)所需的成體系各類組件。
◆ 組件規(guī)范:具有規(guī)范的組件接口定義,基于同一規(guī)范實現(xiàn)組件。
◆ 業(yè)務(wù)組件化:應(yīng)用或模塊級可復(fù)用的組件化封裝。
◆可持續(xù)積累:應(yīng)用資源及業(yè)務(wù)組件的可持續(xù)積累。
◆組件化開發(fā):開箱即用和全程覆蓋的配置化組件。
◆ HTTP原生態(tài):保留HTML/HTTP及請求/響應(yīng)的原生態(tài)。
◆ 無碼AJAX應(yīng)用:內(nèi)置AJAX引擎用戶少用或不用Javascript。
◆ 資源繼承:對既有應(yīng)用資源的有效整合及平滑遷移。
◆有效補(bǔ)充:對現(xiàn)有Web框架或技術(shù)的非侵入式補(bǔ)充。
◆開放架構(gòu):開放及隨需擴(kuò)展的組件體系架構(gòu)。
◆無縫兼容:對現(xiàn)有Web及新技術(shù)的無縫兼容。
◆ 簡單實用:組件化配置化的Web應(yīng)用開發(fā)過程。
從另一方面來看: 我們以自身及相關(guān)技術(shù)為主線,以SNS為載體,基于SimpleFramework組件實現(xiàn)的官方技術(shù)社區(qū)。在企業(yè)應(yīng)用方面提供完全組件化,便于第三方擴(kuò)展和整合應(yīng)用。Simpleframework組合應(yīng)用方式,融交流互動和內(nèi)容發(fā)布于一體,采用人性化的操作模式和成熟的技術(shù)(CSS3/HTML5)。
51CTO:: Simpleframework框架今后的發(fā)展方向是什么呢?有哪些功能需要加強(qiáng)?
陳侃:中國的互聯(lián)網(wǎng)從門戶時代,到Wiki、博客等為代表的Web2.0時代,再到當(dāng)今的SNS時代,不僅改變著人們交流和溝通方式,也改變著信息的傳播渠道和速度,既將網(wǎng)絡(luò)媒介從計算機(jī)延伸到了手機(jī)等客戶端,也將人們的日常生活向互聯(lián)網(wǎng)延伸,甚至使得內(nèi)容及其形式和質(zhì)量都走向高速膨脹的時代,對互聯(lián)網(wǎng)和普通網(wǎng)民的影響不僅是空前,而且絕后!
伴隨云計算的浪潮,SaaS作為一種新型的軟件應(yīng)用模式,必將對企業(yè)的信息化產(chǎn)生重大影響。其未來的發(fā)展從標(biāo)準(zhǔn)化到行業(yè)化再至大眾化,SaaS的服務(wù)內(nèi)容不僅面向企業(yè),也提供面向個人的個性化服務(wù)產(chǎn)品,且逐步融入SNS元素,即SaaS與SNS的相互滲透,逐步從以應(yīng)用為主線發(fā)展而為以應(yīng)用為目標(biāo)、以“人”為核心、以交流-溝通-協(xié)作為承載的融合式發(fā)展道路。
我們進(jìn)半年的工作主要完成以下幾點(diǎn)工作。
◆完善現(xiàn)有的SNS組件。
◆逐步開發(fā)新的SNS組件。
◆與個性化應(yīng)用相結(jié)合,力求創(chuàng)新。
51CTO::您對國內(nèi)開源項目的未來有什么看法?
陳侃:在整個開源發(fā)展過程中,開源是一個大方向,大家現(xiàn)在都看到了,可能幾年之前大家在想,這會不會成為一個將來呢,會不會有什么樣的問題存在呢?現(xiàn)在大家都看到這是一個大方向,只要用心把產(chǎn)品做好,開源在國內(nèi)還是很有機(jī)會的。
Smpleframework團(tuán)隊成員與團(tuán)隊形成的過程的介紹
我們的團(tuán)隊成員共5人。
陳侃,是simpleframework.net 的首席架構(gòu)師和共同創(chuàng)始人。在2001年秋季全面轉(zhuǎn)向?qū)ava,并對Java情有獨(dú)鐘,發(fā)起了simpleframework開源項目,并參與了許多前沿技術(shù)的開發(fā)(如工作流、AOP、腳本語言和Web等),技術(shù)之外,還有一手飛車絕技,酷愛打羽毛球。
趙貴根,系統(tǒng)過程博士,系統(tǒng)架構(gòu)師,團(tuán)隊的精神領(lǐng)袖。為團(tuán)隊把控工作重點(diǎn)、難點(diǎn)和方向,曾參與過大型的HIS系統(tǒng)、電子病歷、零售企業(yè)POS系統(tǒng)、中小企業(yè)ERP系統(tǒng)、電力OA系統(tǒng)、國家電網(wǎng)電能采集系統(tǒng)、聯(lián)通資源管理系統(tǒng)的分析設(shè)計和建設(shè)過程。目前正致力于SimpleFramework技術(shù)與思想的推廣。
劉彬,目前從事企業(yè)信息化方面的研發(fā)及架構(gòu)工作,有Java大型開發(fā)項目經(jīng)驗,興趣的技術(shù)領(lǐng)域是SOA、Workflow、J2EE編程,Simpleframework的開源項目建設(shè),并致力于Simpleframework問題的解決和技術(shù)推廣。
金牛,中科院碩士,多年從事安全領(lǐng)域的研究和技術(shù)工作。目前致力于Simple的宣傳和推廣工作。愛好打球、登山、游泳。
夫子,對技術(shù)非常癡迷,熱愛開源事業(yè),多年的企業(yè)架構(gòu)經(jīng)驗,精通數(shù)據(jù)庫的優(yōu)化與大數(shù)據(jù)量的處理。
團(tuán)隊形成的過程比較簡單了,大家在理念上一致并加入組織。關(guān)鍵在于大家在基于現(xiàn)有框架處理問題的時候,在解決方案與框架方面有共同的理念與認(rèn)識,更希望對更多有相同困惑的人可以提供幫助,就形成了SimpleFramework團(tuán)隊。