2013-07-18 71 views
0

如果Code Contracts可以進行靜態檢查並確保所有信息都正確,爲什麼我應該允許ccrewrite重寫二進制文件?Code Contracts and ccrewrite

完全關閉ccrewrite是否正常?

回答

4

如果代碼合同可以進行靜態檢查並確保一切正確嗎?

只有當它是關於一個完整的應用程序,你不需要Assume()任何東西。

在所有其他情況下(可重複使用的庫組件等)代碼合同可以驗證內部邏輯,但沒有任何東西可以替代前門的Requires()

1

定期在Code Contracts論壇上提出的另一點是,靜態驗證器可以並且確實存在錯誤。

0

還有一點,如果你在每個構建中使用它,靜態驗證器可能非常慢。

你可以通過使用運行時檢查和單元測試來行使你的代碼和發現問題來彌補這一點。

相關問題