最近翻了一下代码整洁之道的内容,颇受启发,将其中部分我认为对我有意义的做了摘要如下。书中还有有关类和并发编程的部分没有阅读完,等之后阅读完再补充更新。

命名

  • 好的命名可以省掉注释
  • 不要怕用长命名,有意义和可读性比长度更重要
  • 尽力使命名可搜索

函数

  • 保持函数短小,单函数尽力不超过100行
  • 一个函数做一件事
  • 一个函数中代码的抽象层级尽量保持一致(实际开发中这点很难保证)
  • 需要过多参数的函数应当封装为类(面向对象编程时)

注释

  • 尽量避免注释,用代码本身来阐述,因为程序员总是在维护代码时忘记更新注释(这是真的。。)
  • 不要迷信别人的注释,原因同上(说起来都是泪)
  • 一旦决定注释,提供所有所需的无歧义的信息

编码风格

  • 向杂志排版设计学习,利用分隔符,意义相近的代码靠拢,概念有区别的用空格/空行予以水平和垂直方向上的分隔
  • 团队保持一致的编码风格(有效提高协作效率,不过很难约束团队成员)

对象

  • 不要盲目给私有成员添加赋值器与取值器,这样会暴露其实现:隐藏实现不是简单的在变量上加一个函数层,而是进一步的抽象,暴露其抽象接口使用户无需关心数据实现就能操作数据本体
  • 过程式代码(使用数据结构)便于在不改动其数据结构前提下添加函数,面向对象代码便于在不改动函数的前提下添加新类

错误处理

  • 错误处理不要返回null值(None)
  • 不要传递null/None值 (膝盖中了一箭)
  • 使用断言检查关键输入