编程语言与软件构造 MOC

20-programming15-computing/ 的深度轴之一,关注如何写出可维护、可测试、可演进的软件。

语言收敛到 Python、TypeScript、Rust。后续任何新语言按同一模板进入。


三层架构

paradigms   ← 「我该怎么想?」— 编程思维方式,不绑定具体语言
    ↓
meta        ← 「这门语言在必须维度上怎么选的?」— 图灵完备语言的设计选择
    ↓
python / ts / rust ← 「在这个语言里实际怎么写」— 语法 + 文化 + 生态

每个语言目录不再内部分层(官方文档已经做了详尽分层,知识花园不做复刻)。目录都是 flat 的一组笔记。


paradigms · 编程范式

范式是你写代码时的思维模型。它不属于任何一门语言——Python、TS、Rust 都同时支持多种范式,区别在于倾向和表达方式。

主题说明
面向对象编程封装、继承、多态的真实含义,不是语法糖
函数式编程不可变性、纯函数、高阶函数、声明式表达
过程式与声明式告诉计算机「怎么做」还是「要什么」
泛型编程写一次适用多种类型——三门语言的泛型机制完全不同
响应式与事件驱动数据流、观察者、Pub/Sub
设计模式:范式的应用策略/观察者/工厂等,本质是范式在常见问题上的投射

当前状态:✅ 已完成,6 篇全部有内容。


meta · 语言设计的必要维度

一门现代图灵完备语言必须在这些维度上做出设计选择。每篇独立讨论一个维度——语言只是案例,维度本身不绑定任何语言。

#维度核心问题状态
01类型系统值如何分类、何时检查
02错误处理如何表示、传播、处理错误
03并发模型并发的基本单位、调度和通信
04包管理与工具链代码复用、版本管理、构建分发
05内存管理内存的分配、回收、所有权
06编译与执行源码到可执行的过程和形态
07I/O 模型外部交互的同步/异步策略
08模块与可见性代码组织、接口边界、可见性

已有笔记


Python

定位:快速原型、数据科学、脚本自动化、AI Agent 编排。动态鸭子类型 + 渐进类型注解。

入口:Python 专题 MOC

#笔记领域
01Python 语法基础语法 + 类型 + 控制流
02Python 数据结构list/dict/推导式/生成器
03Python 函数与编程范式函数 + FP + 装饰器
04Python 面向对象OOP + 魔术方法 + property
05Python 异常处理与资源异常 + with 上下文管理
06Python 并发与内存模型GIL/free-threading + GC
07Python IO 与数据库文件 + DB-API + ORM
08Python 工程实践模块 + uv/Ruff/pytest
09Python 语言全景哲学 + 历史 + 社区
10Python 类型系统typing、PEP 695、mypy/pyright、Pydantic

TypeScript

定位:Web 全栈、已有 JS 生态、结构化类型系统。

入口:TypeScript 专题 MOC(骨架已建)

按 meta 框架展开 TS 的每个维度。不维护框架百科。

#笔记主题
01JS 语法速览(Python 对照)Python → JS/TS 语法桥:const/箭头函数/解构/this/===/null vs None
02TypeScript 类型系统鸭子类型→结构化类型、核心类型工具、类型体操边界
03TypeScript 工程实践pnpm/Turborepo/Biome/Vitest/Vite 现代默认栈
04TypeScript 运行时模型Node/Deno/Bun 三足鼎立
05TypeScript 声明文件与互操作.d.ts、DefinitelyTyped、JS 互操作
06TypeScript 编译与执行tsc 配置、类型擦除、esbuild/swc 管线
07TypeScript 并发与事件模型事件循环、Promise/async、Worker Threads
08TypeScript 语言全景设计哲学、结构化类型优劣、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 的边界
  • 宏系统
  • 设计哲学与社区文化

跨区链接


目录结构

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 语言现状报告