用途:指导 Java 开发者处理复杂或有风险的代码改动,把设计准备与行为修改分开,遵循“先让改动变简单,再做简单的改动”。
主要能力:在编辑前澄清预期的行为改动;识别使改动困难或有风险的设计障碍;第一步做保持行为的准备性重构;验证第一步未改变现有行为;第二步做最小的预期行为改动;验证第二步达成预期行为;在保持两步顺序的前提下,交接给 Java、框架、持久化、消息、API 或测试等专项技能。
使用方式:先定义预期改动,阅读 references/051-design-two-steps-methods.md,检查相关代码与测试,说明必须改变的确切行为或能力,并找出当前设计为何使改动复杂、有风险或难以验证。再规划准备性重构,选择最小的保持行为重构来减少障碍,例如提取方法或类、澄清命名、隔离依赖、增加测试接缝、移动职责、改进类型,或在触碰行为前添加特征测试。随后执行第一步,仅做聚焦的准备性重构,保持提交、笔记或任务边界清晰,使评审者能看出未包含预期行为改动。接着验证保持的行为,运行相关现有测试、构建检查、特征测试或人工验证;若行为意外改变,先修复或回退准备再继续。之后执行最小的预期行为改动,必要时使用专项技能获取实现指导。最后用针对性测试和项目验证确认预期行为,并报告哪些是准备、哪些改变了行为、每步后验证了什么以及剩余风险。
约束:必须区分保持行为的准备与改变行为的工作,并在每步后验证;必须在提出准备性重构前说明预期行为改动;第一步必须保持行为,不得把大范围重构与预期行为改动混在一起;必须用项目适用的测试、构建、特征测试或人工检查验证第一步后的现有行为;必须在设计准备并验证后才做第二步;必须用聚焦测试和相关构建检查验证第二步后的预期行为;当准备无法与行为改动完全分离时,必须记录假设与风险。
适用场景:应用两步改动、让有风险的改动更安全、在改变行为前重构、把准备与行为改动分开。
限制:资料未提供具体安装命令、收费、价格、平台或效果信息。