docs: 添加语言层要素文档
This commit is contained in:
parent
a2d6a70ec7
commit
d12b0bba5b
|
|
@ -0,0 +1,219 @@
|
|||
# 为了看懂 100% 代码,你必须掌握的全部“语言层要素”清单
|
||||
|
||||
---
|
||||
|
||||
# 一、先纠正一个关键误区
|
||||
|
||||
❌ 误区:
|
||||
|
||||
> 看不懂代码 = 不懂语法
|
||||
|
||||
✅ 真相:
|
||||
|
||||
> 看不懂代码 = **不懂其中某一层模型**
|
||||
|
||||
---
|
||||
|
||||
# 二、看懂 100% 代码 = 掌握 8 个层级
|
||||
|
||||
---
|
||||
|
||||
## 🧠 L1:基础控制语法(最低门槛)
|
||||
|
||||
你已经知道的这一层:
|
||||
|
||||
```text
|
||||
变量
|
||||
if / else
|
||||
for / while
|
||||
函数 / return
|
||||
```
|
||||
|
||||
👉 只能看懂**教学代码**
|
||||
|
||||
---
|
||||
|
||||
## 🧠 L2:数据与内存模型(非常关键)
|
||||
|
||||
你必须理解:
|
||||
|
||||
```text
|
||||
值 vs 引用
|
||||
栈 vs 堆
|
||||
拷贝 vs 共享
|
||||
指针 / 引用
|
||||
可变 / 不可变
|
||||
```
|
||||
|
||||
示例你要“秒懂”:
|
||||
|
||||
```c
|
||||
int *p = &a;
|
||||
```
|
||||
|
||||
```python
|
||||
a = b
|
||||
```
|
||||
|
||||
👉 这是**C / C++ / Rust / Python 差距的根源**
|
||||
|
||||
---
|
||||
|
||||
## 🧠 L3:类型系统(大头)
|
||||
|
||||
你需要懂:
|
||||
|
||||
```text
|
||||
静态类型 / 动态类型
|
||||
类型推导
|
||||
泛型 / 模板
|
||||
类型约束
|
||||
Null / Option
|
||||
```
|
||||
|
||||
比如你要一眼看出:
|
||||
|
||||
```rust
|
||||
fn foo<T: Copy>(x: T) -> Option<T>
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧠 L4:执行模型(99% 新人卡死)
|
||||
|
||||
你必须理解:
|
||||
|
||||
```text
|
||||
同步 vs 异步
|
||||
阻塞 vs 非阻塞
|
||||
线程 vs 协程
|
||||
事件循环
|
||||
内存可见性
|
||||
```
|
||||
|
||||
示例:
|
||||
|
||||
```js
|
||||
await fetch()
|
||||
```
|
||||
|
||||
你要知道**什么时候执行、谁在等谁**。
|
||||
|
||||
---
|
||||
|
||||
## 🧠 L5:错误处理与边界语法
|
||||
|
||||
```text
|
||||
异常 vs 返回值
|
||||
panic / throw
|
||||
RAII
|
||||
defer / finally
|
||||
```
|
||||
|
||||
你要知道:
|
||||
|
||||
```go
|
||||
defer f()
|
||||
```
|
||||
|
||||
**什么时候执行,是否一定执行**。
|
||||
|
||||
---
|
||||
|
||||
## 🧠 L6:元语法(让代码“看起来不像代码”)
|
||||
|
||||
这是很多人“看不懂”的根源:
|
||||
|
||||
```text
|
||||
宏
|
||||
装饰器
|
||||
注解
|
||||
反射
|
||||
代码生成
|
||||
```
|
||||
|
||||
示例:
|
||||
|
||||
```python
|
||||
@cache
|
||||
def f(): ...
|
||||
```
|
||||
|
||||
👉 你要知道**它在改写什么代码**
|
||||
|
||||
---
|
||||
|
||||
## 🧠 L7:语言范式(决定思路)
|
||||
|
||||
```text
|
||||
面向对象(OOP)
|
||||
函数式(FP)
|
||||
过程式
|
||||
声明式
|
||||
```
|
||||
|
||||
示例:
|
||||
|
||||
```haskell
|
||||
map (+1) xs
|
||||
```
|
||||
|
||||
你要知道这是**对集合做变换,不是循环**。
|
||||
|
||||
---
|
||||
|
||||
## 🧠 L8:领域语法 & 生态约定(最后 1%)
|
||||
|
||||
```text
|
||||
SQL
|
||||
正则
|
||||
Shell
|
||||
DSL(如 Pine Script)
|
||||
框架约定
|
||||
```
|
||||
|
||||
示例:
|
||||
|
||||
```sql
|
||||
SELECT * FROM t WHERE id IN (...)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 三、真正的“100% 看懂”公式
|
||||
|
||||
```text
|
||||
100% 看懂代码 =
|
||||
语法
|
||||
+ 类型模型
|
||||
+ 内存模型
|
||||
+ 执行模型
|
||||
+ 语言范式
|
||||
+ 框架约定
|
||||
+ 领域知识
|
||||
```
|
||||
|
||||
❗**语法只占不到 30%**
|
||||
|
||||
---
|
||||
|
||||
# 四、你会在哪一层卡住?(现实判断)
|
||||
|
||||
| 卡住表现 | 实际缺失 |
|
||||
| --------- | ------- |
|
||||
| “这行代码看不懂” | L2 / L3 |
|
||||
| “为啥结果是这样” | L4 |
|
||||
| “函数去哪了” | L6 |
|
||||
| “风格完全不一样” | L7 |
|
||||
| “这不是编程吧” | L8 |
|
||||
|
||||
---
|
||||
|
||||
# 五、给你一个真正工程级的目标
|
||||
|
||||
🎯 **不是“背完语法”**
|
||||
🎯 而是能做到:
|
||||
|
||||
> “我不知道这门语言,但我知道它在干什么。”
|
||||
|
||||
这才是**100% 的真实含义**。
|
||||
Loading…
Reference in New Issue