闭卷重建参数多态与泛型容器的对象、状态、事件、不变量与一个失败反例。
程序设计 II:抽象、内存与并发 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷重建协议、鸭子类型与能力的对象、状态、事件、不变量与一个失败反例。
闭卷重建类型变量与约束的对象、状态、事件、不变量与一个失败反例。
闭卷重建协变逆变的使用边界的对象、状态、事件、不变量与一个失败反例。
闭卷重建泛型算法的契约的对象、状态、事件、不变量与一个失败反例。
闭卷重建实验:泛型栈模型的对象、状态、事件、不变量与一个失败反例。
闭卷重建实验:协议排序键的对象、状态、事件、不变量与一个失败反例。
核心机制:协议、鸭子类型与能力必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕协议、鸭子类型与能力先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:协议、鸭子类型与能力不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:参数多态与泛型容器必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕参数多态与泛型容器先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:参数多态与泛型容器不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:协变逆变的使用边界必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕协变逆变的使用边界先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:协变逆变的使用边界不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:类型变量与约束必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕类型变量与约束先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:类型变量与约束不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:实验:泛型栈模型必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕实验:泛型栈模型先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:实验:泛型栈模型不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:泛型算法的契约必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕泛型算法的契约先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:泛型算法的契约不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。
核心机制:实验:协议排序键必须声明公开接口、隐藏状态、所有权或资源责任、允许的并发交错、失败后的不变量以及可替换实现;实验入口:围绕实验:协议排序键先画对象与资源关系,再运行正常、边界、失败和确定性交错四组实验,保存状态轨迹;边界:实验:协议排序键不能靠全局可变状态、无限重试或偶然调度正确;别名、清理、取消、锁顺序和性能退化必须显式处理。