代码整洁之道自我总结

1、有意义的命名

2、函数要短小

3、函数只做一件事

4、每个函数一个层级

5、if-else,switch经常可使用状态模式等重构

6、输入参数有尽量少

  • builder模式
  • test(s) -> s.test()

7、无副作用 -> 即只做一件事

  如:checkPassword(),则方法里只做检查,不可以改变其他状态

8、分隔指令与查询

  如:不可以 boolean set(String name)。改成 boolean checkAndSet(String name) 可以勉强接受

9、能通过命名等方式说明函数的用途的,可不写注释

10、数据结构应该隐藏它的成员变量,通过接口访问

11、对象应该隐藏数据,暴露操作

  f.getA().do()不合适,若f是数据结构则可以

12、过程式代码:

    if(shape intanceof A){ doA();}

    else if(shape intanceof B){d0B();}

  面向对象式代码:

    A implement Shape

    B implement Shape

    shape.do();

  过程式代码难以添加新的数据结构,因为所有用到此处逻辑的地方都要改,方便添加新的函数

  面向对象代码难以添加新的函数,因为每个对象都要添加新函数,方便添加数据结构

13、代码必须写junit(没怎么实践过~~~)

14、模板模式

15、输入参数不该有boolean,它说明函数不止做一件事情

16、常量 VS 枚举(感触比较深的只有这俩点)

  • 通过常量来接受值时,可能传入不在常量类范围的值
  • 常量类是String类型时,不能用==对比,只能用equals对比,不能优化性能。

猜你喜欢

转载自www.cnblogs.com/jaxlove-it/p/9380903.html