🧩 第六章 重用:OOP带来的软件重用和思想重用
📄 一句话概括

半成品的意思是骨架已搭好、只留几个洞——实测填空只占 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 秒实验

  1. 数一数你项目里框架代码和业务代码的行数比。
  2. 找一个你写过的脚本,判断它套框架是帮忙还是添乱。

常见误区

  1. 以为用框架就是省事。62% 的代码不由你决定,这是交换。
  2. 以为框架越重越好。骨架比业务还长时,它是负担。
自测三问(点开对答案) 1. 实测骨架和填空各几行、占比多少? —— 骨架 10 行、填空 6 行、共 16 行,填空占 38%。 2. 省下的那部分是哪些事? —— 初始化、日志、计时、异常兜底、收尾清理——枯燥又最容易漏的四五件事。 3. 什么时候不该用框架? —— 程序小到骨架比业务还长,或者流程和业务天然相反——要扭着写就是不合用。

相关笔记