《整洁代码之道》读后感
写代码如同写文章,好的代码读起来像散文一样如沐春风。我们追求的代码是可读的、可修改的,可以给人视觉冲击的。
这是一些总结得到小tips
- 命名一定要能够准确又完整地表达变量或函数的意思,比如流失的时间,应该写成ElapsedTimeInDay而不是d。这样的作用首先是易读,还有好搜索、易读的优点。
- 函数要短小而集中,每个函数只解决一件事。一般美丽的代码的函数代码行数都很少,都是调用了n个其他函数,以此类推,最后落足到底层抽象层次,得到复用的效果。
- 怎么理解这个一件事呢?就是一个抽象层级上的事情,如下图用To去理解这件事。
-
遇到必须需要很多代码的函数时,可以使用多态原理用抽象工厂隐去,只暴露出来接口中的函数定义。
-
函数的参数要尽可能少,因为过多的参数有过强的概念性。
-
怎么减少参数:1.写函数的时候可以传入默认值,这样有利于函数的重用复用;2.无法删减的参数可以包成对象(类);3.当参数中有对象时,可以考虑把函数写成类的方法,这样就省去一个参数的麻烦;4.把参数改成本类的成员变量,这样就不用传参的。最终的目的是有助于该函数的理解和维护。
-
其他tips:1.传入的参数不要是bool类型,这种情况就把函数分开写成两个函数;2.用返回值不要用输出参数,混乱的使用很难做项目的交接;3.传参和返回都要保证不是Null,否则就会多出很多的判断,而且代码也会很混乱;4.不传入Null可以在上一层做一波判断解决,不返回Null就需要把询问和处理分开
通常的逻辑我要查询书,如果没找到书就返回None;可以分成两步,第一步if判断是否有书,第二步再做找书及之后的操作
-
-
思考:过程式编程和面向对象编程在代码维护上的差异
- 过程式:任何一个问题有数据和方法两块,数据用数据结构、全局变量、枚举等等写好,方法则处理具体问题。此时如果要添加或修改数据,就需要修改所有的方法;但如果像添加一个方法的话,就可以直接加。
- 面向对象:可以利用多态实现,也就是抽象方法的重写,这样如果添加和修改数据,只需要再写一个类;但如果要增加方法或者修改方法的参数,那么所有继承的类都要修改。
- 总结:过程式更适合数据比较固定,需要不断添加方法;面向对象更适合数据需要不断变化的,大多数情况更高效,比如错误异常就是用类实现的。
-
**格式要保证统一,**比如括号、缩进,逻辑相近的变量和方法应放在一起,由一个函数引出的函数应尽量靠近。
-
类C中的方法只能调用C中的、参数对象中的方法、f创建的对象、C的对象变量,其他的类方法不能使用,否则会引起混乱。