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

















 
 
 


 
 
 
 