闭卷说清“从质量属性选择架构”的对象、规则、制品和一个失败反例。
软件工程 · 小纸条
选一章打印。双面打印(按长边翻页)后沿虚线剪开,每张卡片正面题目、背面答案。
闭卷说清“分层、端口适配器与依赖方向”的对象、规则、制品和一个失败反例。
闭卷说清“模块化与信息隐藏”的对象、规则、制品和一个失败反例。
闭卷说清“REST与消息接口契约”的对象、规则、制品和一个失败反例。
闭卷说清“同步、异步与一致性边界”的对象、规则、制品和一个失败反例。
闭卷说清“架构适应度函数”的对象、规则、制品和一个失败反例。
闭卷说清“架构评审与风险场景”的对象、规则、制品和一个失败反例。
核心:业务规则应依赖稳定抽象,外部框架和数据库通过端口接入;规则:依赖箭头指向更稳定的策略;分层不是允许任意跨层调用;应能围绕“计费用例只调用PriceRepository与PaymentPort,HTTP和SQL实现放在适配器层”交付可复核制品。
核心:架构是对高代价决策的组织,不是画很多方框;规则:每个架构决策记录目标、备选、权衡、证据和撤销条件;应能围绕“低延迟交易链把同步核心路径缩短,审计与通知转为可靠异步,同时保留幂等和追踪”交付可复核制品。
核心:接口契约包含语义、模式、错误、幂等、版本和兼容性,不只是URL或字段列表;规则:兼容演进优先增加可选信息;删除或改义必须经过弃用窗口与消费者验证;应能围绕“创建订单POST接收幂等键,409区分冲突,事件携带schemaVersion并允许旧消费者忽略新字段”交付可复核制品。
核心:模块应隐藏易变决策,只暴露完成协作所需的最小表面;规则:高内聚围绕同一变化原因,低耦合通过稳定契约和少量交互实现;应能围绕“税率计算模块隐藏规则版本与舍入细节,对外只接收合法上下文并返回带依据的金额”交付可复核制品。
核心:架构约束要能持续自动检查,否则图纸会与代码分叉;规则:重要架构声明至少对应一个可重复检测;检测失败必须阻断或形成明确豁免;应能围绕“CI禁止domain包依赖web包,契约测试验证事件兼容,性能门禁限制关键API的p95”交付可复核制品。
核心:同步获得即时结果却传播延迟和故障,异步解耦时间却引入重复、乱序与最终一致;规则:先声明用户可见一致性,再选择通信方式;消息至少按重复和乱序设计;应能围绕“下单同步确认核心订单,发票与通知走消息;outbox保证状态与待发事件同事务提交”交付可复核制品。
核心:评审应以具体变化和故障场景走查,而非争论风格名称;规则:优先评审高影响且不可逆的假设,并记录风险所有者和验证期限;应能围绕“模拟支付商超时、数据库只读和订单量十倍,逐步检查边界、降级、恢复与观测证据”交付可复核制品。