Wabacus是一個(gè)JavaEE快速開發(fā)框架,采用面向聲明的開發(fā)模式,可以不用編程或極少編程即可實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)展示、數(shù)據(jù)編輯、表單處理等功能,將JavaEE的開發(fā)效率提高5倍以上,代碼減少60%以上。 為了使大家對(duì)Wabacus框架有一個(gè)全面的了解,我們采訪了該框架的作者。 項(xiàng)目地址:http://code.google.com/p/wabacus 論壇地址:http://wabacus./ 目前該框架最新穩(wěn)定版本為3.4,你可以通過以下演示地址來了解: 演示地址1 演示地址2 演示地址3 如果你在部署和使用Wabacus上有任何問題,可以與作者聯(lián)系(QQ:349446658),或進(jìn)入QQ 群:203873792、94291972、35530847進(jìn)行討論,還可以進(jìn)入Wabacus論壇進(jìn)行提問。
歡迎大家推薦更多開源項(xiàng)目給我們,支持中國的開源項(xiàng)目發(fā)展,如果您和您的團(tuán)隊(duì)希望展示你的創(chuàng)業(yè)理念和有趣之處,或者有朋友在創(chuàng)造這樣的價(jià)值,請(qǐng)聯(lián)系我們,發(fā)信到blog@csdn.net即可。 1、Wabacus是什么? Wabacus是一個(gè)JavaEE快速開發(fā)框架,能快速實(shí)現(xiàn)完整的JavaEE功能,包括前臺(tái)后臺(tái),因此與常見的框架jQuery、Extjs、Struts、Spring、Hibernate等不同,它們均只提供某一個(gè)方面的解決方案,開發(fā)人員必須組合使用它們才能完成JavaEE功能的開發(fā)。 另外,Wabacus與國內(nèi)的很多快速開發(fā)平臺(tái)也不同,國內(nèi)很多快速開發(fā)平臺(tái)只是對(duì)常用功能進(jìn)行了一下封裝,或者對(duì)簡單基礎(chǔ)代碼進(jìn)行了一下自動(dòng)生成,并沒有在開發(fā)思想這個(gè)層次上有什么改進(jìn),這種改變只能說是“物理變化”,而不是“化學(xué)變化”。 Wabacus則是在開發(fā)思想這個(gè)層次上進(jìn)行改進(jìn),最大限度將開發(fā)人員從考慮“如何做”中解放出來,只需考慮做什么即可。因此與傳統(tǒng)開發(fā)思想相比,相當(dāng)于發(fā)生了“化學(xué)變化”,能成倍地提高JavaEE開發(fā)效率。 2、Wabacus所適用的領(lǐng)域,提供了哪些功能? Wabacus是一個(gè)JavaEE快速開發(fā)框架,能適用于任意類型的JavaEE項(xiàng)目、產(chǎn)品及應(yīng)用。不過由于前臺(tái)展示采用的是JS/CSS/HTML等,因此也只適用于B/S結(jié)構(gòu)的JavaEE項(xiàng)目,對(duì)于采用AWT/SWT等進(jìn)行前臺(tái)展示的C/S結(jié)構(gòu)的項(xiàng)目則不適用。 Wabacus框架不僅從開發(fā)思想層面給開發(fā)人員帶來了很大的好處,讓他們盡量從“如何做”中解放出來,而且對(duì)常用且很多是很復(fù)雜的功能提供了良好的支持,讓開發(fā)人員要開發(fā)這些功能時(shí)變得非常容易,只需簡單聲明即可,例如: 列過濾、列選擇、凍結(jié)行列標(biāo)題的報(bào)表、輸入聯(lián)想、文件上傳/下載、行/列分組報(bào)表、樹形表格、數(shù)據(jù)導(dǎo)入/導(dǎo)出、數(shù)據(jù)打印、交叉統(tǒng)計(jì)報(bào)表、主從報(bào)表、行排序等。 當(dāng)然,Wabacus框架給開發(fā)人員帶來的好處主要還是開發(fā)思想方面的根本改進(jìn),這個(gè)才是主要的,帶來的好處也是巨大的。 3、開發(fā)這個(gè)框架的初衷,它與其它框架相比有什么優(yōu)勢(shì)? 本人從事JavaEE開發(fā)與架構(gòu)將近9年的時(shí)間,后面大部分時(shí)間是負(fù)責(zé)公司各類項(xiàng)目、產(chǎn)品方面的架構(gòu)設(shè)計(jì),在這方面積累了較為豐富的經(jīng)驗(yàn),這個(gè)框架的思想也是多年架構(gòu)經(jīng)驗(yàn)的積累,用過在很多項(xiàng)目和產(chǎn)品中,取得了非常好的效果,凡是本人用這個(gè)思想設(shè)計(jì)的架構(gòu),在前期開發(fā)和后期維護(hù)方面都非常方便,新進(jìn)來的開發(fā)人員能快速上手,后期的各種維護(hù)改造工作也很容易。 印象比較深的就是用這個(gè)思想開發(fā)的一個(gè)大型網(wǎng)站項(xiàng)目,在開發(fā)時(shí),幾個(gè)開發(fā)人員快速地配置了幾百個(gè)數(shù)據(jù)展示功能,在后期維護(hù)差不多每年一次的改版中,這幾百個(gè)數(shù)據(jù)展示功能也是最容易和方便改的,只要改幾個(gè)JS/CSS文件以及少數(shù)的幾個(gè)系統(tǒng)級(jí)配置文件就可以對(duì)它們的顯示效果、顯示結(jié)構(gòu)進(jìn)行整體調(diào)整。因此在項(xiàng)目組和客戶方面都反映非常好。 正是基于這些項(xiàng)目、產(chǎn)品的成功實(shí)施經(jīng)驗(yàn),本人決定將這個(gè)思想轉(zhuǎn)化為一個(gè)成熟的框架,讓更多朋友受益,也改變一下國內(nèi)開源框架原創(chuàng)性比較少的局面(比如國外搞IOC、AOP、O/R Mapping等方面的框架,國內(nèi)很多朋友也是照著這些思想搞這些方面的框架,只是實(shí)現(xiàn)方式上進(jìn)行一些改變,沒有提出原創(chuàng)性的思想)。 關(guān)于和其它框架的比較,我認(rèn)為Wabacus最大的優(yōu)勢(shì)就是開發(fā)思想的改進(jìn),將開發(fā)人員由傳統(tǒng)的“面向過程”、“面向?qū)ο蟆彼枷胫修D(zhuǎn)入更容易、更高效的“面向聲明”的思想中,大幅提高開發(fā)效率和降低開發(fā)復(fù)雜度。 4、代碼減少60%,開發(fā)效率提升5倍以上,是如何實(shí)現(xiàn)的? 首先說明一下,這里說的“60%”、“5倍”都是一個(gè)概數(shù),不是一個(gè)精確值,因?yàn)殚_發(fā)效率不能像性能一樣,能通過工具準(zhǔn)確定量測(cè)試,就好比問“交流時(shí)說話比打字快多少倍?”一樣,我們也不能給出一個(gè)精確數(shù),因?yàn)榇蜃钟锌煊新?,說話的語速也有快有慢,沒辦法精確說一定快多少倍,但我們知道整體上要快好幾倍。 wabacus為什么能大幅減少代碼量,成倍提高開發(fā)效率呢?原因就是它采用“面向聲明”的開發(fā)思想,我們來介紹一下什么是“面向聲明”的開發(fā)思想: 所謂“聲明”,就是只要把要做的功能說出來,而不需開發(fā)人員考慮如何實(shí)現(xiàn),具體如何實(shí)現(xiàn)交給Wabacus來完成,就好比“視頻聊天”,只要把字說出來,而不需考慮如何寫出這些字,就能表達(dá)自己的意思,因此比“寫字聊天”、“打字聊天”的方式都要快很多倍,因?yàn)楹髢煞N方式都要考慮將字實(shí)現(xiàn)出來才能表達(dá)自己的意思,而傳統(tǒng)的開發(fā)思想就好比“寫字聊天”或“打字聊天”,要開發(fā)人員編寫大量的代碼將“字”實(shí)現(xiàn)出來。 使用wabacus開發(fā),不僅大幅提高了開發(fā)效率,而且對(duì)開發(fā)人員的要求也比較低,因?yàn)椴惶枰P(guān)注實(shí)現(xiàn),只需聲明,就好比“視頻聊天”一樣,不需考慮將字寫出來,因此文盲都能順利地交流。 其實(shí)面向聲明的開發(fā)思想也不是Wabacus獨(dú)創(chuàng),在很多框架中都有使用,而且都取得非常不錯(cuò)的效果。比如Spring,就是將對(duì)象的依賴關(guān)系做成可聲明,提高對(duì)象依賴的靈活性和可維護(hù)性;再比如EJB或Spring,提供聲明性事務(wù),提高了事務(wù)控制的靈活性,減低了開發(fā)難度等等。但是它們只是著眼某一個(gè)方面,做的不夠徹底,帶來的改善是局部的。而Wabacus框架在更大的范圍提供了聲明性編程,盡量將用戶的整體開發(fā)效率提到最高,所以它對(duì)JavaEE開發(fā)帶來的好處是立體的,全方位的。 5、Wabacus擴(kuò)展性如何? Wabacus做為一個(gè)框架,需要滿足各種復(fù)雜的場(chǎng)合,因此非常注重可擴(kuò)展性,也提供了非常靈活的擴(kuò)展接口,大體體現(xiàn)在如下方面:
6、Wabacus能否與其它框架共存在同一個(gè)項(xiàng)目中,比如在已有項(xiàng)目中加入Wabacus框架快速開發(fā)新功能? Wabacus前臺(tái)采用的是標(biāo)準(zhǔn)JS/CSS/HTML,后臺(tái)采用的是標(biāo)準(zhǔn)Java實(shí)現(xiàn),都沒有用到其它框架,從它依賴的第三方j(luò)ar包中可以看到,除了數(shù)據(jù)庫驅(qū)動(dòng)包,只有少數(shù)幾個(gè)第三方組件,因此不會(huì)與任何現(xiàn)有的框架有沖突,可以與它們(比如常用的SSH、SSI等)共存在一個(gè)項(xiàng)目中。 現(xiàn)在使用框架的朋友中,有很大一部分都是在老項(xiàng)目中用Wabacus開發(fā)新功能,而之前用其它框架開發(fā)的功能要么保持不變,要么逐步遷移,運(yùn)行時(shí)互不影響。 根據(jù)本人這么久的技術(shù)支持經(jīng)驗(yàn),很多朋友在用了Wabacus以后,雖然項(xiàng)目中可能還有其它框架,但有了新需求,第一時(shí)間想到的就是如何用Wabacus來實(shí)現(xiàn),盡量避開其它框架,因?yàn)橄啾绕渌蚣?,Wabacus的開發(fā)效率高太多,只有當(dāng)使用Wabacus不方便實(shí)現(xiàn)的時(shí)候,才會(huì)用其它框架開發(fā)。 7、Wabacus支持哪些數(shù)據(jù)庫類型? Wabacus內(nèi)置了對(duì)SQL Server、Oracle、MySQL、DB2四種常用數(shù)據(jù)庫的支持,每個(gè)數(shù)據(jù)庫類型對(duì)應(yīng)一個(gè)Provider類,比如Oracle數(shù)據(jù)庫的Provider類為:com.wabacus.config.database.type.Oracle,MySQL的Provider類為:com.wabacus.config.database.type.MySql等等,如果要新增對(duì)其它數(shù)據(jù)庫的支持,只要參照內(nèi)置的數(shù)據(jù)庫類型提供一個(gè)相應(yīng)的Provider類即可。 8、早期沒有完全開放源碼,是什么原因? Wabacus的源代碼開放是逐步的,在早期,只公開了80%左右的Java源碼,后面又開放了99%的源碼,現(xiàn)在已經(jīng)將所有Java源代碼開放了。 早期沒有開放所有源碼是沒有對(duì)所有朋友開放源碼,但對(duì)正在使用框架的朋友還是開放了他們想修改的任意源碼,也就是說他們想修改的源碼如果沒有在公開的80%或99%之中,他們是可以向我要的,我會(huì)發(fā)給他們,并教他們?nèi)绾胃?。這樣做的目的有兩個(gè):第一、鼓勵(lì)大家使用框架;第二:早期版本不夠穩(wěn)定,我有可能會(huì)進(jìn)行比較大的重構(gòu),因此如果讓他們修改了太多源碼的話,以后升級(jí)會(huì)非常困難。 不過現(xiàn)在Wabacus架構(gòu)已經(jīng)非常成熟,所有Java源代碼都已經(jīng)公開了。 9、你所知道的有哪些項(xiàng)目使用了該框架? 因?yàn)橐话沩?xiàng)目用了什么框架都是一個(gè)保密的內(nèi)容,很多朋友不愿公開,尤其是外網(wǎng)能訪問到的網(wǎng)站之類的項(xiàng)目更是這樣,包括我自己用Wabacus的思想開發(fā)的大型門戶網(wǎng)站,也不愿意公開說出是哪一家,所以很多使用Wabacus的用戶我也不知道他們的項(xiàng)目名字,這里我列出一些愿意公開的項(xiàng)目:
10、用戶如何提交bug、參與貢獻(xiàn)? 目前用戶如果在使用過程中發(fā)現(xiàn)BUG,或者有需要改進(jìn)的地方,都是通過在QQ或QQ群中聯(lián)系我,然后我登記下來,盡早解決。此外,還可以通過在Wabacus論壇中登記BUG。 目前用戶參與貢獻(xiàn)都是進(jìn)行比較外圍的工作,比如錄制視頻、對(duì)新手進(jìn)行技術(shù)支持、制作新的主題風(fēng)格、提供DEMO演示服務(wù)器和論壇服務(wù)器、進(jìn)行捐助等等,在框架開發(fā)上的貢獻(xiàn)較少。 如果有朋友希望參與Wabacus框架的開發(fā),可以開發(fā)IDE工具之類的,Wabacus的核心還是不希望太多人經(jīng)手,擔(dān)心搞亂,畢竟框架代碼比較復(fù)雜。 11、作者簡介 本人2003年畢業(yè),一直從事JavaEE方面的開發(fā)與架構(gòu),開發(fā)的項(xiàng)目涉及銀行、政府、企業(yè)、證券等行業(yè)。對(duì)Java底層知識(shí)、面向?qū)ο蟮脑O(shè)計(jì)、可復(fù)用軟件的設(shè)計(jì)非常感興趣。 |
|