news 2026/10/28 16:32:00

重读《重构》:重构、设计模式与 TDD,是程序员最该守住的基本功

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
重读《重构》:重构、设计模式与 TDD,是程序员最该守住的基本功

1. 为什么值得把一本好书读第二遍

最近一个月,趁着娃不在身边,我一点一点地把之前读过的软件开发经典之作《重构》又看了一遍。这也是顺应了我现在的阅读习惯——遇到一本好书不容易,值得多看几遍。

第一遍读的时候,更多是在"认识"这些手法;第二遍读,才真正开始"体会"作者为什么这么设计。同一本书,在不同的经验阶段读,收获完全不同。

2. 大师的展示手法:先给效果,再给过程

作者的展示手法非常人性化:先以一小段简洁的示意图展示当前重构的目的和效果,然后再以一个较为详细的例子,一步步地去实现当前目标。

最近我的上位机开发框架

  • 工厂模式创建对象对应11.8节的以工厂函数取代构造函数
  • 指令模式封装业务逻辑对应11.9的以命令取代函数

还有日常函数提炼、方法改名、设计模式的提炼都不一一列举了。

看似繁杂的内容背后,隐藏的是大师扎实的编程功底和大道至简的代码哲学,而且能将这些思想言简意赅地通过文字传达给读者——这应该就是所谓的工匠精神吧。

这里面的大部分重构手法我都应用到了自己的日常工作中,有些比较复杂的,我也只是看个大概,等真正用到的时候再来细看。掌握 20% 的技巧就能解决 80% 的问题,关键是这 20% 需要你日积月累的练习。

3. 重构、设计模式与 TDD:三位一体的核心基础

重构、设计模式、测试驱动开发,这三个技术可以说是软件开发的核心基础,三者相辅相成:

  • 重构的目的之一,是为了提炼出有用的设计模式;
  • 设计模式为重构提供了方向和目标,让代码演进有章可循;
  • TDD则保证了重构过程中不引入新的 bug,是安全网。

TDD 测试保护

安全重构

提炼设计模式

代码结构更清晰

三者形成一个正向循环:有测试兜底,才敢大胆重构;重构到位,模式自然浮现;模式清晰,后续重构又更有方向。

4. 一个略微悲哀的观察

我也经常向同事推荐这些书目,基本上都是说的多、看得少。大部分人还是过于追求快速解决问题,而不想着背后有哪些可以去学习的地方。

从业 6 年后,我发现一个略微悲哀的现象:很多程序员其实并不喜欢技术,更多的时候是为了糊口而已。

巴菲特说过,要选择自己喜欢做的事情,并且努力做下去。搞技术有什么不好的?这家不行去那家干,做得越久越轻松;公司的发展,总是要一些做实事的人嘛,更何况拿的钱其实也不少哈。

5. AI 时代,普通人更该加固自己的护城河

随着 AI 的发展,很多程序员都在焦虑自己哪一天会不会被 AI 替代。

其实在工作中真正思考过就会发现:AI 可以帮你做很多重复性的活,但它很难做出好的决策,因为物理世界的经验、个人对于事物发展的看法,是 AI 当前很难学习的。

在 AI 逐渐提高效率的当下,普通人更应该重视基本功,多学习、多思考,形成一套自己的知识体系,加固自己的护城河,才能在 AI 浪潮的冲击下保全自身。

6. 小结

  • 好书值得重读,不同阶段读同一本书,收获不同;
  • 重构、设计模式、TDD 是相辅相成的核心基础,掌握 20% 就能解决 80% 的问题;
  • 选择自己喜欢做的事并坚持下去,做实事的人永远有价值;
  • AI 提升的是效率,替代不了判断力,基本功才是真正的护城河。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/28 16:31:53

从重复劳动到一条命令:自研前端脚手架工具t3code架构全解析

这个东西说来也挺有意思——我是在一次批量交付项目的时候,被逼着写下第一行t3code代码的。当时手上有三个后台管理系统要同期开工,前端结构几乎一模一样,无非是登录页、权限路由、若干CRUD页面换个名字,可我依旧要在每个工程里重…

作者头像 李华
网站建设 2026/10/28 16:29:36

agent-skills设计落地:从技能注册到Function Calling的智能体开发实践

做Agent开发快三年,我最深的体会是:智能体的上限,很大程度不是模型的聪明程度,而是你给它搭的“手和脚”好不好用。早期我做自动化工具,喜欢把所有逻辑都揉进一个巨大的系统提示词里,结果上下文越塞越满、指…

作者头像 李华
网站建设 2026/10/28 16:29:35

T3 Stack 全栈实战:从类型安全到部署性能优化的完整攻略

看到t3code这个名字,很多人第一反应是问我:它到底是个啥?不瞒你说,这是我们团队内部折腾了一个多月的全栈实验项目代号。T3 取的是 T3 Stack 的 T3,code 就是代码工程本身,合起来意思很直白:用 …

作者头像 李华
网站建设 2026/10/28 16:28:27

T3 Stack实战:构建代码片段管理与项目模板生成工具

1. t3code立项:一个被“复制粘贴”逼出来的内部工具如果你跟我一样,经历过“从旧项目里拷贝一份tsconfig和tailwind配置,再删几十个用不上的文件,最后还要把路由改一遍”这种循环,你大概能理解为什么我会做t3code。说出…

作者头像 李华
网站建设 2026/10/28 16:26:07

机器学习与数据挖掘基础:从概念到实战应用

1. 机器学习与数据挖掘基础概念解析在数据科学领域,机器学习与数据挖掘就像一对孪生兄弟,它们既有紧密联系又有明显区别。数据挖掘更侧重于从海量数据中发现模式和规律,而机器学习则专注于构建能够自动学习和改进的算法模型。Day02的学习内容…

作者头像 李华
网站建设 2026/10/28 16:25:27

T3 Stack实战:用tRPC与Prisma构建类型安全的全栈应用

近几年做全栈项目,我最常被身边人问到的一个问题是:前后端分离到底该怎么搭才不算过度设计?尤其是一个人负责全部开发时,又要认证、又要数据库、又要写接口文档、又要联调,最后往往耗在重复造轮子上。直到我完整跑通了…

作者头像 李华