国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
忘掉普元EOS、構(gòu)建自己的企業(yè)級快速應(yīng)用開發(fā)平臺 - Java - JavaEye論壇

希望這篇文章能夠?qū)δ切┱诨蚣磳㈤_發(fā)自己團隊的J2EE應(yīng)用快速開發(fā)平臺的個人或公司能有所啟發(fā)!    

      像EOS這樣動輒幾十上百萬的平臺不是每個公司都愿意花錢去買的!因此構(gòu)建一套窮人級的企業(yè)快速開發(fā)平臺成了很多團隊的首選,而對于小團隊來說,構(gòu)建一套自己可以維護的開發(fā)平臺才是最重要的。下面,我將以我的平臺的開發(fā)過程為例來詳細解析這個過程!  

“如果能把項目中大量的代碼編寫工作變得輕松,是多好的一件事!  "

        在使用了AppFuse之后,我有個想法,能不能利用velocity這個優(yōu)秀的模板引擎,用一種更加直觀的模式,把開發(fā)項目中的重復(fù)代碼讓它自動生成,生成之后的基礎(chǔ)代碼,按照實際的需求稍作修改便可以運行,極大的提高工作效率。這樣的話,程序員就可以從大量的重復(fù)勞動中解放出來,將精力更多的投入到業(yè)務(wù)分析及學(xué)習(xí)中。

        這個想法一直在我的腦海里橫亙不去,尤其在做了大量的重復(fù)模塊后,深刻體會了重復(fù)Coding的那種浪費生命的痛苦后,這種沖動尤為強烈。

         離開舊公司,到了新公司之后,由于職位和公司定位的不同,讓我有時間開始把快速開發(fā)平臺和自動代碼生成器的開發(fā)真正的擺上開發(fā)日程上了。

          第一步 ,自動代碼生成器生成的是業(yè)務(wù)模塊,那么底層必須有一套框架能夠為它提供支撐,而且這套基礎(chǔ)框架要足夠靈活,并且和單個模塊的耦合性要比較弱。要解耦模塊之間的聯(lián)系,勢必要用到MVC分層設(shè)計。感謝Java的開放性,使它有這么許許多多的MVC框架可以使用。我采用的當(dāng)然是目前最流行的 SSH(Struts+Spring+Hibernate)的組合(以前項目一直在用,也有些成熟的積累),花了三個月的時間,通過一個項目的實際應(yīng)用來使這個框架基本成型。其目前功能包括:

        1:靈活完善的權(quán)限管理功能(包括用戶管理、角色管理、組織機構(gòu)管理、資源管理、資源角色映射管理...)。原來計劃采用開源的JGuard來托管這部分的功能,因為一些特殊的原因放棄了(考慮要和工作流引擎的權(quán)限部分做集成),只采用了其權(quán)限管理的一些設(shè)計思想。

        2:基于Spring的AOP實現(xiàn)的日志和權(quán)限管理(通過Spring的代理也將Struts的Action托管了,使的對Action的調(diào)用也能被 AOP偵測到),這樣對每個功能的調(diào)用,如果需要日志紀錄的話,之間將其配置到Spring的配置文件中就可以了。

        3:UI上實現(xiàn)了類似.NET的Validation驗證,這點很重要,想必大家都深刻體會到利用JavaScript或Struts的驗證機制來實現(xiàn)前端頁面數(shù)據(jù)驗證的痛苦了吧:),我們實現(xiàn)的功能如下圖所示:

       

        4、多套UI風(fēng)格樣式。這個不是很必須,但是作為一套成功的系統(tǒng),良好的用戶體驗也是必不可少的。

        5、支撐模塊:2套報表引擎(一個是基于JasperReport實現(xiàn)的B/S版本報表;另外一個是類Excel的報表引擎),流程引擎(其實就我個人來看,工作流引擎才是這套系統(tǒng)的靈魂 ,有了它,所有流程性應(yīng)用包括表單、業(yè)務(wù)流、權(quán)限都可以通過配置并結(jié)合Beanshell腳本來獲得 ,以下是我們報表和流程設(shè)計器的一些截圖:

 

 

工作流引擎截圖

 

報表截圖

 

        6、i18n的支持,由于我們有很多國外的客戶,這塊是必須的。

 

有了這個基礎(chǔ)支撐平臺之后,就可以開始著手開放我們的代碼生成器了。

        第二步 :開發(fā)代碼生成器。 AppFuse基于Ant的自動代碼生成模式讓我深惡痛絕,究其原因,一句話--“不夠人性化”,我們做的首先必須考慮可用性,因此決定采用可視化的UI 模式。由于我用的是NetBean編輯器,做可視化的Swing開發(fā)不成問題(這點要感謝SUN啊,出了個和VB一樣簡單的IDE)。我實現(xiàn)的代碼生成器的界面如下:

  

 

怎么樣?是不是夠傻瓜化啊?呵呵,是個人都能用??!

       從上面大家可以看到,我們這個代碼生成器和Hibernate的POJO對象生成工具類似,也是基于數(shù)據(jù)庫的模型來生成代碼的,不同的是,我們生成的代碼范圍更廣,不僅包括了POJO對象暨相應(yīng)的hbm.xml文件,另外還包括相應(yīng)的DAO(Server層)、相應(yīng)的Action、Form類、相關(guān)的 JSP文件(list頁面、edit頁面、Excel導(dǎo)出頁面等等)、資源文件及相關(guān)的Struts和Spring的配置子文件(Struts和 Spring均支撐將配置拆分成多個配置,我們利用這種特性來減低模塊之間的耦合性。)

        至于數(shù)據(jù)庫模型的獲得,可以利用JDBC的MetaData(元數(shù)據(jù)模型) 的功能來獲得,我們目前維護了表的完整的主鍵、外鍵關(guān)系(父子表)

 第三步:配置模板。有了可視化的數(shù)據(jù)庫表映射模型,也獲得了數(shù)據(jù)庫表及其主外鍵關(guān)系的詳細信息,接下來當(dāng)然是根據(jù)這些信息來生成代碼了。這里我們用了強大的Velocity模板 技術(shù),這樣不僅可以靈活的處理復(fù)雜的表映射對象之間的關(guān)系,也能夠靈活的進行變更升級。而且我們能夠通過所獲得的數(shù)據(jù)庫模型,在頁面上自動實現(xiàn)基于Javascript的數(shù)據(jù)驗證“非空驗證、字符長度驗證、數(shù)字驗證,日期驗證”。

          呵呵,通過以上3個步驟的工作,我們的基礎(chǔ)開發(fā)平臺和自動代碼生成器就大功告成了!目前我們生成的代碼可以直接編譯通過,通過簡單的系統(tǒng)配置后,可以直接在服務(wù)器上跑!由于模板種類多,而且模板中自動實現(xiàn)的代碼功能已經(jīng)非常完善了,所以一些特殊的業(yè)務(wù)需求只需要在自動生成的代碼基礎(chǔ)上做簡單修改就可以了!

         基礎(chǔ)開發(fā)平臺和代碼生成器投入使用后,對我們項目開發(fā)的資源投入的改善是非常明細的,目前基于基礎(chǔ)平臺和代碼生成器的配合,我們已經(jīng)做了6、7個系統(tǒng)了,平均每個系統(tǒng)的開發(fā)時間至少要比以前節(jié)約40%,有的項目甚至達到了80%以上(我們最高的一天,處理了40多個表的增、刪、該、查的功能,及中文本地化)。而且,另外很重要的一點,生成的代碼無形中統(tǒng)一了程序員的設(shè)計風(fēng)格,我們通過這套開發(fā)機制,能夠最大限度的保證我們開發(fā)的系統(tǒng)質(zhì)量,保證模塊可以在不同系統(tǒng)之間的自由遷移,最大限度的實現(xiàn)復(fù)用!在項目開發(fā)中節(jié)省出來的大量時間,也讓我們可以去研究更多的開源中間件和系統(tǒng),來增強我們的基礎(chǔ)平臺,從而形成一個良性的循環(huán)!

 我們做了多套模板,能夠針對單表操作,及父子表操作來自由組合搭配。以下就是我們系統(tǒng)的一些功能截圖,除了中文化之外,基本上沒有修改:

單表操作:

父子表關(guān)聯(lián)操作:

 

 

================================================================

呵呵,這么長時間了,還有人關(guān)注這個帖子,謝謝大家的捧場了!
順便通報一下我們平臺目前的狀況:
1、增加了Web Service接口功能,基于spring-xfire實現(xiàn)的,目前基于server這一層的所有接口,在代碼生成器生成代碼(或手工添加接口)時,xfire會對其自動封裝并對外暴露。并同時集成訪問接口。程序員不用直接接觸wsdl了(安全方面目前只是通過IP過濾來簡單實現(xiàn))。
   這樣的話,同樣基于平臺的A、B兩個獨立系統(tǒng),可以通過WebService進行相互調(diào)用,同時,從本地調(diào)用變更為webService調(diào)用不需要修改任何代碼,只要修改配置文件的一行定義就可以了!
   這個應(yīng)該算是我們平臺的一個標志性的里程碑了吧!從一定意義上來說,這才真正成為一個開放的平臺,算SOA化了,呵呵!

2、模板更加豐富了,基于工作流應(yīng)用我們目前已經(jīng)有了一套通用模式,可以和流程引擎進行無縫結(jié)合!針對流程應(yīng)用的模板可以生成絕大部分引擎相關(guān)部分的代碼,程序員只需要修改流程定義模板的名稱就可以了!同時針對一對多,一對一關(guān)系的模板進行了大量優(yōu)化,能夠適應(yīng)更多的企業(yè)應(yīng)用場景了!

  目前的平臺還是主要針對開發(fā)人員,是企業(yè)應(yīng)用快速開發(fā) 平臺,我們后續(xù)規(guī)劃將其和我們已經(jīng)有的一套應(yīng)用快速搭建 平臺進行整合,以使其能夠同時被業(yè)務(wù)人員和開發(fā)人員使用。簡單業(yè)務(wù)就由業(yè)務(wù)人員通過搭建平臺的可視化的流程和表單配置來實現(xiàn),復(fù)雜業(yè)務(wù)再由技術(shù)人員通過開發(fā)平臺來實現(xiàn)。
   最后再談一下應(yīng)用快速開發(fā)平臺的定位吧,相信這也是大家最近爭論的一個焦點,說有用的有之,說用處不大的也有之。我個人的觀點是:只要你的平臺夠靈活,模板夠多、夠復(fù)雜、兼容的業(yè)務(wù)場景越多,它就有用,而且很有用;反之,如果平臺底層呆板,模板簡單,它的用處就不大。至于其它的什么維護的便利性什么的我就不再多說了,免得有吹噓之嫌了,反正大家仁者見仁,智者見智!套用一句常話就是---寒天飲冰水,冷暖自知!
  我個人目前的工作重點已經(jīng)轉(zhuǎn)移到企業(yè)應(yīng)用快速搭建(配置)平臺上來,目前也有些心得,將其和應(yīng)用快速開發(fā)平臺的整合也頗有些成效,后續(xù)得空將續(xù)開些新博文,和大家共享,希望各位繼續(xù)賞臉捧場?。。?!

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
代碼生成器:程序員生產(chǎn)力快速提升工具
無代碼/低代碼快速開發(fā)平臺
MagicalCoder可視化開發(fā)平臺:輕松搭建業(yè)務(wù)系統(tǒng),為企業(yè)創(chuàng)造更多價值!
無代碼平臺相對低代碼平臺的優(yōu)勢及局限性
JAVA快速開發(fā)框架 一鍵生成表單模板代碼
企業(yè)信息開發(fā)平臺(2)基本功能展示
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服