代码整洁之道自我总结

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对比,不能优化性能。

 

转载于:https://www.cnblogs.com/jaxlove-it/p/9380903.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值