<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

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

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

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

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

    1.表現(xiàn)層->控制層->Service->Action->業(yè)務(wù)層
    Sevice(handler,feature,target)
    Render

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

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

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


    網(wǎng)站導航:
     
    主站蜘蛛池模板: 日本在线高清免费爱做网站| 特级淫片国产免费高清视频| 国产免费不卡视频| 亚洲色大18成人网站WWW在线播放 亚洲色大成WWW亚洲女子 | 成人a毛片免费视频观看| 亚洲熟女少妇一区二区| av午夜福利一片免费看久久| 色播亚洲视频在线观看| 久久久久国产精品免费看| 亚洲熟妇无码AV| 天天操夜夜操免费视频| 中文字幕乱理片免费完整的| 亚洲精品中文字幕无乱码| 又大又硬又爽又粗又快的视频免费| 亚洲gv白嫩小受在线观看| 在线免费观看毛片网站| 亚洲heyzo专区无码综合| 亚洲va久久久噜噜噜久久狠狠 | 国产V亚洲V天堂A无码| 中文毛片无遮挡高潮免费| 乱淫片免费影院观看| 丁香婷婷亚洲六月综合色| 亚洲欧洲无码AV电影在线观看| 国产免费久久久久久无码| 中文字幕不卡亚洲| 拨牐拨牐x8免费| 七色永久性tv网站免费看| 美女18一级毛片免费看| 亚洲一区二区视频在线观看| 欧美日韩国产免费一区二区三区| 亚洲欧洲专线一区| 91亚洲国产在人线播放午夜| 日本免费一区二区在线观看| a毛片免费播放全部完整| 一级a性色生活片久久无少妇一级婬片免费放 | 午夜亚洲www湿好大| 亚洲日本在线观看视频| 日韩免费视频观看| 免费看成人AA片无码视频羞羞网| 久久水蜜桃亚洲AV无码精品| 亚洲日韩精品一区二区三区无码 |