前言
1.
程序的作用
2.
从数据开始思考
2.1.
数据的表示
2.2.
操作数据
2.3.
理解程序的运行
2.4.
数据的传递
3.
内存管理
3.1.
指针:作用和性质
3.2.
理解内存
3.3.
堆空间的利用和管理
3.4.
指针和容器
3.5.
设计数据结构
4.
类型的抽象和设计
4.1.
类型的意义
4.2.
抽象数据类型
4.3.
行为抽象
4.4.
参数类型
4.5.
类型驱动设计
5.
用程序表达思想
5.1.
函数式编程
5.2.
泛型编程
5.3.
并行编程
5.4.
异步编程
6.
用程序编写程序
6.1.
元编程的意义
6.2.
编译时和运行时
6.3.
理解编译过程
6.4.
程序的抽象和变换
6.5.
何时使用元编程
7.
错误的发现和处理
7.1.
错误的起源
7.2.
程序中的错误处理
7.3.
利用设计减少错误
7.4.
利用工具发现错误
7.5.
测试:意义和方法
8.
程序优化
8.1.
优化的类型
8.2.
定位瓶颈:原理和方法
8.3.
算法和数据结构
8.4.
系统优化
8.5.
设计优化:重构
9.
程序组织
9.1.
逻辑组织
9.2.
接口组织
9.3.
模块、包和项目
9.4.
真实项目的组织
10.
构建和产出
10.1.
构建目标
10.2.
理解构建过程
10.3.
项目的附加产出
10.4.
版本和发布
11.
程序的运行环境
11.1.
语言运行时
11.2.
操作系统
11.3.
嵌入式系统
11.4.
虚拟运行环境
12.
与其他语言共处
12.1.
调用其他语言
12.2.
供其他语言使用
12.3.
协同工作
12.4.
思想的碰撞
13.
重新思考编程
13.1.
本质
13.2.
渐进
13.3.
权衡
13.4.
局限
Light (default)
Rust
Coal
Navy
Ayu
Better Programming with Rust
类型的抽象和设计