※ 引述《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