星空网 > 软件开发 > ASP.net

利用代码契约编写更好的代码

(此文章同时发表在本人微信公众号“do.NET每日精华文章”,欢迎右边二维码来关注。)

题记:要编写更好代码的途径有很多,其中一种方式就是给代码加上契约。今天推荐的文章就是介绍微软研究院推出的开源Code Contract工具库的使用。

所谓代码契约就是让你用额外的代码来表达应用程序中对业务代码的假设情况,一般可以执行预先条件判断、过后条件判断和对象不可变判断。而微软研究院为.NET提供了这样的工具,即VS的扩展工具Code Contracts for .NET(现在仅支持到2013版)。安装这个工具后,可以在项目属性中看到额外增加的一个选项卡,如下图所示:

利用代码契约编写更好的代码

从图中可以看到,我们可以执行两种检查:运行时检查和静态检查。这个也是Code Contracts for .NET提供的三大功能中的两个,还有一个是文档生成器。

运行时检查

这个功能通过提供一个二进制重写器,把你的代码契约注入到程序当中,以便执行过程中对程序进行检查。这种被重写的程序也提高了测试性,因为每个契约都扮演着一个神谕者,可以预言测试是否可能通过。同时一些自动化工具,比如Pex也可以利用契约来生成更加有意义的单元测试,因为不符合预先条件判断的无意义单元测试就不用生成了。

静态检查

这个功能通过提供一个静态检查器,甚至在程序没有运行的情况下,就能判断是否存在违反契约的情况。其既可以检查隐式契约,比如空引用和数组边界,也可以检查显式契约。

文档生成器

这个功能可以把契约信息放到现存的代码注释

在我看来:代码契约有点类似断言,但是比断言要强大;也类似单元测试,但是比单元测试根据底层也是对单元测试的一种补充。

Dirk Strauss的这篇文章有简单明了的示例代码和直观的截图,对于这个工具的使用是一个很好的入门教程。“阅读原文”即可访问这篇文章。

原文地址:http://www.dirkstrauss.com/programming/introducing-code-contracts#.VWCNlvnvO70




原标题:利用代码契约编写更好的代码

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

一不小心坑惨自己,listing优化别大意!:https://www.ikjzd.com/articles/97735
如何在product description当中添加产品说明书?:https://www.ikjzd.com/articles/97737
6月17日开始实行!加拿大新商标法生效倒计时!:https://www.ikjzd.com/articles/97738
亚马逊淡季站外引流怎么做?:https://www.ikjzd.com/articles/97741
速卖通运营技巧分享:教你提升速卖通店铺销量!:https://www.ikjzd.com/articles/97742
亚马逊中国:海外购选品总量破 2000 万,将重点发力海外购业务!:https://www.ikjzd.com/articles/97743
无锡旅游景点竹海 - 无锡的竹海:https://www.vstour.cn/a/363178.html
5月贾汪好玩的地方 贾汪哪有好玩的地方:https://www.vstour.cn/a/363179.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流