- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Microsoft 最近发布了其 Code Contracts 的版本具有商业许可证的 DevLabs 框架。我们有兴趣在我们的项目中使用它们(主要是 C#,一些 C++/CLI)来逐渐替换所有自定义验证代码,但我很想在我们 promise 之前了解其他人使用它的经验,具体来说:
您认为该框架对于大型且复杂的商业项目来说是否足够成熟?
您在使用过程中遇到了哪些问题?
您从中得到了什么好处?
目前的痛苦是否超过其值(value)?
我意识到这是一个有点主观的问题,因为它需要意见,但考虑到这个框架是 .NET 4.0 的一个非常重要的部分,并且将(可能)改变我们编写验证代码的方式,我希望这个问题将保留收集有关该主题的经验的机会,以帮助我对一个具体的、可回答的问题做出决定:
Should we be starting to use it next month?
请注意,我们不提供代码 API,仅提供 Web 服务,因此对于大多数代码破坏而言,抛出异常类型的兼容性不是问题。然而,由于我希望不仅仅是我,更多的人会从这篇文章及其答案中受益,因此非常欢迎有关该领域的任何详细信息。
最佳答案
对此问题的最后一次成熟回应是在 2009 年,当时 .NET 4 已经发布。我认为我们应该进行更新:
代码契约对于您的调试版本来说可能已经足够成熟。
我意识到这在某种程度上是从“无害”到“基本无害”的升级。
Code Contracts home page链接到 PDF 格式的相当详尽的文档。该文档在第 5 节中概述了使用指南。总而言之,您可以选择自己的勇气,让合约工具在您的发布版本中重写 IL。
我们正在使用“不要重写我的发布 IL”模式。
到目前为止,我最喜欢这个意想不到的好处:代码更少,因此需要测试的代码也更少。你所有的保护条款都会消失。
if(arg != null) {
throw new ArgumentNullException("arg");
}
// Blank line here insisted upon by StyleCop
变成:
Contract.Requires(arg != null);
你的函数更短。 您的意图更加清晰。而且,您不再需要编写名为 ArgumentShouldNotBeNull 的测试来达到 100% 的覆盖率。
到目前为止,我遇到了两个问题:
我进行了一个单元测试,该测试依赖于契约(Contract)失败才能成功。您可能会认为该测试的存在是一个错误,但我想以测试的形式记录这一特定的禁令。由于我没有安装工具,因此在我的构建服务器上测试失败。解决方案:安装工具。
我们正在使用两个重写 IL 的工具:Code Contracts和 PostSharp 。他们相处得不太好。 PostSharp 的 2.0.8.1283 修复了该问题。不过,我会谨慎评估任意两个 IL 重写工具如何相处。
到目前为止,好处大于危害。
解决其他答案中提出的过时问题:
关于validation - Microsoft 代码契约框架有多成熟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/671809/
“数值食谱”的作者在第 1 章给出。图 10 结合“经典”模拟退火与 Nelder-Mead 下坡单纯形法的模拟退火算法的实现。 我真正喜欢这个算法的地方是它在退火温度达到 0 时收敛到经典的下坡搜索
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
根据 RIPE REST API 文档,需要按以下格式指定请求: http://rest.db.ripe.net/{source}/{objecttype}/{key} 所以我假设查找 IP 地址将是
我在 Debian 7 上安装了 CDH5。我在单节点伪分布式模式下使用 Hadoop 和 MapReduce1。 我想在 R 中运行 Rhip。下载后我已经安装了它: sudo R CMD INST
我是一名优秀的程序员,十分优秀!