隨筆-55  評論-208  文章-0  trackbacks-0
          最近在新公司學習一個新框架:UMA,是Cloverworxs的,不是開源項目,也不是商業項目,所以google上是找不到的
          這個框架是老美設計,感覺他們在邏輯的抽象上功底更強一些,這個應該和軟件開發的大環境經驗積累有關系吧。
          首先先他把一個request發給controller,controller根據service(service是使用spring加載的,主要用于封裝handler和target)把請求封裝后發給handler,handler根據請求參數找到fenture,而feature則根據請求參數交給具體action來處理。action主要就是調用業務模型層的接口了。然后action處理完之后會返回到controller,controller根據service調用target,target則調用配置的render(可能多個),然后rende從業務模型層的接口中取回數據并進行顯示準備,最后把數據封裝到一個RDO中,然后把RDO放置到attribute中,然后再頁面上讀取顯示。

          初學這個框架,看得是作者的英文文檔,首先得感覺是層次的抽象的有些細,因為以往做過的項目中,render和handler,feature的代碼都是放在控制層來處理了(通常是struts的action)。但是這種詳細層次也能感覺到的好處就是,當某一層次要變動時不需要到action中去找變動代碼,而且當出于某種考慮要針對于某一層進行統一處理(如安全性處理)時就比較方便了。

          看完文檔覺得對框架已經有了一個深入的認識,開發時應該比較快上手了吧,但是實踐中卻發現,在每一層的實現代碼中由于框架引入了很多的完善特性,所以每一層的代碼有很多細節的實現問題是需要一點一點理解去掌握的。而且學習的代碼是一個完整的項目,這個完整的項目有一個問題就是,有幾十個模塊,模塊間的代碼有相互耦合的問題,反而造成了我閱讀代碼的困難。結果用了一個多禮拜的時間才算基本上手框架。
          總結問題,發現主要有兩個:
          1、太過相信文檔,其實文檔只是一個大體框架的介紹。所以我應該多和有經驗的開發者交流,并且要配合代碼具體細節
          2、一個框架應該有一個簡單的清晰的demo,只涉及一個模塊,清晰,明確,這樣就不會再閱讀學習時陷入模塊邏輯和框架邏輯中。因為從代碼中你很難分辨出哪些是框架邏輯,哪些是模塊邏輯。
          posted on 2007-03-31 12:41 rocket 閱讀(2103) 評論(4)  編輯  收藏

          評論:
          # re: 框架學習新體會 2007-04-01 15:32 | sunflower
          是不是這種框架
          調用時:----------------------------------------------

          1.表現層->控制層->Service->Action->業務層
          Sevice(handler,feature,target)
          Render

          返回時:----------------------------------------------
          1.控制層<-Action<-業務層
          2.控制層->Service->render->業務層
          3.表現層<-控制層<-Action(封裝RDO?)<-業務層<-持久層

          有幾個問題問問:
          1.這是SOA的框架么?
          2.每一層應該是獨立的.特別是控制層,業務層,持久層并不受Action影響.
          對每一個服務,只需配置一個Service就行,可插件式的應用,之后Sevice通過從業務層得到的參數來使用RDO來封裝數據.是不是數據模型都有特定的人封裝好了,你只是拿來拼湊層RDO?
          你只需要做Service層對吧.
          持久層應該只調用一次,就是封撞RDO時調用.
          ---------------------------------------------------
          RDO以前沒聽過:
          RDO (Remote Data Objects) 遠程數據對象是一個到 ODBC 的、面向對象的數據訪問接口,它同易于使用的 DAO style組合在一起,提供了一個接口,形式上展示出所有 ODBC 的底層功能和靈活性。盡管 RDO 在很好地訪問 Jet 或 ISAM 數據庫方面受到限制,而且它只能通過現存的 ODBC 驅動程序來訪問關系數據庫。但是,RDO 已被證明是許多 SQL Server、Oracle 以及其他大型關系數據庫開發者經常選用的最佳接口。RDO 提供了用來訪問存儲過程和復雜結果集的更多和更復雜的對象、屬性,以及方法。   回復  更多評論
            
          # re: 框架學習新體會[未登錄] 2007-04-02 15:36 | rocket
          @sunflower
          rdo = render Data Object
          專門用于封裝頁面顯示數據的  回復  更多評論
            
          # re: 框架學習新體會 2007-04-05 19:19 | sunflower
          能不能解釋的稍微多點呢?例如框架  回復  更多評論
            
          # re: 框架學習新體會 2008-01-07 03:35 | javayuan
          service不就是業務層么?  回復  更多評論
            

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


          網站導航:
           
          主站蜘蛛池模板: 紫阳县| 奎屯市| 黄梅县| 曲水县| 赤水市| 横峰县| 侯马市| 临沭县| 临洮县| 绥化市| 沙洋县| 墨竹工卡县| 崇信县| 友谊县| 凌海市| 梅河口市| 垣曲县| 二连浩特市| 崇信县| 晴隆县| 江津市| 临海市| 东乡族自治县| 祁连县| 仁寿县| 长丰县| 武山县| 高碑店市| 商南县| 本溪市| 九寨沟县| 无为县| 南召县| 台东县| 珠海市| 阜康市| 墨玉县| 尼勒克县| 开原市| 绩溪县| 富锦市|