闭卷重建字节、文本与编码边界的对象、状态、事件、不变量与一个失败反例。
程序设计 II:抽象、内存与并发 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷重建流式读写与缓冲的对象、状态、事件、不变量与一个失败反例。
闭卷重建结构化序列化与模式的对象、状态、事件、不变量与一个失败反例。
闭卷重建版本演进与兼容读取的对象、状态、事件、不变量与一个失败反例。
闭卷重建校验、原子替换与恢复的对象、状态、事件、不变量与一个失败反例。
闭卷重建实验:版本化记录迁移的对象、状态、事件、不变量与一个失败反例。
闭卷重建实验:原子写入计划的对象、状态、事件、不变量与一个失败反例。
核心机制:流式读写与缓冲必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕流式读写与缓冲先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:流式读写与缓冲不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:字节、文本与编码边界必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕字节、文本与编码边界先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:字节、文本与编码边界不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:版本演进与兼容读取必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕版本演进与兼容读取先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:版本演进与兼容读取不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:结构化序列化与模式必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕结构化序列化与模式先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:结构化序列化与模式不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:实验:版本化记录迁移必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕实验:版本化记录迁移先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:实验:版本化记录迁移不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:校验、原子替换与恢复必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕校验、原子替换与恢复先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:校验、原子替换与恢复不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:实验:原子写入计划必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕实验:原子写入计划先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:实验:原子写入计划不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。