阅读《代码整洁之道》

Book
  • Seiri 正确的命名标识符
  • Seiton 整齐
  • Seiso 清洁 注释掉的代码,说明不需要了
  • Seiketsu 标准化
  • Shitsuke 自律 持续完善
  • 细节中自有天地

童子军军规

  • 上传的代码比下拉的代码更干净
  • 改好一个证明的变量名
  • 拆分过长函数
  • 消除重复的代码
  • 清理嵌套的If

有意义的命名

  • 使用可搜索的名称
  • 类型改变时,变量名同步
  • 类名是名词或者名词短语,不应是动词
  • 方法应该是动词或动词短语
  • 静态类无参构造函数
  • 每个概念对应一个词 如Controller和Manager
  • 尽可能用计算机术语 如JobQueue

函数

  • 短小 20行封顶最佳
  • 函数只做一件事 判断标准:能否在拆出一个函数
  • 函数的参数 无参>一个>多个
  • 函数的标识参数如果带了bool值,说明这个函数至少要做两件事情(3.6.5不赞同)
  • 指令和询问分隔开来 (Exists,Add)
  • 需要多重判断的方法,使用tryCatch替代各种日志打印
  • TryCatch中的代码块抽离为单独的函数
  • 如何写好规范函数,遵循规则,逐步打磨,没有人能一开始就写出规范的函数

注释

  • 尽量减少注释(不赞同)
  • 注释不能代替屎山

对象和数据结构

  • 得墨忒耳律
    final String outputDir = ctxt.getoptions().getScratchDir().getAbsolutePath()
  • 区分数据结构和对象,存放数据的结构不能喝对象混用

错误处理

  • 尽量别返回空值,别传递空值

单元测试

  • 测试代码和正式代码一样重要,要遵守设计规范
    • 构造测试数据
    • 操作测试数据
    • 检验操作是否得到期望结果

  • 变量和方法应该有各自的位置,从上至下,不要穿插书写
  • 高内聚 -每个变量都被每个方法所使用,该类具有最大的内聚性

系统

  • 系统构造和使用分开 不要使用延迟初始化/赋值 生命周期流程不明

评论