《clean code》第八章 味道和启发

1.注释:

    a.不恰当的注释

    b.废弃的注释

    c.冗余的注释

    d.糟糕的注释(别闲扯,画蛇添足)

    e.注释掉的代码(删掉,别担心,是可以找回的)

2.函数:

    a.过多的参数(尽量少)

    b.输出参数(参数用于输入,而非输出,修改对象状态)

    c.标识参数(布尔值说明不止做了一件事)

    d.死函数(永不调用的方法要应该废弃)

3.避免传递浏览

    a.getB().getC().doSomeThing();

    如果多个模块使用类似a.getB().getC(),在B和C之间插入Q,就要找到太多a.getB().getC()改为a.getB().getQ().getC()。

应该简单的说:myCollaborator.doSomeThing();

示例代码:



可有改写为UserUtil.getEmpId()。
4.不要继承常量

5.常量vs枚举

使用enum代替public static final int;


改写:


语法介绍:点击打开链接

扩张enum:

enum的单例模式:

public class EnumSingleton {
    private EnumSingleton(){}

    public static EnumSingleton getInstance() {
        return Singleton.INSTANCE.getInstance();
    }

    private enum Singleton {
        INSTANCE;
        private EnumSingleton enumSingleton;
        private Singleton() {
            enumSingleton = new EnumSingleton();
        }
        public EnumSingleton getInstance() {
            return enumSingleton;
        }
    }
}

enum的单例模式有点:代码简单,线程安全,避免反射攻击,自由序列化。(其它单例模式也可以通过一些方法做到这些,但没有这个简单)

6.采用描述性名称


7.测试

    测试边界条件

    使用覆盖率工具

    测试速度快



 
 


猜你喜欢

转载自blog.csdn.net/iamxiapengfei/article/details/80931913