编程语言与软件构造 MOC
20-programming 是 15-computing/ 的深度轴之一,关注如何写出可维护、可测试、可演进的软件。
语言收敛到 Python、TypeScript、Rust。后续任何新语言按同一模板进入。
三层架构
paradigms ← 「我该怎么想?」— 编程思维方式,不绑定具体语言
↓
meta ← 「这门语言在必须维度上怎么选的?」— 图灵完备语言的设计选择
↓
python / ts / rust ← 「在这个语言里实际怎么写」— 语法 + 文化 + 生态
每个语言目录不再内部分层(官方文档已经做了详尽分层,知识花园不做复刻)。目录都是 flat 的一组笔记。
paradigms · 编程范式
范式是你写代码时的思维模型。它不属于任何一门语言——Python、TS、Rust 都同时支持多种范式,区别在于倾向和表达方式。
| 主题 | 说明 |
|---|---|
| 面向对象编程 | 封装、继承、多态的真实含义,不是语法糖 |
| 函数式编程 | 不可变性、纯函数、高阶函数、声明式表达 |
| 过程式与声明式 | 告诉计算机「怎么做」还是「要什么」 |
| 泛型编程 | 写一次适用多种类型——三门语言的泛型机制完全不同 |
| 响应式与事件驱动 | 数据流、观察者、Pub/Sub |
| 设计模式:范式的应用 | 策略/观察者/工厂等,本质是范式在常见问题上的投射 |
当前状态:✅ 已完成,6 篇全部有内容。
meta · 语言设计的必要维度
一门现代图灵完备语言必须在这些维度上做出设计选择。每篇独立讨论一个维度——语言只是案例,维度本身不绑定任何语言。
| # | 维度 | 核心问题 | 状态 |
|---|---|---|---|
| 01 | 类型系统 | 值如何分类、何时检查 | ✅ |
| 02 | 错误处理 | 如何表示、传播、处理错误 | ✅ |
| 03 | 并发模型 | 并发的基本单位、调度和通信 | ✅ |
| 04 | 包管理与工具链 | 代码复用、版本管理、构建分发 | ✅ |
| 05 | 内存管理 | 内存的分配、回收、所有权 | ✅ |
| 06 | 编译与执行 | 源码到可执行的过程和形态 | ✅ |
| 07 | I/O 模型 | 外部交互的同步/异步策略 | ✅ |
| 08 | 模块与可见性 | 代码组织、接口边界、可见性 | ✅ |
已有笔记
Python
定位:快速原型、数据科学、脚本自动化、AI Agent 编排。动态鸭子类型 + 渐进类型注解。
| # | 笔记 | 领域 |
|---|---|---|
| 01 | Python 语法基础 | 语法 + 类型 + 控制流 |
| 02 | Python 数据结构 | list/dict/推导式/生成器 |
| 03 | Python 函数与编程范式 | 函数 + FP + 装饰器 |
| 04 | Python 面向对象 | OOP + 魔术方法 + property |
| 05 | Python 异常处理与资源 | 异常 + with 上下文管理 |
| 06 | Python 并发与内存模型 | GIL/free-threading + GC |
| 07 | Python IO 与数据库 | 文件 + DB-API + ORM |
| 08 | Python 工程实践 | 模块 + uv/Ruff/pytest |
| 09 | Python 语言全景 | 哲学 + 历史 + 社区 |
| 10 | Python 类型系统 | typing、PEP 695、mypy/pyright、Pydantic |
TypeScript
定位:Web 全栈、已有 JS 生态、结构化类型系统。
入口:TypeScript 专题 MOC(骨架已建)
按 meta 框架展开 TS 的每个维度。不维护框架百科。
| # | 笔记 | 主题 |
|---|---|---|
| 01 | JS 语法速览(Python 对照) | Python → JS/TS 语法桥:const/箭头函数/解构/this/===/null vs None |
| 02 | TypeScript 类型系统 | 鸭子类型→结构化类型、核心类型工具、类型体操边界 |
| 03 | TypeScript 工程实践 | pnpm/Turborepo/Biome/Vitest/Vite 现代默认栈 |
| 04 | TypeScript 运行时模型 | Node/Deno/Bun 三足鼎立 |
| 05 | TypeScript 声明文件与互操作 | .d.ts、DefinitelyTyped、JS 互操作 |
| 06 | TypeScript 编译与执行 | tsc 配置、类型擦除、esbuild/swc 管线 |
| 07 | TypeScript 并发与事件模型 | 事件循环、Promise/async、Worker Threads |
| 08 | TypeScript 语言全景 | 设计哲学、结构化类型优劣、Python→TS 迁移路线图 |
参考报告:2026 年 TypeScript 语言现状报告(待创建)
Rust
定位:系统编程、性能关键、安全敏感。所有权类型系统 + 零成本抽象。
⚠️ 独立学习路径:Rust 的所有权/借用/生命周期是全新的心智模型,不建议从 Python/TS 迁移视角进入。请将 Rust 作为独立学习路径,不适用 Python→TS 的对比学习框架。
入口:Rust 专题 MOC(骨架已建)
按 meta 框架展开 Rust 的每个维度。
计划覆盖:
- 所有权、借用、生命周期
- 类型系统(ADT、trait、泛型 + trait bound)
- 错误处理(Result / Option / ? / thiserror / anyhow)
- 并发模型(Send/Sync、Tokio、rayon、channel)
- Cargo 与 workspace
- unsafe Rust 的边界
- 宏系统
- 设计哲学与社区文化
跨区链接
- 工程起步与工作流 MOC — CLI、Shell、Git、终端等工程底座
- 计算机科学与工程知识地图 — 八大支柱总览
- 软件工程与架构 — 设计模式、测试策略、API 设计的工程实践层
目录结构
20-programming/
├── 00-programming-MOC.md
├── paradigms/ ← 编程范式(✅ 骨架已建)
│ ├── 00-paradigms-MOC.md
│ ├── 01-面向对象编程.md
│ ├── 02-函数式编程.md
│ ├── 03-过程式与声明式.md
│ ├── 04-泛型编程.md
│ ├── 05-响应式与事件驱动.md
│ └── 06-设计模式 - 范式的应用.md
├── meta/ ← 语言设计必要维度(✅ 全部完成)
│ ├── 00-meta-MOC.md
│ ├── 01-类型系统.md ✅
│ ├── 02-错误处理.md ✅
│ ├── 03-并发模型.md ✅
│ ├── 04-包管理与工具链.md ✅
│ ├── 05-内存管理.md ✅
│ ├── 06-编译与执行.md ✅
│ ├── 07-IO 模型.md ✅
│ └── 08-模块与可见性.md ✅
├── python/ ← Python 特性(10 篇 + MOC,✅ 已完成)
│ ├── 00-python-MOC.md
│ ├── 01-Python 语法基础.md
│ ├── 02-Python 数据结构.md
│ ├── 03-Python 函数与编程范式.md
│ ├── 04-Python 面向对象.md
│ ├── 05-Python 异常处理与资源.md
│ ├── 06-Python 并发与内存模型.md
│ ├── 07-PythonIO 与数据库.md
│ ├── 08-Python 工程实践.md
│ ├── 09-Python 语言全景.md
│ └── 10-Python 类型系统.md
├── typescript/ ← TypeScript 特性(✅ 8 篇 + MOC,已完成)
│ ├── 00-typescript-MOC.md
│ ├── 01-TypeScript 与 JavaScript 语法速览.md
│ ├── 02-TypeScript 类型系统.md
│ ├── 03-TypeScript 工程实践.md
│ ├── 04-TypeScript 运行时模型.md
│ ├── 05-TypeScript 声明文件与互操作.md
│ ├── 06-TypeScript 编译与执行.md
│ ├── 07-TypeScript 并发与事件模型.md
│ └── 08-TypeScript 语言全景.md
└── rust/ ← Rust 特性(✅ MOC 已建)
└── 00-rust-MOC.md待办
- 创建
paradigms/目录及 6 篇范式占位笔记(2026-05-15) - 补写
meta/缺失的 4 篇占位笔记(2026-05-15) - 创建
typescript/和rust/入口 MOC(2026-05-15) - Python 笔记精简——28 篇 → 9 篇主题合并(2026-05-15)
- 填充
paradigms/各篇内容 - 填充
meta/缺篇内容 + 评估现有两篇是否需要拆分 - 填充
typescript/内容 - 创建
meta/00-meta-MOC.md(2026-05-28) - 修复 TypeScript 编号冲突(语法速览 00→01,后续顺延)(2026-05-28)
- 新建 Python 10-类型系统(2026-05-28)
- 全面补建跨目录关联链接(meta↔paradigms↔python↔typescript)(2026-05-28)
- paradigms 补延伸阅读 + meta 补学术引用(2026-05-28)
- 元数据规范修复(bare tag、updated 字段、短链接、非标准字段)(2026-05-28)
- 填充
rust/内容 - 清理
92-archive/中已归档的 pipenv/virtualenv - 与
50-architecture/建立双向链接(测试策略、设计模式、API 设计) - 创建 2026 年 TypeScript 语言现状报告