闭卷重建迭代协议与状态的对象、状态、事件、不变量与一个失败反例。
程序设计 II:抽象、内存与并发 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷重建生成器暂停与恢复的对象、状态、事件、不变量与一个失败反例。
闭卷重建惰性管道与背压直觉的对象、状态、事件、不变量与一个失败反例。
闭卷重建无限序列与终止边界的对象、状态、事件、不变量与一个失败反例。
闭卷重建迭代器组合与单次消费的对象、状态、事件、不变量与一个失败反例。
闭卷重建实验:滑动窗口生成器的对象、状态、事件、不变量与一个失败反例。
闭卷重建实验:惰性批处理的对象、状态、事件、不变量与一个失败反例。
核心机制:生成器暂停与恢复必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕生成器暂停与恢复先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:生成器暂停与恢复不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:迭代协议与状态必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕迭代协议与状态先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:迭代协议与状态不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:无限序列与终止边界必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕无限序列与终止边界先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:无限序列与终止边界不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:惰性管道与背压直觉必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕惰性管道与背压直觉先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:惰性管道与背压直觉不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:实验:滑动窗口生成器必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕实验:滑动窗口生成器先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:实验:滑动窗口生成器不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:迭代器组合与单次消费必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕迭代器组合与单次消费先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:迭代器组合与单次消费不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:实验:惰性批处理必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕实验:惰性批处理先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:实验:惰性批处理不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。