📄 一句话概括
本书的取舍很明确:What 讲透、Why 讲透、How 只给最小限度——因为 How 会过时,What 和 Why 不会。
📝 本节和前面几节的关系
1.4~1.7 讲完了三个难处,这一节说作者打算怎么破。
一、三列的分工
What——这东西是什么。给你一个能说出口的定义。 Why——为什么需要它。没有它之前,人们卡在哪。 How——怎么写。只给一句最小可行的写法。 本书把前两列讲透,第三列点到为止。这是刻意的取舍,不是偷懒。
二、为什么 How 可以少讲
How 会过时。2005 年写 Java 的写法,2026 年有一半不适用了。 What 和 Why 不会过时。多态为什么存在,三十年前和今天一样。 而且 How 有更好的来源:语言手册、框架文档、IDE 提示——查一下就有,还比书新。 书的价值在【没人能替你查】的那部分。
三、这对读者的要求
读的时候要主动问:这段在讲 What、Why 还是 How? 看到 How 只有一句话,别嫌少——那是留给你自己去查的接口。 看到 Why 讲了三段,别嫌啰嗦——那才是这本书真正要给的东西。
四、一个提醒
只读这本书学不会写代码。它不讲语法细节。 但也别指望手册能告诉你该不该用某个技术——手册只讲怎么用。 两样都要:书给判断力,手册给操作。
五、动手 Demo:重点讲解【是什么】和【为什么】
拿五个核心概念做一次试验:每个都写 What、Why、How 三句,然后数字数。 看三列的分量差多少。
rows = [
("封装", "数据和方法装进一个盒子", "防止别人绕过规则改数据", "private 字段"),
("多态", "同一调用,落到不同实现", "调用方不必知道是哪个类", "父类引用指子类"),
("继承", "子类自动拥有父类成员", "共同点只写一遍", "extends"),
("框架", "应用程序的半成品", "不必从零搭骨架", "继承基类"),
("设计模式", "被验证过的类摆放方式", "不必重新发明", "照模式写"),
]
for i, name in ((1, "What"), (2, "Why"), (3, "How")):
n = sum(len(r[i]) for r in rows)
print(name, n, "字")
实跑输出:
--------------------------------------------------------------------
重点讲解【是什么】和【为什么】
--------------------------------------------------------------------
本书的写法很明确:**What 讲透,Why 讲透,How 只给最小限度。**
为什么?因为 How 会过时,What 和 Why 不会。
概念 What Why How(简)
----------------------------------------------------------------------------------
封装 数据和方法装进一个盒子 防止别人绕过规则改数据 private 字段
多态 同一调用,落到不同实现 调用方不必知道是哪个类 父类引用指子类
继承 子类自动拥有父类成员 共同点只写一遍 extends
框架 应用程序的半成品 不必从零搭骨架 继承基类
设计模式 被验证过的类摆放方式 不必重新发明 照模式写
三列 总字数 占比
-------------------------
What 50 40%
Why 42 34%
How 32 26%
上面这张表是我自己写的,**How 那一列被压到最短——这正是本书的取舍。**
想学 How,去看语言手册和框架文档;
**想知道【这东西为什么存在、什么时候该用】,才是这本书要给你的。**
实测:What 50 字、Why 42 字、How 32 字——How 被压到最短。 这正是本书的取舍:想知道怎么用,去看手册;想知道为什么用,才读这本。
30 秒实验
- 用 What/Why/How 三句话解释一个你熟悉的术语,看看哪一句最难写。
- 翻一本语言手册,找找它讲不讲 Why。
常见误区
- 嫌 How 讲得少。那是留给你自己查的接口。
- 以为读完就会写。这本书给判断力,不给操作手册。
自测三问(点开对答案)
1. 本书对 What、Why、How 的取舍是什么? —— What 讲透、Why 讲透、How 只给最小限度的一句。 2. 为什么 How 可以少讲? —— How 会过时,且有更好的来源(语言手册、框架文档、IDE 提示),书的价值在没人能替你查的部分。 3. 只读这本书能学会写代码吗? —— 不能,它不讲语法细节;但手册也只讲怎么用、不讲该不该用,两样都要。- ☐ 下一节(1.9 本书的构成)
相关笔记
- 面向对象难的原因 — 这套写法的由来
- 原因之一:OOP结构复杂 — How 少讲正是为此
- ⚙️ 程序是怎样跑起来的(第3版) · 索引 — 同系列,写法一致
- 🧩 面向对象是怎样工作的 · 索引