《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.测试

    测试边界条件

    使用覆盖率工具

    测试速度快



 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值