zoukankan      html  css  js  c++  java
  • 代码整洁之道自我总结

    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对比,不能优化性能。
  • 相关阅读:
    Thinkpad R400无线网络一个都不见了!
    如果使用安卓4.4的SD卡?
    如何使用安卓4.4的SD卡?
    在IAR使用FreeRTOS出现Error[Pa045]: function "XXX" has no prototype
    DSP5509的RTC实验-第3篇
    LWM2M简介-学习记录
    DSP5509的定时器实验-第2篇
    DSP5509的XF实验-第一篇
    华为LiteOS系统使用-任务调度函数-第一篇
    2017-12-24自选的股票之春秋航空
  • 原文地址:https://www.cnblogs.com/jaxlove-it/p/9380903.html
Copyright © 2011-2022 走看看