为什么要阅读本书?
- 你是个程序员
- 你想成为更好的程序员
要有代码
代码永存
我们永远抛不掉代码 因为代码呈现了需求的细节。某些层面上 这些细节无法被忽略或抽象 必须明确之 将需求明确到机器可以执行的细节程度 就是编程要做的事
糟糕的代码
糟糕的代码足以毁了公司
稍后等于永不
混乱的代价
混乱增加 — 团队生产力下降 — 增加人手 — 新人不熟悉系统设计,什么修改符合设计意图,什么修改违背设计意图 — 制造更多混乱 — 生产力继续下降
华丽新设计
花时间保持代码整洁不但关乎效率 还关乎生存
态度
程序要遵从不了解混乱风险的经理的意愿 也是不专业的做法
病人请求你在给他做手术前别洗手 因为那会花太多时间 你会照办吗?拒绝遵从!因为医生比病人更了解疾病和感染的风险!
医生如果按病人说的办 就是一种不专业的态度
谜题
不专业:开发期限压力 — 没法做得更快 — 制造混乱
专业人士:明白制造混乱无助于赶上期限 混乱只会立刻拖慢你 叫你错过期限 赶上期限的唯一方法 —— 做得快的唯一方法 —— 就是始终尽可能保持代码整洁!
整洁代码的艺术
写整洁代码 需要遵循大量的小技巧 整洁感&代码感
什么是整洁代码?
整洁的代码:优雅 几乎没有改进的余地 代码作者什么都想到了 如果你企图改进它 总会回到原点 赞叹某人留给你的代码
- 通过所有测试
- 消除重复
- 提高表达力
- 逻辑简洁明确 —— 小规模抽象。讲述事实 不引人猜测
- 只做一件事 —— 每个函数 每个类 每个模块 都全神贯注于一事 完全不受四周细节的干扰和污染
- 减少依赖 —— 便于维护 便于他人增补 小块代码
- 细节上花心思 —— 依据分层完善错误处理代码 内存泄漏 竞态条件代码
- 性能调至最优
思想流派
整洁代码派
我们是作者
读写时间比例超过 10:1 让读的过程变得轻松 即便那会使得编写过程更难 使之易读也使之易写
想干的快 想早点做完 想轻松写代码 先让代码易读吧
童子军军规
让营地比你来时更干净!
前传与原则
设计原则
- 单一权责原则
- 开放闭合原则
- 依赖倒置原则