域·演化与弃用
GD-L
域组基础进阶高级14 节点
§1组简介
组目录:本质层方法论层技术实践层域·概念与需求域·架构设计域·实现与构造域·测试域·部署域·运维域·演化与弃用域·质量属性域·团队与康威域·方法论主干域·跨域横切·质量属性横切·技术债横切·团队与康威案例层
本组 14 个节点,类型为 域组,域 L,覆盖阶段 基础 / 进阶 / 高级。
§2成员节点目录
| 节点 ID | 名称 | 层/来源 | 阶段 | 简介 |
|---|---|---|---|---|
| ESS-L-01 | 软件演化定律 | 本质 essence | 高级 | 描述 E 型软件在持续演化中反复出现的规律:系统必须持续变更否则逐渐失效,而持续变更又使复杂度递增、质量下降,需要以自我调节与反馈治理。它把演化视为常态而非异常。它把演化确立为需要持续投入的常态过程。 |
| ESS-L-02 | 技术债本质 | 本质 essence | 进阶 | 技术债是用短期便利换取长期变更成本的设计权衡,其本质是经济取舍而非道德评判:审慎而有意的债务可加速交付,判断标准是债是否审慎、是否被及时偿还,而非是否存在。 |
| ESS-L-03 | 架构侵蚀与漂移 | 本质 essence | 高级 | 架构侵蚀是违反既定架构约束的改动导致的系统脆化,架构漂移是对架构不敏感的改动导致的逐渐失一致;两者共同使系统越来越抗拒变更,是架构层腐化的两种机制。 |
| ESS-L-04 | 演化的不可逆性 | 本质 essence | 进阶 | 成功投入使用的软件必然持续被修改,且演化在方向上是不可逆的:需求、环境与依赖的变化使系统无法回到先前状态,冻结系统只会加速其价值衰减。 |
| ESS-L-05 | 变更成本随复杂度增长 | 本质 essence | 进阶 | 这条原则描述的是一种随规模累积的效应:项目小时代码可以短小漂亮,一旦持续扩张,结构就越来越难把握,每一次改动都要付出更多的理解与验证成本。这种状态被形象地称为复杂泥潭。它的定义要点是成本的位置发生了转移,复杂度并不直接表现为功能缺失或性能下降,而是表现为动手变慢、出错变多、预算与排期双双失守。因为结构越难让人推理,改动者就越容易漏看隐含前提、副作用与意料之外的相互干扰。所以简单性被提升为构建系统时的关键目标之一,它与可运维性、可演化性并列,共同构成可维护性的三个面向。 把这层定义再推进一步,可以看出复杂度并非某种可以一次性清除的杂质,而是一种随功能与规模必然增长的存量。 |
| MTH-L-01 | 行为保持重构 | 方法论 methodology | 基础 | 在不改变可观察行为的前提下重组软件内部结构,使其更易理解、更易修改;判定重构是否成立的硬标准是行为不变,治理要点是把小步变换持续进行而非安排一次性大改。 |
| MTH-L-02 | 代码坏味道启发式 | 方法论 methodology | 基础 | 把代码中易于察觉的表层迹象作为可能指向更深层结构问题的启发式信号,用以发现重构对象与时机;坏味道提示「值得检查」,但不等于「一定有问题」,不能机械照改。 |
| MTH-L-03 | 技术债象限与偿还策略 | 方法论 methodology | 进阶 | 以「有意/无意」与「审慎/鲁莽」两组正交判据对债务分诊,据此制定差异化偿还策略:审慎有意者计划偿还,审慎无意者随认知更新修正,鲁莽者立即纠正,并按变更热点优先偿付利息最高的债务。 |
| MTH-L-04 | 演进式架构 | 方法论 methodology | 高级 | 把「有引导的增量变更」确立为跨多个架构维度的首要原则:通过定义架构维度、以可执行机制持续校验合规,并用增量交付验证,使架构能在不失去完整性的前提下持续演化。 |
| MTH-L-05 | 架构适应度函数 | 方法论 methodology | 高级 | 对某些架构特性提供客观完整性评估的可执行机制:把架构意图转写为可判定、可量化的校验,在构建或运行时持续验证,使架构约束不依赖人的记忆与自觉,从而抑制架构漂移。 |
| MTH-L-06 | 遗留系统渐进治理 | 方法论 methodology | 高级 | 对难以安全修改的遗留系统,先以接缝与特征测试建立覆盖既有行为的安全网,再以绞杀者方式增量迁移新功能、逐步替代旧系统,避免缺乏保护的大规模重写。 |
| MTH-L-07 | 弃用与日落策略 | 方法论 methodology | 进阶 | 对将被淘汰的能力采取分级的退场流程:先发出弃用信号并提供替代与迁移路径,留足通知期,再按版本语义区分兼容的弃用与破坏性的移除,从而在收敛接口的同时不破坏既有依赖。 |
| TEC-L-01 | 架构适应度函数工具化 | 技术实践 technology | 高级 | 把架构约束与质量目标转写为可自动执行、可量化判定的校验,并借助测试、静态分析、监控与部署流水线门禁等机制持续运行,使架构意图不再依赖人的记忆与自觉。 |
| TEC-L-02 | 绞杀者渐进式替换 | 技术实践 technology | 高级 | 在遗留系统之上或之旁增量构建新实现,通过可切换的接缝与路由逐步把功能与数据迁移过去,逐步替代旧系统,而非一次性整机重写。 |
§3组内关系图
前置依赖实现依据推导案例印证对比冲突
§4学习路径提示
本组内存在 6 条前置依赖边(prerequisite),推荐先掌握前置知识点,再进入依赖它的节点。
推荐阅读顺序(拓扑序)
代码坏味道启发式 → 技术债象限与偿还策略 → 架构适应度函数 → 遗留系统渐进治理 → 架构适应度函数工具化 → 绞杀者渐进式替换 → 架构侵蚀与漂移 → 演进式架构 → 行为保持重构 → 弃用与日落策略 → 软件演化定律 → 演化的不可逆性 → 变更成本随复杂度增长 → 技术债本质
- 演化的不可逆性 → 技术债本质演化不可逆使技术债必然累积
- 演化的不可逆性 → 变更成本随复杂度增长持续演化推动复杂度与变更成本上升
- 代码坏味道启发式 → 行为保持重构坏味道作为启发式信号触发重构
- 遗留系统渐进治理 → 行为保持重构改动遗留代码前先建立行为安全网
- 遗留系统渐进治理 → 弃用与日落策略遗留治理与弃用共享迁移路径设计
- 软件演化定律 → 技术债本质演化定律的复杂度递增是技术债的理论根据
入组前置依赖(组外节点 → 本组成员)
- 本质复杂度与偶然复杂度 → 软件演化定律本质复杂度是演化中复杂度递增的成因