写点什么

.NET 代码契约组件目前已经提供下载

  • 2009-02-25
  • 本文字数:699 字

    阅读完需:约 2 分钟

代码契约(Code Contracts)是“契约式设计”的.NET 实现。按照原计划它将与.NET 4.0 一起发布,不过现在开发人员已经可以从DevLab 上下载这个组件了。“契约”为API 的使用增加了限制和更多验证,编程因此变得更为安全,并可有效避免在运行中出现意料之外的错误。

契约式设计(或“契约式编程”)并不是编程领域的新概念,许多语言中已经有类似的实现了。代码契约为.NET 引入了这种编程范式。简单地说,它在委托方(调用者)和提供方(被访问的API)两者之间建立一个契约,在遵守契约规范的情况下,委托方则更有把握从提供方那里获得预期的结果,而提供方也对委托方发起正确的调用有了更多信心。

目前代码契约组件中包含三种契约条件:前置条件(pre-conditions)、对象不变量(object invariants)、及后置条件(post-conditions)。前置条件可检查构造函数或方法的调用是否得到了正确的参数。后置条件则用于检验返回值的合法性。对象不变量则将特定条件运用于对象的状态上,确保其不会拥有非法的值。

这听起来与单元测试很相像,不过它意味着现在已经可以在构建期间执行这些验证了。编译器会根据契约来检查代码是否满足了所有的条件,并在出现状况时发出警告。这样程序员就可以立即得知条件是否得到满足,并在运行代码之前进行一定调整。

目前DevLabs 的工作还包括从契约中生成项目文档。任何人阅读了某个API 的文档之后就能了解它所有的契约条件。

使用代码契约能够得到更好、更安全的代码,并为外部API 提供合适的使用指导,最终有助于开发出更高质量的软件。

有用的链接:代码契约在线文档微软研究院的代码契约网站相关论坛

查看英文原文: Code Contracts for .NET Is Available for Download

2009-02-25 10:072325
用户头像

发布了 157 篇内容, 共 60.7 次阅读, 收获喜欢 6 次。

关注

评论

发布
暂无评论
发现更多内容

大模型训练中的高性能计算与通信优化

百度开发者中心

深度学习 大模型 #人工智能

流式数据库引擎备受关注,亚信安慧AntDB数据库受邀参加“2023中国PostgreSQL数据库生态大会”

亚信AntDB数据库

AntDB AntDB数据库

可测性,到底是什么?

老张

质量保障 质量门禁

LTV预测算法从开发到上线,浅谈基于奇点云DataSimba的MLOps实践

极客天地

“PO价值最大化”沙盘演练 · 上海 · 第二期

ShineScrum

Macos端音频标签编辑器 Mp3tag激活中文版最新

胖墩儿不胖y

Mac软件 音频标签编辑器

PolarDB-X V2.3 集中式和分布式一体化开源发布

阿里云数据库开源

polarDB PolarDB-X

一文了解亚马逊云科技最新大语言模型

苏沐

大模型 亚马逊 亚马逊云科技 向量数据库

在Javascript中为什么 0.1+0.2 不等于0.3 ? 源代码详细解析

互联网工科生

JavaScript

Codigger,你的代码安全卫士

知者如C

大模型训练中的超参数优化策略

百度开发者中心

深度学习 大模型 #人工智能

软件测试/测试开发丨接口测试学习笔记,TcpDump与WireShark

测试人

软件测试 接口测试

光纤的跳线和尾纤区别

小魏写代码

调用API接口获取淘宝商品数据:详细指南与代码实践

Noah

国外服务器购买必备知识:如何避免常见陷阱?

一只扑棱蛾子

大模型训练,推动NLP发展的强大引擎

百度开发者中心

自然语言处理 大模型训练 #人工智能

.NET代码契约组件目前已经提供下载_.NET_Abel Avram_InfoQ精选文章