4

有人可以解释一下 Spec# 可能会转移到 C# 4.0 中的关于代码合同的概念吗?

  • 什么是代码合同(看起来是编译时检查模式)
  • 我应该为此感到兴奋吗?
  • 假设我们将运行时检查转移到编译时,我是否正确?

谢谢!

4

2 回答 2

3

我个人是一个叫 Bertrand Meyer 的人的忠实粉丝,他写了这本书叫面向对象的软件构造,并创建了一种名为 Eiffel 的语言,它支持按合同设计或基于合同的编程。

  1. 代码合同是 2 个软件实体之间可能会或可能不会交互的一种协议。或多或少像接口,但更精确。
  2. 我不确定每个人是否应该或会对此感到兴奋。
  3. 你的假设有些正确。

你可能想看这个系列的视频链接

于 2008-12-24T01:57:23.607 回答
2

这是直接来自Microsoft Research的代码合同的很好描述。听起来主要的好处是:

  • 提高可测试性
  • 静态验证
  • API 文档(在代码中)
于 2008-12-23T23:58:43.333 回答