Skip to content

第 5 章:宁弯不折

系列:程序员修炼之道 · 第 5/9 章


一句话总结

没有最终决定;用可撤销、解耦、柔性架构与配置,让系统在需求变化时弯曲而不折断。


核心观点浓缩

  • 可撤销性:设计决策可回滚;Feature Flag、分支、抽象层
  • 柔性架构:延迟具体绑定;插件、策略、接口
  • 解耦:模块间少假设;消息、事件、API 边界
  • 变换式编程 / JOT:用数据流与声明式思维减少状态纠缠
  • 继承税:继承昂贵;优先组合
  • 配置:把易变项外置;但不过度配置化
  • 元编程:代码生成、DSL 在合适场景减少重复

关键概念 / 金句

  • 「没有最终决定」= 保留演进空间
  • 继承税:深层继承树难测难改
  • 解耦是正交性在架构层的体现

本章在全书中的位置

把第 2 章「可逆性」扩展到架构与代码结构,是大型 Qt/VTK 应用能长期迭代的关键章。


个人思考与启发

扫描仪连接、导出格式、云上传策略适合策略 + 配置,而非主干 if
插件式 IO(plugins_io/)已是柔性架构:新格式加插件少改 Session。
继承税:少扩深层 JMSession 子类,用组合 Command、Service。


与《软件设计的哲学》对照

  • 解耦 ↔ 减少依赖、信息隐藏
  • 通用模块更深 ↔ 配置与扩展点设计
  • 继承税 ↔ 组合优于深层类层次(深模块常靠组合)

重点与注意

重点可撤销、解耦、组合 是「宁弯不折」三板斧。
重点继承税提醒:子类不是默认复用手段。
重点:配置外置易变项,但配置爆炸也是复杂度。
注意:解耦过度会变成间接层地狱,需平衡。
注意:柔性架构要配合测试,否则回滚不敢用。


导航:上一篇:第 4 章 · 下一篇:第 6 章 并发

基于 VitePress 强力驱动 | 记录技术与生活