跳到正文

第3章学习笔记:架构、模块与接口契约

课程笔记

让结构服务质量目标,并用可替换接口控制变化传播。

关联:章节 第3章 架构、模块与接口契约

第3章笔记:架构、模块与接口契约

本章目标

让结构服务质量目标,并用可替换接口控制变化传播。 本章不是术语表,而是一条从问题到证据的工作链。先确认用户或团队要保护的结果,再把决定写进可版本化制品,最后由测试、指标、反例或演练证明它在边界与故障下仍成立。

七节联系

  • 从质量属性选择架构:架构是对高代价决策的组织,不是画很多方框;关键规则是每个架构决策记录目标、备选、权衡、证据和撤销条件。
  • 分层、端口适配器与依赖方向:业务规则应依赖稳定抽象,外部框架和数据库通过端口接入;关键规则是依赖箭头指向更稳定的策略;分层不是允许任意跨层调用。
  • 模块化与信息隐藏:模块应隐藏易变决策,只暴露完成协作所需的最小表面;关键规则是高内聚围绕同一变化原因,低耦合通过稳定契约和少量交互实现。
  • REST与消息接口契约:接口契约包含语义、模式、错误、幂等、版本和兼容性,不只是URL或字段列表;关键规则是兼容演进优先增加可选信息;删除或改义必须经过弃用窗口与消费者验证。
  • 同步、异步与一致性边界:同步获得即时结果却传播延迟和故障,异步解耦时间却引入重复、乱序与最终一致;关键规则是先声明用户可见一致性,再选择通信方式;消息至少按重复和乱序设计。
  • 架构适应度函数:架构约束要能持续自动检查,否则图纸会与代码分叉;关键规则是重要架构声明至少对应一个可重复检测;检测失败必须阻断或形成明确豁免。
  • 架构评审与风险场景:评审应以具体变化和故障场景走查,而非争论风格名称;关键规则是优先评审高影响且不可逆的假设,并记录风险所有者和验证期限。

学习时给七节画依赖箭头:前一节产出的对象、规则或制品如何成为后一节输入?若某节可以被随意挪走而完全不影响上下文,说明你仍在孤立背诵,需要用一个贯穿案例重新连接。

章内练习

  1. 用“低延迟交易链把同步核心路径缩短,审计与通知转为可靠异步,同时保留幂等和追踪”重做正常、边界和故障三类验收,产出可由同伴复核的制品。
  2. 用“计费用例只调用PriceRepository与PaymentPort,HTTP和SQL实现放在适配器层”重做正常、边界和故障三类验收,产出可由同伴复核的制品。
  3. 用“税率计算模块隐藏规则版本与舍入细节,对外只接收合法上下文并返回带依据的金额”重做正常、边界和故障三类验收,产出可由同伴复核的制品。
  4. 用“创建订单POST接收幂等键,409区分冲突,事件携带schemaVersion并允许旧消费者忽略新字段”重做正常、边界和故障三类验收,产出可由同伴复核的制品。

每次练习都保留背景、输入、决定、输出、验证、失败处置和负责人。只写结论不算完成;只贴截图也不算证据。完成后交换给同伴,只允许对方根据制品复现你的判断,无法复现处就是下一轮修改入口。

错误复盘

把错题标成目标误判、边界遗漏、责任空缺、契约不清、验证不足或恢复缺失。不要写“粗心”。一周后更换领域重做一道情境题;能在新名词下保持同一证据链,才说明方法已经迁移。阶段卷使用独立题池,不能靠记住随课题答案过关。