精華區beta Programming 關於我們 聯絡資訊
※ 引述《william.bbs@bbs.cis.nctu.edu.tw (何陋居主)》之銘言: : 補充一點。理想情況下, 任何 method, 尤其是 public method, : 都會有 pre-condition 及 post-condition, : 在執行前與執行後, 也都有 well-defined 的 invariant state。 : 好的 class 設計說明文件, 都應該明確道出這些事項。 : 有了這些 interface 的 contract, : 仍可維持黑箱的實作隱密, 又不損白箱的透明度, : 可降低許多「拆一個自己不是很了解的炸彈」的風險。 : 這也正是 Eiffel 爸爸 Bertrand Meyer 所提倡的 : "design by contract" 的用意之一。 Design by contract 真的非常實用,尤其是在寫複雜的 alg. 時更是如此, 遵循此法可使 programming 不易出錯,就算發生 assert 也很容易縮小範圍 。 這是我把它運用在 firmware 的關鍵 algorithm 後的實務心得。 ^_____^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.186.233