• Utility, Helper, Common常被用来给静态的工具类命名,我一看到这样的东西就不由地皱眉头,不是说工具类没有用,而是因为看到太多工具类的误用了。下面是我在工作中遇到的两个例子。

    有一次,看到下面的Java代码:

    public void doSomething(){
    if(StringUtil.isEmpty(this.value)){
    // do this way ...
    }
    else{
    // do that way ...
    }
    }

    代码使用了StringUtil,觉得奇怪,难道内建的String功能不够强大,还要搞出个StringUtil?直觉告诉我,isEmpty是多余的,一定是哪里做错了什么......

  •     单元测试可以确保代码的局部行为是按照设计意图实现的,但单元测试只能覆盖一部分逻辑,还有些逻辑需要引入集成测试。尽管如此,很多bug还是 很难被各类测试覆盖,此时系统就特别依仗良好的设计了,良好的设计简化单元测试,让深层的逻辑变得简单,进而让更多的逻辑变得可测。糟糕的设计让单元测试 成为负担,而且往往导致重复的测试和难以理解的测试。
        这里说的良好设计当然就是指简单设计,但有时“简单”二字...