编程与开发 · 第 1 期

复制开源 vs 从零造,哪个更快?

为什么造轮子是更快的捷径 · build your own x

"别重复造轮子"是程序员最大的认知陷阱——造过轮子的人,调别人的轮子才调得动。没造过轮子的人用开源库,遇到 bug 只能等作者修;造过的人,看一眼就知道问题在哪。造轮子不是浪费时间,是买"理解"。
⏱ 约 11 分钟 🎯 想提升工程能力的开发者 📦 源:build-your-own-x 教程

01一个反共识:造轮子是为了理解轮子

"别重复造轮子"这句话被滥用成了不学习的借口。它的原意是"别在生产系统里用自己造的劣质轮子",不是"别造轮子"。

build-your-own-x 这类项目的核心论点:从零造一遍 Shell、Git、数据库、编译器,你获得的不是那个轮子本身,而是对轮子内部的理解。这种理解让你:

没造过轮子的人,
不配说别造轮子。
灏天文库 · 编程与开发 P.01

02什么时候造、什么时候抄:决策器

不是所有轮子都该造。造轮子有成本,抄轮子有风险。下面这个决策器问 4 个问题,给你一个建议。

🛠️ 造轮子决策器
回答 4 个问题,看你是该造、该抄、还是该混合。

回答完所有问题看建议 →

造轮子是买理解,
抄轮子是买时间。
灏天文库 · 编程与开发 P.02

03造轮子的正确姿势:从最小可用开始

决定造了,别一上来就造工业级。build-your-own-x 的标准路径是"最小可用 → 逐步加复杂度":

  1. 先造能跑的最小版:Shell 先写 18 行 REPL,Git 先写一个能存 blob 的对象库,数据库先写一个 B+ 树插入。
  2. 每一步加一个真实问题:Shell 加管道、加信号;Git 加 staging、加 packfile;数据库加 WAL、加事务。
  3. 对照真实实现:每加一块,去看真 Git/真 SQLite 怎么做,理解它为什么这么取舍。
  4. 不追求生产可用:目标是理解,不是替代真轮子。能跑、能改、能解释清楚就够。

这条路径的关键是每一步都留下一块可复用的零件。最后你不仅理解了轮子,还攒了一堆能拼进真实项目的小模块。

造轮子的终点不是轮子,
是理解和零件。
灏天文库 · 编程与开发 P.03

04带走这套清单

✅ 造轮子 6 条可执行规则

  1. 学习目标优先造:想理解某类系统,从零造最小版,别只看源码。
  2. 生产目标优先抄:上线赶时间,用成熟开源,但留出"读懂源码"的预算。
  3. 从最小可用开始:先 18 行能跑,再逐步加复杂度,别一上来造工业级。
  4. 对照真实实现:每加一块,看真轮子怎么做,理解它的取舍。
  5. 不追求替代真轮子:目标是理解 + 攒零件,不是自己造个生产级的。
  6. 造过的轮子要记下来:写成博客/教程,造一遍的收获,写出来才算内化。
造一遍,
胜过读十遍。
灏天文库 · 编程与开发 P.04