写点什么

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

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

关注

评论

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

重新初始化k8s集群

tiandizhiguai

云计算 云原生 k8s

SQL 优化(一):慎用 SQL 函数

hungxy

Java MySQL 后端

机遇与挑战——超级自动化产品的国产化替代已成为大势所趋

九科Ninetech

接口测试|Fiddler界面工具栏介绍(三)

霍格沃兹测试开发学社

纵横贯通的全面预算管理体系,从这里开始!

用友BIP

全面预算

探秘AI算力革命与低代码平台:引领人工智能狂潮

不在线第一只蜗牛

低代码 数智化 AI算力

低代码平台的核心能力有哪些?

力软低代码开发平台

接口测试|Fiddler会话栏中添加IP列

霍格沃兹测试开发学社

接口测试|Fiddler抓包设置及证书配置

霍格沃兹测试开发学社

修改SD WebUI为kitchen-theme

IT蜗壳-Tango

一套管理工具构建敏捷、多维、高效的全面预算管理

用友BIP

全面预算

Serverless函数计算介绍

天翼云开发者社区

云计算 函数计算

什么是算力网络

天翼云开发者社区

云计算 边缘计算 算力网络

分享一个在Reddit上保存视频到手机相册的办法真的YYDS!reddit video downloader!

frank

视觉系统对自动驾驶至关重要|数据堂

数据堂

教学实训模块升级,助力应用型数据科学人才培养|ModelWhale 版本更新

ModelWhale

数据分析 大模型 教学实训 在线编程 云课堂

探索支付宝云开发,开启一段100ms的神奇旅程!

TRaaS

支付宝小程序 云开发

软件测试/测试开发丨Git常用命令学习笔记

测试人

git 程序员 软件测试 测试开发

云原生时代数据治理的变革与创新

酷克数据HashData

完全自动驾驶车辆何时才能成为现实

数据堂

面向对象设计的逆向建模方法和开源工具

高鹏

Java 开源 架构 DDD 架构设计

聊聊信仰的力量

互联网工科生

程序员 信仰

跨架构平台在云计算中的应用

天翼云开发者社区

云计算 架构

千亿资产去哪了,资产管理如何摸清家底?

用友BIP

资产云

软件开发不需要会编码,谈谈我的开发捷径

互联网工科生

软件开发 低代码 开发

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