📄 一句话概括
半成品的意思是骨架已搭好、只留几个洞——实测填空只占 38%,剩下 10 行是框架替你写的。
📝 本节和前面几节的关系
6.5 讲清了谁调谁,这一节讲框架到底替你写了多少。
一、半成品有多半
实测一个最小框架骨架:已写好 10 行(初始化、日志、计时、异常兜底、收尾)。 你要填 6 行(load/transform/save 各几句)。 整个程序 16 行,填空占 38%。 省下的 10 行,全是【每次都一样、但每次都得写对】的东西。
二、省下的那部分值钱在哪
日志、计时、异常兜底、资源清理——这四件事最枯燥,也最容易漏。 框架把它们变成【默认行为】,你漏不掉。 所以用框架的收益不是少写,是【少漏】。
三、代价:你得接受它的骨架
想改流程,就得跟它对着干。 骨架是 10 行、填空是 6 行——这意味着 62% 的代码不由你决定。 所以选框架的第一件事是:接受它的流程,还是绕开它。
四、什么时候不该用框架
程序小到骨架比业务还长——比如一个 20 行的脚本,套框架只剩负担。 流程和你的业务天然相反——硬塞进去,每天在跟骨架打架。 判断标准:填空能自然填进去,就是合用;要扭着写,就是不合用。
五、动手 Demo:框架是应用程序的半成品
数一数一个最小框架:骨架写了几行、你要填几行。 算一下填空占比。
def mini_framework(load, transform, save):
before = 6 # 初始化、日志、计时、兜底
body = load() + transform() + save()
after = 4 # 收尾、上报、清理
return before, after, body
before, after, fill = mini_framework(
lambda: 2, lambda: 3, lambda: 1)
print(before + after, fill)
实跑输出:
--------------------------------------------------------------------
框架是应用程序的半成品
--------------------------------------------------------------------
半成品的意思是:**骨架已经搭好,只留几个洞让你填。**实测这个比例:
框架已经写好的行 10 行(初始化/日志/计时/兜底/收尾)
你要填的行 6 行(load/transform/save 各几句)
整个程序一共 16 行
填空占比 38%
角色 谁写 占多少
-------------------------------------
骨架、流程、兜底 框架 10 行
业务填空 你 6 行
**实测填空只占 38%——省下的 10 行是框架替你写的。**
**所以【用框架】不是偷懒,是把这些钱花在别人已经踩过的坑上。**
**代价是你得接受它的骨架**:想改流程,就得跟它对着干。
实测:骨架 10 行、填空 6 行、共 16 行,填空占 38%。 省下的 10 行全是枯燥又容易漏的东西(日志、计时、兜底、清理)——用框架的收益是【少漏】不是少写。
30 秒实验
- 数一数你项目里框架代码和业务代码的行数比。
- 找一个你写过的脚本,判断它套框架是帮忙还是添乱。
常见误区
- 以为用框架就是省事。62% 的代码不由你决定,这是交换。
- 以为框架越重越好。骨架比业务还长时,它是负担。
自测三问(点开对答案)
1. 实测骨架和填空各几行、占比多少? —— 骨架 10 行、填空 6 行、共 16 行,填空占 38%。 2. 省下的那部分是哪些事? —— 初始化、日志、计时、异常兜底、收尾清理——枯燥又最容易漏的四五件事。 3. 什么时候不该用框架? —— 程序小到骨架比业务还长,或者流程和业务天然相反——要扭着写就是不合用。- ☐ 下一节(6.7 世界上可重用的软件构件群)
相关笔记
- 框架存在各种含义 — 谁调谁
- 决心决定OOP的生死 — 同一笔账的另一种算法
- ⌨️ 编程原理 · 索引 — 程序骨架与流程
- 🧩 面向对象是怎样工作的 · 索引