我一直在考虑创建一个允许程序员在接口上指定不变量(前置条件和后置条件)的Java框架。目的是使代码更加健壮,并减少需要为同一接口的不同实现编写的单元测试的数量。
我设想创建一些使用程序员也会编写的不变量来注释方法的方法。例如。
interface Sort {
int [] sort(int [] nums);
}
将使用注释进行修饰,以确保任何实现都返回已排序的列表。此注释将链接到可以在编译时针对任何实现运行的单元测试。
这是一个疯狂的想法还是对更广泛的编程社区有用?
答案 0 :(得分:4)
答案 1 :(得分:2)
答案 2 :(得分:1)
我认为Bertrand Meyer的合约创意编程基本上已经死了。他为埃菲尔建立了前后条件,但这种语言在使用规模上低于拉丁语。
那里有合同库的Java编程; Contractor就是一个。但它的日子已经过去了。事实是,即使是埃菲尔也有办法在生产中关闭它们,因为运行时成本并不值得获益。
Stack Overflow上只有6个Eiffel问题 - 确实只有一小部分。如果你在其中搜索带有“合同”的SO标签,你会看到一个非常小的数字。对本网站的主题不太感兴趣。它声称吸引了世界上最大的专业程序员。
答案 3 :(得分:0)
什么伟大的编程理念不是疯了!!!我绝对认为这会有用。