張昊

          J-Hi(http://www.j-hi.net)

            BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
            45 Posts :: 1 Stories :: 110 Comments :: 0 Trackbacks

          1、快速上手,降低學(xué)習(xí)曲線

                 對于剛剛接觸J-Hi的人來說,它上手很容易,我們?yōu)槊恳粋€功能點都提供了懸浮幫助功能,即使沒有任何資料(當(dāng)然我們已提供了視頻與開發(fā)文檔),您也可以通過向?qū)c幫助在十分鐘之內(nèi)就可以創(chuàng)建出您自己的項目原型。

                 其次J-Hi平臺采用的大都是大家耳熟能詳?shù)闹髁骺蚣芘c技術(shù),如果您對主流的框架有所了解,那么對J-Hi的學(xué)習(xí)就沒有任何阻力了。

          2、快速搭建開發(fā)環(huán)境

                 也許您因為項目或自身開發(fā)團(tuán)隊的不同會采用不同的框架技術(shù),例如您團(tuán)隊中對struts2熟悉的人遠(yuǎn)遠(yuǎn)要比掌握webwork的工程師要多,或者在您的項目中統(tǒng)計分析的功能很多,您要考慮ORM的效率問題,而不得不放棄hibernate而采用ibatisspringJDBC,也許您還要考慮數(shù)據(jù)庫問題等等。在搭建開發(fā)環(huán)境您一定會考慮很多因素,盡管搭建開發(fā)環(huán)境并不復(fù)雜,但還是不夠自動化,還要手動的配置,費(fèi)時費(fèi)力。J-Hi為快速搭建開發(fā)環(huán)境提供合理的解決方案,您可以按需求動態(tài)的搭建開發(fā)環(huán)境。

          在此您可以選擇不同的ORM框架

          在此您可以選擇不同的表現(xiàn)層框架

          在此您可以選擇不同的頁面框架,并且我們提供了“預(yù)覽”讓您在搭建開發(fā)環(huán)境之前就可以看到搭建后的頁面顯示效果

          在此您可以選擇不同的數(shù)據(jù)庫。

          3、快速生成所有代碼

                 通過建立或?qū)肽J剑梢钥焖俚纳伤写a與文件,并且在生成時會根據(jù)您選擇的框架技術(shù)與數(shù)據(jù)庫的不同而自動適配。

                 當(dāng)然您還可以有選擇的生成部分代碼文件,例如只生成JSP頁面,或只生成java代碼。生成的java代碼結(jié)構(gòu)如下(因為我選擇的框架是ibatis3+struts2,所以平臺會自動匹配只生成與這兩個框架相關(guān)的類文件,而不會生成無用的其它框架的東西):

          4、快速解決在業(yè)務(wù)需求中的技術(shù)難點

                 一般我們在做項目開發(fā)時,總是要等到項目開發(fā)的中、后期才能去解決業(yè)務(wù)核心問題,因此很造成無法合理估計項目的技術(shù)風(fēng)險。原因是復(fù)雜的業(yè)務(wù)總是要等到基礎(chǔ)模塊建好后才能進(jìn)入到開發(fā)階段,從而使解決核心的技術(shù)問題置后。我們以一個報銷為例來做個簡單說明,比如報銷在審核后的業(yè)務(wù)邏輯很復(fù)雜并且有可能還要涉及到與其它的系統(tǒng)對接。一般來說我們總是要等到這個報銷單建好,起碼要有最基本的增刪查改功能(即使沒有頁面也要有后臺的代碼)后才能進(jìn)入到核心業(yè)務(wù)的開發(fā),這就加大的技術(shù)風(fēng)險,因為我們會很早的發(fā)現(xiàn)問題,但解決這些問題卻遠(yuǎn)遠(yuǎn)的落后于發(fā)現(xiàn)這個問題,甚至到了開發(fā)的中、后期因為技術(shù)問題在底層上還要一改再改。而使用J-Hi可以很快的進(jìn)入到業(yè)務(wù)核心的技術(shù)上,因為只要生成,基礎(chǔ)功能就已經(jīng)提供,甚至平臺還為您提供了單元測試用例類,從而使您可以直指業(yè)務(wù)核心,將項目風(fēng)險控制在最低。

          5、通過提供通用的組件

                 平臺提供了很多通用業(yè)務(wù)組件,例如組織機(jī)構(gòu)、角色權(quán)限、報表、定時任務(wù)、菜單管理、日志管理、系統(tǒng)配置、附件上傳等等,除此之外平臺還提供了一些純技術(shù)組件,例如樹型結(jié)構(gòu)、java腳本工具、編碼生成器、可選擇性的返回JSON對象等等。這些通用的業(yè)務(wù)組件與技術(shù)組件可以為您在開發(fā)過程節(jié)省很多時間,隨需使用,從而大大降低開發(fā)速度。

          6、通過服務(wù)的復(fù)用性提高開發(fā)速度

                 在介紹平臺的服務(wù)復(fù)用性之前,讓我們來舉個例子。比如您做了一個OA項目其中有一個模塊是報銷管理這個模塊很成熟,您已經(jīng)在OA系統(tǒng)中應(yīng)用了很久。現(xiàn)在又有一個ERP系統(tǒng),您想把這個成熟的報銷管理復(fù)制到ERP系統(tǒng)中,這樣這個功能就不用在ERP系統(tǒng)中再做開發(fā)了。對于平臺來說這就是服務(wù)的復(fù)用性,我們提供了一整套對服務(wù)復(fù)用性的解決方案,并且有自己的可視化工具。

          我們叫它J-Hi整合工具,是用C#做的。它的作用:

               1)可視化導(dǎo)入/導(dǎo)出數(shù)據(jù)庫,并同時實現(xiàn)跨數(shù)據(jù)庫,例如您可以在mysql上開發(fā)(導(dǎo)出),開發(fā)完將所有的數(shù)據(jù)遷移到oracle上(導(dǎo)入)。

               2)發(fā)布器,可視化將您開發(fā)的模塊或系統(tǒng)自動發(fā)布成一個發(fā)布包(包括數(shù)據(jù)庫、jar、文件[jsp、js、圖片、配置文件等]還包括文件的片段[例如修改web.xml文件中的一部分內(nèi)容]

               3)部署器,將發(fā)布包部署到開發(fā)的工程中,部署的內(nèi)容見發(fā)布器的描述

               4)實施器,對應(yīng)的生產(chǎn)系統(tǒng),我們通過FTP,將相應(yīng)的文件與數(shù)據(jù)庫自動部署到生產(chǎn)系統(tǒng)中

          7、快速的部署與遷移

                 也許您正在為客戶要求從SQLServer數(shù)據(jù)庫改為Oracle而感到苦惱,因為這要做大量的數(shù)據(jù)遷移工作,或許您反復(fù)的將修改后的bug部署到生產(chǎn)環(huán)境中而郁悶,我想J-Hi通過它的整合工具為您提供了便捷的方式。具體的實現(xiàn)方式請參見上一節(jié)的介紹

          8、開發(fā)人員可以快速的接手別人的工作

                 因為使用J-Hi開發(fā),生成的代碼與文件的風(fēng)格都是相同的,在哪里寫業(yè)務(wù)邏輯應(yīng)該怎么寫?在哪里要改頁面應(yīng)該怎么做?想要到哪張數(shù)據(jù)庫表或表與類的對應(yīng)關(guān)系?包括生成的類、JSP文件、配置文件的命名規(guī)則都是統(tǒng)一的。因此一個新人加入團(tuán)隊會很容易的上手并進(jìn)入工作狀態(tài),即使是修改別人寫過的代碼,也會很快速的定位到相應(yīng)要修改的位置。

          9、快速解決需求變更

                 對于項目開發(fā)來說,項目的需求變更是很正常的事情,對于有經(jīng)驗的項目經(jīng)理來說,如果一個項目從未發(fā)生過需求變更過反而是不正常了:)一但需求變更大多都要改數(shù)據(jù)庫表,如果是已運(yùn)行很穩(wěn)定的系統(tǒng),這種變更真是要命。J-Hi為此也提供了自己的解決方案,對于簡單表變更,平臺只要對單個實體生成就可以了。如果是復(fù)雜的變更,我們還提供繼承實體的解決方案,也就是說原來的所有代碼與表結(jié)構(gòu)都不變,通過實體繼承J-Hi會從數(shù)據(jù)庫表到java類再到JSP頁面形成一整套繼承關(guān)系,從而保證以前功能的穩(wěn)定性。這個說來好象很玄妙,讓我們舉例說明。比如你有一個部門表,N多信息都與它有聯(lián)系,而且做了很多的業(yè)務(wù)處理,現(xiàn)在客戶要求在部門表中加另一些信息。對你來說可能會為部門表中加字段,由此而帶來所有類的變化與頁面的變化,而這套系統(tǒng)已經(jīng)很穩(wěn)定已經(jīng)用了一、兩年了,開發(fā)人員都已經(jīng)離開了公司,這樣接手的人要讀懂全部代碼才有可能改,這樣就造成開發(fā)速度的大大降低。平臺提供了另一種解決方案:不動以前的任何東西,相關(guān)于在原有的基礎(chǔ)上打上一塊補(bǔ)丁。再做一張表,讓這張表與部門表形成one to one的關(guān)系,而類無論是POJODAOService都繼承自部門相應(yīng)類作為父類,同時在JSP頁面上也會繼承所有部門的所有元素,這樣就形成了實體繼承關(guān)系,這就好比設(shè)計模式中最基本的“開閉原則”,對于所有的新生功能是開放的,而對于已有的老功能是關(guān)閉的,可以完全把老的功能視為一個黑箱。這樣即能保證已有功能的穩(wěn)定性,又能加入新的功能做為補(bǔ)充。

          posted on 2011-05-02 00:32 張昊 閱讀(6510) 評論(8)  編輯  收藏

          Feedback

          # re: J-Hi快速開發(fā)平臺到底快速在哪里? 2011-05-03 11:49 riques
          lib里面有這個包,怎么報錯找不到呢?

          Caused by:
          java.lang.NoClassDefFoundError: org/hi/framework/dao/ibatis/IbatisHiDialet
          at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser$18.process(SqlMapParser.java:367)
          at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121)
          at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:84)
          at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102)
          at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:72)
          at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:60)
          at com.ibatis.sqlmap.engine.builder.xml.SqlMapParser.parse(SqlMapParser.java:58)
          at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$HiNodelet.process(SqlMapConfigParser.java:384)
          at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:121)
          at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:84)
          at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:102)
          at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:72)
          at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51)
          at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:75)
          at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:63)
          at org.springframework.orm.ibatis.SqlMapClientFactoryBean.afterPropertiesSet(SqlMapClientFactoryBean.java:255)
          at org.hi.framework.dao.ibatis.HiSqlMapClientFactoryBean.afterPropertiesSet(HiSqlMapClientFactoryBean.java:118)  回復(fù)  更多評論
            

          # re: J-Hi快速開發(fā)平臺到底快速在哪里? 2011-05-03 12:58 張昊
          你這個問題好象不是最新的插件包,請在googleCode上下載最新的插件
          http://code.google.com/p/j-hi/
          j-hi4DWZ bate20110425.rar J-Hi for DWZ beta版   回復(fù)  更多評論
            

          # re: J-Hi快速開發(fā)平臺到底快速在哪里? 2011-05-03 12:59 張昊
          @riques
          你這個問題好象不是最新的插件包,請在googleCode上下載最新的插件
          http://code.google.com/p/j-hi/
          j-hi4DWZ bate20110425.rar J-Hi for DWZ beta版  回復(fù)  更多評論
            

          # re: J-Hi快速開發(fā)平臺到底快速在哪里? 2011-05-03 17:03 riques
          @張昊
          用這個最新的包生成的項目,在HI項目視圖里沒創(chuàng)建的項目  回復(fù)  更多評論
            

          # re: J-Hi快速開發(fā)平臺到底快速在哪里? 2011-05-03 18:36 張昊
          @riques
          你沒有-clean吧?
          請參見我的博客
          http://www.aygfsteel.com/hao-zhang-hi/archive/2011/04/27/349086.html  回復(fù)  更多評論
            

          # re: J-Hi快速開發(fā)平臺到底快速在哪里? 2011-05-03 19:57 riques
          @張昊
          根據(jù)這篇文章加-clean就對了,但希望在下個版本修復(fù)這個問題  回復(fù)  更多評論
            

          # re: J-Hi快速開發(fā)平臺到底快速在哪里? 2011-05-03 23:20 張昊
          @riques
          這是eclipse的機(jī)制問題,如果相同的插件有更新,你必須要-clean
          還有一種方案就是線上更新,這個功能我們還沒有做  回復(fù)  更多評論
            

          # re: J-Hi快速開發(fā)平臺到底快速在哪里? 2011-05-05 10:06 百思寒
          真不錯,多做幾遍就能上手了  回復(fù)  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 广饶县| 正蓝旗| 安仁县| 钟山县| 阿克陶县| 东台市| 遂溪县| 拉萨市| 巴楚县| 梨树县| 宿州市| 达拉特旗| 名山县| 屏山县| 庆城县| 忻城县| 得荣县| 安溪县| 苏尼特左旗| 康定县| 祁东县| 榆树市| 邢台县| 田东县| 义乌市| 隆子县| 闸北区| 亚东县| 庄河市| 江口县| 家居| 澄迈县| 新宾| 蒙城县| 称多县| 鄂伦春自治旗| 临高县| 沐川县| 永平县| 金秀| 中卫市|