1. 为什么值得把一本好书读第二遍
最近一个月,趁着娃不在身边,我一点一点地把之前读过的软件开发经典之作《重构》又看了一遍。这也是顺应了我现在的阅读习惯——遇到一本好书不容易,值得多看几遍。
第一遍读的时候,更多是在"认识"这些手法;第二遍读,才真正开始"体会"作者为什么这么设计。同一本书,在不同的经验阶段读,收获完全不同。
2. 大师的展示手法:先给效果,再给过程
作者的展示手法非常人性化:先以一小段简洁的示意图展示当前重构的目的和效果,然后再以一个较为详细的例子,一步步地去实现当前目标。
最近我的上位机开发框架
- 工厂模式创建对象对应11.8节的以工厂函数取代构造函数
- 指令模式封装业务逻辑对应11.9的以命令取代函数
还有日常函数提炼、方法改名、设计模式的提炼都不一一列举了。
看似繁杂的内容背后,隐藏的是大师扎实的编程功底和大道至简的代码哲学,而且能将这些思想言简意赅地通过文字传达给读者——这应该就是所谓的工匠精神吧。
这里面的大部分重构手法我都应用到了自己的日常工作中,有些比较复杂的,我也只是看个大概,等真正用到的时候再来细看。掌握 20% 的技巧就能解决 80% 的问题,关键是这 20% 需要你日积月累的练习。
3. 重构、设计模式与 TDD:三位一体的核心基础
重构、设计模式、测试驱动开发,这三个技术可以说是软件开发的核心基础,三者相辅相成:
- 重构的目的之一,是为了提炼出有用的设计模式;
- 设计模式为重构提供了方向和目标,让代码演进有章可循;
- TDD则保证了重构过程中不引入新的 bug,是安全网。
三者形成一个正向循环:有测试兜底,才敢大胆重构;重构到位,模式自然浮现;模式清晰,后续重构又更有方向。
4. 一个略微悲哀的观察
我也经常向同事推荐这些书目,基本上都是说的多、看得少。大部分人还是过于追求快速解决问题,而不想着背后有哪些可以去学习的地方。
从业 6 年后,我发现一个略微悲哀的现象:很多程序员其实并不喜欢技术,更多的时候是为了糊口而已。
巴菲特说过,要选择自己喜欢做的事情,并且努力做下去。搞技术有什么不好的?这家不行去那家干,做得越久越轻松;公司的发展,总是要一些做实事的人嘛,更何况拿的钱其实也不少哈。
5. AI 时代,普通人更该加固自己的护城河
随着 AI 的发展,很多程序员都在焦虑自己哪一天会不会被 AI 替代。
其实在工作中真正思考过就会发现:AI 可以帮你做很多重复性的活,但它很难做出好的决策,因为物理世界的经验、个人对于事物发展的看法,是 AI 当前很难学习的。
在 AI 逐渐提高效率的当下,普通人更应该重视基本功,多学习、多思考,形成一套自己的知识体系,加固自己的护城河,才能在 AI 浪潮的冲击下保全自身。
6. 小结
- 好书值得重读,不同阶段读同一本书,收获不同;
- 重构、设计模式、TDD 是相辅相成的核心基础,掌握 20% 就能解决 80% 的问题;
- 选择自己喜欢做的事并坚持下去,做实事的人永远有价值;
- AI 提升的是效率,替代不了判断力,基本功才是真正的护城河。