“J-Hi”Java開源平臺的生力軍
原創
張昊
J-Hi快速開發平臺團隊核心成員,平臺項目的主要發起者與組織者。十多年來一直從事于J2EE企業級應用開發及項目管理工作,對于軟件實現有自己一套獨特的理解。熱衷于設計模式、軟件架構及項目管理方面的研究,對于目前主流的java開源框架均有深入了解。希望J-Hi這個開源平臺也能象那些主流開源框架一樣在中國開花結果,為中國的開源事業盡自己的一份綿薄之力。他目前主要的精力都放到平臺的推廣上。他喜歡看哲學與宗教方面的書籍,如果您有這方面的愛好也可以與他聯系,他的電子郵箱為:hao.zhang.hi@gmail.com
51CTO: 您是什么時候接觸到J-Hi這項技術的,基于什么樣的目的呢?
張昊:我是J-Hi項目的發啟者, 從2005年末時我就開始做這個項目了。當時它還只是大家為了探索如何使程序開發更好、更快速、易于管理而又不影響開發人員的編程習慣的一個構想,當初它還只是個底層框架或開發工具,核心團隊成員就是用這個小小的底層框架做了很多項目,從未想過會將它開源出來(因為我們覺得做得還不夠好,擔心開源后會被同行笑話)。后來隨著所接項目的逐漸增多,J-Hi所涉足的行業領域也不斷廣闊,因此我們也不得不適應需求的變化不斷的為它加入新的功能,慢慢的它變得越來越強壯。突然有一天有人提議我們將它開源吧,大家這才為平臺的開源做準備。從我們今年1月14日開始推廣以來,有很多的愛好者加到其中,這樣我和我的團隊感到很欣慰,覺得我們努力得到了大家的認可!
51CTO :J-Hi這項技術有什么優點?是否已經在實踐中證實呢?
張昊:J-Hi這項技術主要有以下幾個幾優點
快速的按需動態搭建
目前平臺支持的框架有:webwork、struts2、spring、hibernate、ibatis2、ibatis3,對于這些框架您可以通過可視化(J-HI Studio,eclipse插件)的方式隨意組合,通過工程創建向導,自動化的按照你所選擇的框架快速的動態搭建起開發工程。我們之所以將J-Hi做成多框架動態搭建,主要是考慮到不同企業的開發團隊對技術的傾向性會有很大差別,比如對于ORM有的人就喜歡hibernate,而有的人就覺得hibernate太強硬,喜歡用半自動化的ibatis。J-Hi基于這個目的為開發者提供了更多的可選擇性。在此要注意對于平臺多框架的集成并不象一般意思上的集成(即幾個框架拼接在一起就可以象appfuse一樣),因為平臺的集成還要包括很多通用業務并且與數據庫表是有關系的(一般搭建多框架是沒有業務的所有的東西都要由你親自去開發,而平臺會有很多的業務已經預留在平臺中)。舉個例子:比如安全管理,這是平臺的一個通用業務包括角色、權限等。在切換到不同的框架比如struts或webwork;hibernate或ibatis時,平臺的底層要自動的適應這種變化,這是有一定的創新點的J。當然我們以后還會集成更多、更優秀的框架在平臺之中,比如SpringMVC,SpringJDBC等等,在數據庫端我們也會再多支持一些數據庫,當然集成數據庫也不是傳統意義上的只是一個數據庫連接,而是針對不同的數據庫差異會做不同的方言,不同的數據庫腳本還要有相應的生成模板等等。
完整而系統的生成方案
代碼生成或生成器這實際上在十年前就已經有的東西,無論是實現原理還是具體的工具都不是新鮮事物。J-Hi之所以將代碼生成也算作自己的特色,是因為它的完整性與系統性。從完整性來看,J-Hi的生成是一套含蓋從數據庫底層一直到頁面端全部的解決方案,包括數據庫表;權限、菜單、多語言等相關基礎數據;java類文件;JSP、js文件;相關配置文件等等,因此保證了生成即可運行,從單元體上來看生成文件是完整的,是可獨立運行的。從系統性來看,生成的文件是隨著你選擇的框架不同而不同的,生成的基礎是隨著框架與數據庫的差異而隨需變化,系統的解決了生成器的僵硬性,從而靈活的適應開發環境。因此J-Hi的生成方案是系統的,是適應不同框架與數據庫的生成方案的。
組件化
J-Hi把組件劃分為四類,技術組件、實體組件、業務組件與系統組件,具體內容請參見平臺組件化。J-Hi就是從實際的項目開發過程中誕生與完善起來的,它把主要把關注放在如何解決快速開發與降低成的問題上。如果從一個項目的整個生命期來看,實際上開發只占了總項目的成本的一小部分,然后就是這一小部分還是有大量的成本損耗。比如在管理上,人員變動對開發的影響;在技術偏向性上,增加了開發人員的學習曲線從而使成本提高;在功能的復用性上,在項目開發過程會發現每次都會做一些稍有差異但實際是功能重疊的東西;在具體coding過程中,會寫一樣模式化的但又不得不寫的東西(如POJO等)。J-Hi就是為了解決上述問題而產生的。當然J-Hi還有弱小,以后我們還不斷的完善,使它越來越強大。
51CTO: 哪些領域能運用J-Hi這項技術,您能有一些好的建議么?
張昊:我們用J-Hi做過很多領域,互聯網我們做過電子商務的網站,物聯網我們做過RFID的票務管理系統,傳統行業的ERP、進銷存、OA這些我們都有做過。J-Hi開發平臺實際上它是不拘泥于某種技術或某個領域的開發工具。我們拿sturts舉例來說,有人用它做互聯網,有人用它做CMS,也可能有人用它做物聯網的表現層,而它本身是中立的它只是個工具不受限于具體的領域。J-Hi也是一樣
51CTO: 對于剛剛接觸J-Hi這項技術的人群,有什么好的學習建議么?
張昊:平臺類的產品對于使用它的開發者來說都有同樣的特點:使聰明人更加聰明,使懶惰的人更加懶惰(從而失去了思想)。我希望所有接觸J-Hi的愛好者都能成為前者,而不是后者。因為在J-Hi的設計之初間中的一個理念就是,讓它成為希望了解主流框架人一個學習工具。從這一點來看,J-Hi也跟Appfuse很象,但要比Appfuse更完善,更全面,更貼進去業務。
采訪總結:
下面給出張昊先生博客鏈接:http://www.blogjava.net/hao-zhang-hi/MyPosts.html
【編輯推薦】