足球资料库数据/孙祥/nba五佳球/足球直播哪个平台好 - cctv5今日现场直播

首頁 > 知識庫 > 正文

Tiny開源框架創始人羅果:開源初衷是對思想的驗證(1)
2016-02-20 19:33:22   來源: 孫淑娟 51CTO    評論:0 點擊:

羅果是Tiny開源框架創始人,主要關注技術領域為J2EE及應用開發平臺,涉獵廣泛。他在模塊化、元數據、模板引擎、數據庫分區分表、SOA等領域有較深入實踐,吃過N多的虧,上過N多的當,當然也積累了N多的經驗。

【51CTO.com獨家特稿】嘉賓介紹

羅果是Tiny開源框架創始人,主要關注技術領域為J2EE及應用開發平臺,涉獵廣泛。他在模塊化、元數據、模板引擎、數據庫分區分表、SOA等領域有較深入實踐,吃過N多的虧,上過N多的當,當然也積累了N多的經驗。

\

在業余時間,羅果熱心于參與開源軟件相關工作,在進行軟件開源的同時,也編寫了大量的技術博客,從問題、原理、實踐方面進行了深入淺出的講解。

他經常掛在嘴邊一句話是:好的軟件設計是“品”出來的。信奉好的軟件架構一定是簡單的。

下面是羅果先生回答51CTO小編的幾個問題,我們整理出來以饗讀者。

1.開發TinyFramework的初衷是什么?

我在開發TinyFramework之前,也在公司的體制下主導了開發平臺的開發,但是由于在公司體制下,需要完全按照公司的要求和規范來開發,實際上就要顧及各方面的平衡,而這些平衡可能會對一個框架產生嚴重的傷害。而我期望做一個各方面比較均衡的開發平臺,于是就從各種小的專題性驗證開始,比如:流程化編程、模塊化設計、數據庫分區分表等等一一進行驗證,當驗證的范圍越來越大,涵蓋的領域越來越多的時候,才真正開始決定做一個開源框架。

因此,追本溯源,最初的初衷就是對自己思想的一些驗證

2.前段時間TinyFramework剛推出 2.0 版本,新的版本里有哪些新的特性?在一年的開發中,有哪些值得記錄的故事?

TinyFramework的立意是企業級的開發平臺,因此在方法論、設計理念、開發體系、設計原則、生態圈、模塊化、熱部署、水平擴展、元數據等非功能性要求方面做了大量的探索和實踐。

當然在功能性需求方面,也有非常多的突破,由于Tiny框架涵蓋的功能太多,因此只拿幾個有代表性的功能來簡單介紹一下:

TinyDBRouter(數據庫分區分表):基于JDBC層實現,可以支持SQL92規范下的各種數據庫進行透明的數據庫分區、分表讀寫分離等水平擴展。

TinyTemplate(模板引擎):一個類 Velocity的模板引擎,但是功能更強大,添加了許多Velocity不支持的特性,運行速率大致是Velocity的4倍。

TinySqlDSL(數據庫開發框架):基于領域查詢語言方式的數據庫開發框架,可以在Java中用類似于寫SQL的方式來進行數據庫編程,比較好的解決了數據庫與Java兩層之間結合時的問題(要么兩者是分離的如iBatis,要么引入一種全新的語言如Hibernate的HSQL,要么就是在Java中進行大量的SQL拼接)。當然數據庫的開發方案有許多種解,各種解有各種解的優缺點,DSL方式也是一種實現方案,有其自己的優缺點。

TinyUI(界面引擎):主要解決WEB應用開發中的模塊化和JS、CSS及各種靜態資源管理的問題,主要解決靜態資源Jar包化、CSS 合并打包壓縮、JS合并打包壓縮,UI模塊之間的依賴關系等體系性問題。

TinyStudio(集成開發工具):提供了可視化界面設計,可視化流程編排、模板引擎編輯器、代碼生成器,服務編輯器、元數據編輯器、數據庫設計器。

3.你平常是怎樣維護TinyFramework項目和社區的?

在早期,我們還是默默無聞的,因為我們不想在框架還是一個半成品的時候就拿出來,直到我們已經開發完畢并且在項目組內進行了充分驗證的時候才真正地在社區或相關網站進行發布。我們大致是從以下幾個角度維護項目和社區的:

代碼托管在開源中國的git倉庫:https://git.oschina.net/tinyframework/tiny。目前有294 watches,453 stars,361 forks。

構建Tiny文檔WiKi:http://www.tinygroup.org/confluence/display/TF。Tiny文檔總共有900多頁,涵蓋了設計、實現、示例、實踐等各方面,目前日訪問量在1500左右。

創建Tiny社區:http://bbs.tinygroup.org。Tiny社區是新推出的專注入Tiny方面的交流與溝通平臺。

創建Tiny交流QQ群:228977971。QQ群采取比較嚴格的管理方式,對技術純潔性保持良好。目前該群已有用戶1000多人。

通過上面的一些與項目相關的社區、博客、QQ群等形式,我們與廣大Java框架、Tiny愛好者進行了充分的互動與交流。不管是學習者、參與者、交流者、使用者,希望大家都有收獲。同時,在這個過程中,我們也受益匪淺,對開源項目也有了更深入的理解。

4.TinyFramework有哪些優點和特點?有沒有哪些特殊的或者創新的技術運用?

設計理念決定了設計的目標

使用靈活:可以整個使用它,也可以只用它的一個或幾個部分。Tiny構建者認為,一個完整的框架可能需要由許多個部分組成,但是對于實際應用的用戶來說,它可能只需要其中的一部分功能。框架一定要有這種能力,可以由使用者進行菜單式使用,避免只要用一點點功能,就要引入許多其他的功能。

學習成本低、上手容易:框架的學習成本必須非常低,才可以讓使用者更容易上手,避免由于學習難度大而導致的學習曲線太陡、太長。

保持核心的穩定性:Tiny框架要求在穩定、安全要求非常高的應用環境中使用,因此其穩定性就是框架構建者首要思考的目標,核心部分只使用經過充分驗證及廣泛應用的第三方包。

資產的可積累性:只有易于知識積累,才可以真正做到越用越強。

設計原則解決目標沖突時的解決策略

約定優于配置原則-COC

不要重復你自己原則-DRY

減法原則 :減法原則是我們自己提出的,意思就是給程序員做減法。

模塊化原則:模塊化對于軟件開發過程中的開發、高度、集成、發布、維護過程中所起的作用是節省可能要花費的大成本。因此,我們提出了Business Unit的概念,使得與模塊相關的所有內容可以放在一塊。

自動組裝原則:在整個Tiny框架的構建過程中,都非常注重集成過程的自動組裝,要求做到用戶使用起來不用管,由框架自動集成。

下級服從上級原則:Tiny框架從框架層級做了限制,使得下級必須服務上級。

單一原則:通過單一原則進行強制性的約束,使得一個模塊只解決單一模塊應該解決的問題,從而避免不同的問題放在一起解決所導致的混合問題,同時也避免了不恰當的依賴及模板引用。

集中配置原則:我們對Tiny框架配置做了大量的工作,一個是COC方式,如果您不進行配置,可以采用系統默認的值;一個是集中原則,把需要人工配置的內容集中起來做統一配置;一個是對不需要人工干預的配置,那就集成在Jar包中,作為發布者發布項的一部分。

相關熱詞搜索:Tiny 框架 開源

上一篇:在Ubuntu上配置高性能的HHVM環境(1)
下一篇:IT運維外包不是甩包袱

分享到: 收藏