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