《代码大全》读书笔记
重读 Steve McConnell 的《代码大全》(Code Complete),每次都有新的收获。这本 900 多页的大部头,是软件构建领域的经典之作。
核心观点
1. 软件构建是核心活动
很多项目把太多精力放在前期设计和后期测试上,忽视了构建(编码)阶段。实际上,构建是唯一产出最终产品的活动。
2. 先明确问题,再解决问题
"问题的定义是智识工作中最重要的部分。" —— 爱因斯坦
在写代码之前,先确保你在解决正确的问题。
3. 隐喻的力量
用恰当的隐喻理解软件开发:
| 隐喻 | 启示 |
|---|---|
| 写作 | 先写草稿,再修改 |
| 农耕 | 播种、培育、收获,不能跳过阶段 |
| 建筑 | 先打地基,再建上层 |
实用技巧
命名
- 名字应该描述"是什么",而不是"怎么做"
- 避免缩写(除非是广泛认可的)
- 布尔变量用 is、has、can 前缀
函数
- 一个函数只做一件事
- 函数长度不超过一屏(约 200 行)
- 参数不超过 7 个
错误处理
- 用异常替代返回错误码
- 在合适的层次处理错误
- 不要让异常破坏数据
总结
这本书不是教你某种语言或框架,而是教你如何写好代码。无论技术如何变化,这些基本原则不会过时。