50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

.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:072397
用户头像

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

关注

评论

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

TypeScript 变量声明

Emperor_LawD

typescript 基础 5月月更

从火车票验票来说Flutter的网络请求会话管理

岛上码农

flutter 安卓开发 跨平台开发 ios 开发 5月月更

在线Excel转Text工具

入门小站

工具

2021年学习Java还有意义吗?

爱好编程进阶

Java 程序员 后端开发

3年CRUD程序员3个月啃完这份524页PDF成功涨9k!

爱好编程进阶

Java 程序员 后端开发

Docker从入门到干事,看这一篇就够了

爱好编程进阶

Java 程序员 后端开发

Docker Swarm从部署到基本操作

爱好编程进阶

Java 程序员 后端开发

LeetCode 24:交换链表

武师叔

5月月更

2021-3-29 【PTA】

爱好编程进阶

Java 程序员 后端开发

2021秋招运维工程师岗位常考的知识点

爱好编程进阶

Java 程序员 后端开发

28天面试突击:JVM+Redis

爱好编程进阶

程序员 后端开发

Day146

爱好编程进阶

Java 程序员 后端开发

DirectByteBuffer内存释放

爱好编程进阶

Java 程序员 后端开发

docker 基本知识

爱好编程进阶

程序员 后端开发

dubbo + zookeeper + spring 分布式系统

爱好编程进阶

Java 程序员 后端开发

ElasticSearch Client详解

爱好编程进阶

Java 程序员 后端开发

90后表示已经躺平,我就静静的看着你们00后卷

爱好编程进阶

Java 程序员 后端开发

Ajax 使用ajax加上get和post方法,通过后台加载数据,并在网页上进行显示

爱好编程进阶

Java 程序员 后端开发

CGBTN2110-DAY02总结复习

爱好编程进阶

Java 程序员 后端开发

超级原始人系列盲盒即将上线,PlatoFarm赋能超多权益

BlockChain先知

三、应用高可用之数据设计

穿过生命散发芬芳

5月月更 高可用设计

30道经典的Java基础面试题集锦

爱好编程进阶

程序员 后端开发

微博系统中“微博评论”的高性能高可用计算架构

哈喽

「架构实战营」

eclispe git 安装使用

爱好编程进阶

Java 程序员 后端开发

30分钟掌握沧湖一体化:flink+hudi

爱好编程进阶

程序员 后端开发

linux线上CPU100%排查

入门小站

Linux

读《Software Engineering at Google》(25)

术子米德

架构师成长笔记

在线JSON转换成Excel文件工具

入门小站

工具

7-1 银行家算法--安全性检查 (20 分)(思路+详解+知识分析)宝 你今天 AC了吗

爱好编程进阶

Java 程序员 后端开发

centos7

爱好编程进阶

Java 程序员 后端开发

架构实战营模块二作业

哈啰–J

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