在我职业之初,我想得最多的是:当调用一个方法时,传入的参数,我是进入该方法前检查呢?还是进入到该方法后检查?特别是在某个方法中,为了保证该方法能顺利执行,之前的条件检查、if…else…简直是噩梦。所以我会想:至于吗?有必要这样做吗?哇,这个问题让我纠结了好长时间。其实,问题本身并不难,只是需要抽象出一个理念,或是原则,然后一直这样做。后来,我为自己定个原则:在进入方法前,进行严格检查;而进入到方法后,只进行简单检查。也就是说,如果符合方法的需求,就执行,否则什么都不做,直接返回。之后,无意间看到“契约式设计”才意识到,我这样做原来有理论基础的,只是之前不知道而已。
因此,当我们不断前进时,的确需要时不时地看些理论,这样就会加深我们对问题的理解。
本文内容 概述
历史
描述
与软件测试的关系
概述
契约式设计/契约式编码(Design by Contract(DbC)/Programming by Contract,以下简称 DbC )是一种设计计算机软件的方法。这种方法描述了,软件设计者应该为软件组件定义正式的、准确的、可验证的接口规范,它扩展了抽象数据类型(abstract data type,ADT)对于先验条件(preconditions)、后验条件(postcondition)和不变性(invariants)的一般定义。这些规范称为“契约(contracts)”,它是一个比喻,类似于商业契约/合同的条件和职责。
(注:软件组