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

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

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

    MDA/MDD/TDD/DDD/DDDDDDD
    posts - 536, comments - 111, trackbacks - 0, articles - 0
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    契約式設計Design by Contract

    Posted on 2009-09-03 23:42 leekiang 閱讀(637) 評論(1)  編輯  收藏 所屬分類: 架構設計
    契約式設計的本意很簡單,就是在設計和編碼階段向面向對象程序中加入斷言(assertion)。而所謂斷言,實際就是必須為真的假設,只有這些假設為 真,程序才可能做到正確無誤。契約式設計的主要斷言包括先驗條件(precondition)、后驗條件(postcondition)以及不變式 (invariant):
    ● 先驗條件針對方法(method)1,它規定了在調用該方法之前必須為真的條件。
    ● 后驗條件也是針對方法,它規定了方法順利執行完畢之后必須為真的條件。
    ● 不變式針對整個類,它規定了該類任何實例調用任何方法時都必須為真的條件。
    斷言應使用某種編程語言寫在代碼里(而不是僅僅通過文檔加以聲明),只有這樣:
    1)對于程序員而言,它們才有意義,同時能夠提供優質的.有用的文檔.
    2)能夠在運行時對它們進行檢測,更好地支持測試和調試工作.

    charon的建議。如果你對斷言/防錯程序不怎么熟悉,而且也搞不到那本"編程精粹"。買《Design by Contract by Example》這本書看看。如果已經熟悉了,到書店看個半小時到一小時就夠了(例子只要挑個一個看,多了也沒用),權當擴充知識面了。使用的話,就當斷言了,設立若干前置條件后置條件就夠了,這樣足以有效提高對程序的置信度;什么不動點,Frame Rules,那是理論上的東西,吃力不討好,有閑工夫的才時候可以用用(得到的效果和付出的努力不成比例)。

    我的總結:開始看了名字以為是按約定進行設計的意思,后來大概看了看,了解了一點點,但決定不再在上面花時間了,測試驅動開發明顯要更為成熟和實用。

    評論

    # re: 契約式設計Design by Contract[未登錄]  回復  更多評論   

    2009-09-16 10:33 by alex
    謝謝你提供的各種網站鏈接信息。呵呵!
    主站蜘蛛池模板: 中文字幕无线码免费人妻| 亚洲AV女人18毛片水真多| yellow免费网站| 亚洲成av人在片观看| 亚洲AV成人无码网天堂| 成在人线AV无码免费| 国产成人精品日本亚洲专区6| 久久国产色AV免费观看| 亚洲最大免费视频网| 1000部拍拍拍18勿入免费凤凰福利 | 亚洲视频在线免费播放| 亚洲欧洲春色校园另类小说| 91av在线免费视频| 亚洲伊人久久大香线蕉影院| 99久久综合国产精品免费| 亚洲综合小说另类图片动图| 日韩电影免费在线观看视频| 免费人成大片在线观看播放电影 | 久久精品国产亚洲Aⅴ香蕉 | 成人免费视频试看120秒| 亚洲AV无码国产精品永久一区| 国产a不卡片精品免费观看| 无码免费又爽又高潮喷水的视频| 国产日产亚洲系列最新| 精品亚洲永久免费精品| 亚洲女人初试黑人巨高清| 四虎影院免费在线播放| 人碰人碰人成人免费视频| 亚洲AV无码一区东京热久久| 4399好看日本在线电影免费| 亚洲AV噜噜一区二区三区| 久久亚洲国产精品123区| 亚洲免费在线播放| 亚洲成av人无码亚洲成av人| AV在线亚洲男人的天堂| 久久精品国产免费观看三人同眠| 亚洲Aⅴ在线无码播放毛片一线天| 国产av无码专区亚洲av果冻传媒| 免费黄色福利视频| 人禽伦免费交视频播放| 麻豆亚洲av熟女国产一区二|