关于本书
《程序员修炼之道》是编程领域的经典书籍,已经影响了无数开发者。它不教你具体语言,而是教你如何成为一名 务实的程序员。
核心哲学
我的源码被猫吃了
“提供选择,别找借口。”
务实的程序员承担责任。当出问题时:
- 不要说 “这不是我的代码”
- 不要说 “在我的机器上能运行”
- 应该说 “我来调查这个问题”
软件的熵
“破窗理论:一扇破窗如果不修,就会有更多窗户被打破。”
代码中的”破窗”包括:
- 糟糕的设计
- 错误的决策
- 低劣的修复
- 临时的补丁
发现破窗就立刻修复。 不要留待”以后”。
石头汤与煮青蛙
“做变化的催化剂,而不是变化的受害者。”
不要等完美方案。先做一个原型,展示价值,然后让它成长——就像石头汤的故事。
务实的技巧
DRY 原则
“Don’t Repeat Yourself” — 知识的唯一表示
// ❌ 重复
function getUserFullName(user) {
return user.firstName + ' ' + user.lastName;
}
function getAdminDisplayName(admin) {
return admin.firstName + ' ' + admin.lastName;
}
// ✅ DRY
function getFullName(person: { firstName: string; lastName: string }) {
return `${person.firstName} ${person.lastName}`;
}
正交性
“消除不相关事物之间的影响。”
正交的系统:
- 每个组件独立变化
- 修改一处不影响其他
- 易于测试和组合
曳光弹
“用曳光弹找到目标,而不是猜测。”
先构建一个端到端的薄切片,验证架构可行,再逐步充实。
端到端 → 数据库 → API → UI
↑ 可以运行的最小原型
命令行美学
一个编辑器
精通一个编辑器,让它成为你的延伸。无论是 Vim、Emacs 还是 VS Code:
- 学习所有快捷键
- 自定义配置
- 安装高效插件
纯文本
“知识的持久存储格式是纯文本。”
- 配置文件用 YAML/TOML,不用二进制
- 文档用 Markdown
- 数据交换用 JSON
版本控制
“总是使用版本控制,即使你的项目很小。”
职业成长
定期投资知识组合
像投资者管理投资组合一样管理你的知识:
- 每年学习一门新语言 — 拓展思维模式
- 每季度读一本技术书 — 深度学习
- 参与技术社区 — 开源贡献、技术分享
- 实验不同平台 — 不要只在一个生态中
沟通技巧
“除非你交流,否则好主意就是无用的。”
- 了解你的听众 — 用他们能理解的语言
- 知道何时停止 — 不要过度解释
- 构建文档原型 — 先写下来再修改
我的感悟
读完这本书,最深刻的三个收获:
- 责任心 — 代码是我的作品,我要为它负责
- 工具意识 — 好工具能成倍提升效率
- 持续学习 — 技术在变,但思维方式是持久的
总结
务实的程序员:
- 关心代码质量 — 像工匠对待作品
- 善用工具 — 让工具为自己服务
- 承担责任 — 不找借口,提供方案
- 持续成长 — 永远在学习
“这是一个不可思议的职业:我们可以用纯粹的思想创造事物。”