代码之家  ›  专栏  ›  技术社区  ›  Tarski

在Java中向接口添加不变量

  •  6
  • Tarski  · 技术社区  · 14 年前

    我一直在考虑创建一个Java框架,允许程序员在接口上指定不变量(前置和后置条件)。这样做的目的是使代码更加健壮,减少为同一接口的不同实现编写单元测试的数量。

    我设想用不变量创建一些注释方法,程序员也会编写这些方法。例如。

    interface Sort {
        int [] sort(int [] nums);
    }
    

    将使用注释进行修饰,以确保任何实现都返回排序的列表。此注释将链接到一个单元测试,该单元测试可以在编译时针对任何实现运行。

    这是一个疯狂的想法还是对更广泛的编程社区有用?

    4 回复  |  直到 14 年前
        1
  •  4
  •   Gian    14 年前

    这听起来可能与 JML ESC/Java ,这两种方法在需要比通常的一组技术更高一点的软件质量的项目中得到了相当广泛的采用。

        2
  •  2
  •   Ian Fairman    14 年前

    干杯,

    伊恩。

        3
  •  1
  •   duffymo    14 年前

    我认为Bertrand Meyer的合同编程思想基本上已经过时了。他在埃菲尔铁塔上建立了前置和后置条件,但这种语言在使用范围上低于拉丁语。

    有合同库的Java编程; Contractor 是一个。但它的日子来了又去。事实上,即使是埃菲尔铁塔也有办法在生产中关闭它们,因为运行时成本不值得这么做。

    只有6个关于堆栈溢出的埃菲尔问题-确实是一个很小的百分比。如果您搜索带有“contract”的SO标签,您将看到一个非常小的数字。对这个网站上的话题不太感兴趣。它声称吸引了世界上最大的专业程序员观众。

        4
  •  0
  •   Jose Diaz    14 年前

    什么伟大的编程思想不疯狂!!!我绝对认为这会有用。