实现策略选择框架(元认知方法)
一、用途
该技能用于在开展实现工作之前,系统性地选择实现策略。触发场景包括:规划实现策略、选择开发方式、定义验证标准。它把「怎么改、按什么顺序改、改到什么程度算完成」变成一套可复用的分析流程。
二、主要流程
阶段 1:决策充分的现状分析
核心问题是「现有实现现在是什么样」。分析维度包括:
- 架构分析:职责分离、数据流、依赖、技术债
- 实现质量评估:代码质量、与行为相关的测试证据、性能、安全
- 历史背景理解:当前形态的由来、过往决策是否仍成立、约束是否变化、需求如何演进
元认知问题清单包括:这个实现的真正职责是什么;哪些部分是业务本质、哪些来自技术约束;代码中不清晰的依赖或隐含前提有哪些;当前设计带来哪些收益与约束。当再获取一条现状事实也无法改变职责、复用、选项有效性、总复杂度、契约或验证时,停止分析。
阶段 2:设计收敛
在选择实现策略前,按顺序完成:
- 现有表面基线:用现有职责构造出能交付当前结果的最简端到端路径。明确需求和已接受的决策具有约束力;建议性机制仍只是候选。
- 证据检查:用当前需求、已验证约束、观察到的范围内问题、有证据的实质性风险来检验该路径,只保留能改变所选设计的未满足条件。
- 针对性比较:对每个未满足条件,先测试复用、从既有数据推导、按需计算、或把职责放在当前调用方或边界,再考虑新增设计表面。比较可行选项时,按在实质上不同的维度上的总复杂度衡量:用户决策、设置、模式、概念、输出、持久状态、实现路径、UX、运行时、实现、测试、文档、维护。选择满足条件中总复杂度最低的选项。
- 减法检查:去掉每个新增项并重新检验其支配条件,只有当确认的结果、必需边界或必要证明变得不满足时才保留它。
支撑性论断需归类为已观察、已推断或未知。阻碍下一步的未知应作为确切的证据前提来处理;是否必须与用户交互,由调用方的价值边界和不可逆操作门控决定。候选路径和被拒绝的新增项仍属活跃分析。持久产出是「选定设计」:完整选定路径,加上每个新增设计表面的证据,以及去掉它时会失败的条件。已接受的 ADR 可以把备选方案保留为决策历史。实现者使用相同的收敛检查,无需产出单独制品。
阶段 3:策略探索与创建
核心问题是「在决定 before → after 时,应参考哪些实现模式或策略」。
- 直接策略:满足已接受需求与约束的最小仓库支持变更
- 仓库备选:在迁移、依赖顺序或验证边界上实质不同的既有模式
- 外部调研:仅当仓库证据无法解决时效性能力、兼容性或依赖决策时,才使用官方/当前来源
参考策略模式: 遗留处理:Strangler 模式(分阶段替换渐进迁移)、Facade 模式(统一接口隐藏复杂度)、Adapter 模式(与既有系统桥接)。 新开发:特性驱动开发(垂直实现,优先用户价值)、基础驱动开发(基础先行,优先稳定性)、风险驱动开发(优先处理最大风险要素)。 集成/迁移:Proxy 模式(透明功能扩展)、Decorator 模式(渐进增强既有功能)、Bridge 模式(通过抽象获得灵活性)。 仅当其命名的迁移或依赖问题确实存在时才使用这些模式。从直接策略开始。只有当备选会实质改变风险、发布、兼容性或早期验证点时,才进行比较。选项集应限制在能产生上述实质差异的模式内。
阶段 4:实质性风险评估与控制
核心问题是「应用到现有实现会产生哪些风险,最佳控制方式是什么」。只评估当前证据能改变策略、公开契约、发布、回滚或验证边界的风险类别。 条件性风险类别:技术风险(系统影响、数据一致性、性能退化、集成复杂度)、运营风险(服务可用性、部署停机、流程变化、回滚程序)、项目风险(进度延迟、学习成本、质量达成、团队协作)。 风险控制策略:预防措施(分阶段迁移、并行运行验证、集成/回归测试、监控搭建);事件响应(回滚程序、日志/指标准备、沟通机制、服务延续程序)。
阶段 5:决策相关的约束兼容性
核心问题是「本项目有哪些约束」。只检查由支配性需求、仓库、外部契约或当前环境证明、且能改变所选策略或验证边界的约束。 条件性约束类别:技术约束(库兼容性、资源容量、强制要求、数值目标)、时间约束(截止/优先级、依赖、里程碑、学习期)、资源约束(团队/技能、工时/系统、预算、外部合同)、业务约束(上市时机、客户影响、合规要求)。
阶段 6:实现方式决策
选择直接契合已验证依赖与交付约束的实现方式:
- 垂直切片(特性驱动):按特性单元跨所有层垂直实现。默认适用条件是可端到端交付并独立验证的价值单元;数据模型共享和层广度只是支撑证据,不能替代独立可交付性。验证方式:每个特性完成时交付最终用户价值。
- 水平切片(基础驱动):按架构层分阶段构建。当共同基础阻塞消费方工作,或必须先通过稳定性/兼容性验证才能进行依赖切片时使用。多个消费方之间实质性共享依赖归属,是评估该方式的信号。验证方式:所有基础层完成后进行集成运行验证。
- 混合:按项目特征灵活组合。当先需要已验证的基础步骤、之后工作可作为独立可验证的价值切片推进时使用。选择实现方式前先解决阻塞性需求歧义。验证方式:按各阶段目标在适当的 L1/L2/L3 层级验证。
阶段 7:决策理由记录
在适用的实现或设计决策记录中记录:所选策略名称与特征;新增设计表面的当前证据与总复杂度依据;阶段 4 中每个被激活的实质性风险的控制措施;阶段 5 中每个被激活的决策相关约束的兼容性;验证层级(L1/L2/L3)与集成点定义。除非已接受的 ADR 将其作为决策历史,否则备选方案仍属活跃分析。
三、验证层级定义
每项任务完成验证的优先级:
- L1:功能运行验证——作为最终用户特性可运行(例如搜索可执行)
- L2:测试运行验证——新增测试并全部通过
- L3:构建成功验证——代码可构建/运行且无错误 优先级:按可验证性重要性 L1 > L2 > L3。
四、集成点定义
按所选策略定义集成点:
- 基于 Strangler:每个特性在旧系统与新系统之间切换时
- 特性驱动:用户实际可以使用该特性时
- 基础驱动:所有架构层就绪且 E2E 测试通过时
- 混合:每个阶段定义的各自目标达成时
五、质量检查
- 确认阶段 1 在选择策略前识别出当前职责、依赖路径与历史约束
- 确认阶段 2 产出一个完整「选定设计」,且每个新增设计表面都对应当前证据、更低表面不足、以及减法下失败的条件
- 确认阶段 4 为每个有证据的实质性风险记录具体控制措施;不适用的类别无需条目
- 确认阶段 5 检查每个能改变策略选择或验证的有证据约束;不适用的类别无需条目
- 确认阶段 7 记录所选策略、其总复杂度依据与早期验证点;备选仅出现在已接受的 ADR 中
六、元认知执行准则
- 利用已知模式:当模式的问题与权衡与观察到的仓库状态匹配时使用它
- 条件性外部调研:当仓库检查后仍无法解决时效性能力、兼容性或依赖决策时,使用官方/当前来源
- 应用 5 Whys:追问根因以把握本质
- 多视角评估:在选择实现方式前,评估现状、收敛、风险与约束
七、限制
资料未提供该技能的具体安装命令、运行环境要求、支持的平台、收费方式或价格信息,暂未提供。