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

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

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

    posts - 56, comments - 77, trackbacks - 0, articles - 1
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    代碼的物理組織

    Posted on 2010-06-20 23:37 切爾斯基 閱讀(2239) 評論(2)  編輯  收藏
    同一個Feature的代碼要放在一起(IDE里單獨的一個工程, 或者工程里單獨的一個文件夾), 這些代碼要么全有要么全無的, 它們合作完成一個Feature, 如果用戶不再需要這個Feature了, 可以把它們整個的痛快的刪掉, 不會留下誰也用不到的代碼成為系統的垃圾. 如果想看一個Feature是如何實現的, 那所有相關代碼都在一起, 不需要在龐大的代碼庫中跳來跳去.

    那么理想的情況就是: 你看看源代碼樹里所有工程文件的名字, 或者文件夾的名字, 就知道系統提供了哪些功能, 它可以跟你的需求描述對應起來, 無論用User Story還是Use Case, 都可以用它們的名字作為工程名或者文件夾的名字, 方便維護


    流行的MVC框架缺省的物理文件組織并不是這樣的, Controller, Model, View分別在不同的文件夾里面. ASP.Net MVC提供了VirtualPathProvider以及ViewEngine, 可以讓我們把一個Feature的Controller/Model/View統統打包到一個project或者文件夾而運行時依然能夠找到對應的action和view, 這是我們正在利用的特性


    這種代碼組織方式對架構的影響是什么?

    這基本會導致基于插件/擴展點的體系結構. 放到更大尺度上, 就是SOA. SOA才是王道. 這個詞太大了, 還是先聚焦到一個進程的應用....

    1. UI如何聚合? 最終用戶看到的UI, 是一個聚合的結果, 可能來自系統的不同部分. 解決這個問題的擴展點技術有客戶端的Ajax, 或者服務端的RenderAction. (問題: Css應該如何處理? 不同部分的顯示順序, 布局如何確定?)
    2. Feature如何溝通? Feature之間不可能一點依賴沒有, 比如可能會用到相同的數據, 相同的業務邏輯. 解決這個問題的方法有Bounded Context, Context Mapping, DCI...都是一回事
    3. 數據庫如何劃分? 不同的Feature使用自己的獨立定義的數據表, 做映射和同步, 也是同樣的方案
    4. 如何把這些Feature組裝在一起? Java平臺有OSGi, .Net目前沒有看到跟OSGi類似的方案. 基本是注冊或動態發現的路子, 遵循開閉原則...



    評論

    # re: 代碼的物理組織  回復  更多評論   

    2010-06-21 11:00 by anders
    非常正確,這其實是分析模型到設計模型到實現模型的一種直接的映射關系。
    不僅僅是MVC,甚至于n-Tier模型都是存在同一個問題——它們是很好的技術模型,但不是很好的信息模型。

    從需求開始就是我們有這樣這樣或者那樣的組件及其功能,開發過程中的用例、分析都是以功能為主線組織的,可是到了實現模型(代碼),就變成了MVC或者n-Tier要求的技術工件劃分,于是代碼被分割了。

    沒有人能購快速的找到一個功能對應的代碼,另一方面這樣的劃分違反了包的穩定性原則。

    # re: 代碼的物理組織  回復  更多評論   

    2010-06-21 13:34 by chelsea
    @anders

    看了你的這篇http://www.tkk7.com/AndersLin/archive/2010/02/21/313521.html, 看來有類似的問題類似的想法

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


    網站導航:
     
    主站蜘蛛池模板: 亚洲尹人九九大色香蕉网站| 在线观看亚洲天天一三视| 久久夜色精品国产亚洲AV动态图| 成人婷婷网色偷偷亚洲男人的天堂| 好先生在线观看免费播放| 亚洲美免无码中文字幕在线| 人妻丰满熟妇无码区免费| 亚洲一区二区在线视频| 91精品手机国产免费| 亚洲黄色片在线观看| free哆啪啪免费永久| 国产成人精品日本亚洲专一区| 免费毛片a在线观看67194| 亚洲精品午夜在线观看| av无码免费一区二区三区| 亚洲深深色噜噜狠狠网站| 搡女人免费视频大全| 国产精品亚洲综合天堂夜夜| 亚洲国产小视频精品久久久三级| 国产精品午夜免费观看网站| 亚洲AV日韩AV永久无码绿巨人| 99久久久国产精品免费牛牛| 亚洲宅男精品一区在线观看| 国产免费无遮挡精品视频 | 亚洲福利在线播放| 72pao国产成视频永久免费| 国产亚洲人成无码网在线观看| 51视频精品全部免费最新| 亚洲色偷偷综合亚洲AV伊人蜜桃 | 亚洲中文字幕丝袜制服一区| 国产日韩一区二区三免费高清| 91精品国产亚洲爽啪在线观看| 最新仑乱免费视频| xxxxxx日本处大片免费看| 亚洲网站在线观看| 免费观看一级毛片| 最近免费mv在线观看动漫| 亚洲熟女综合色一区二区三区| 亚洲中文字幕无码不卡电影| 在线天堂免费观看.WWW| www在线观看免费视频|