用途
该技能在用户希望创建重构请求时被调用,用于引导完成一套有条理的重构规划流程,最终产出一份可执行的重构计划并归档为 GitHub issue。
主要能力与流程
技能定义了一套步骤,执行时可以按需跳过认为不必要的步骤:
- 让用户提供他们想要解决的问题的长而详细的描述,以及任何可能的解决方案想法。
- 探索仓库以验证用户的说法并理解代码库的当前状态。
- 询问用户是否考虑过其他方案,并向他们展示其他可选方案。
- 就实现细节访谈用户,要求极其详细和彻底。
- 敲定实现的确切范围,明确计划改动什么、不计划改动什么。
- 在代码库中检查该区域的测试覆盖情况。如果测试覆盖不足,询问用户的测试计划。
- 将实现拆解成小提交计划,遵循 Martin Fowler 的建议:让每个重构步骤尽可能小,以便始终能看到程序正常运行。
- 创建包含重构计划的 GitHub issue。
GitHub issue 模板结构
该技能使用固定的 issue 描述模板,包含以下部分:
- Problem Statement(问题陈述):从开发者视角描述开发者面临的问题。
- Solution(解决方案):从开发者视角描述问题的解决方案。
- Commits(提交):一份长而详细的实现计划,用平实的英语撰写,将实现拆解为尽可能小的提交。每个提交都应让代码库处于可工作状态。
- Decision Document(决策文档):列出所做的实现决策,可包括将构建/修改的模块、这些模块将被修改的接口、来自开发者的技术澄清、架构决策、schema 变更、API 契约、特定交互。注意:不要包含具体文件路径或代码片段,因为它们可能很快过时。
- Testing Decisions(测试决策):列出所做的测试决策,包括对什么是好测试的描述(只测试外部行为,不测试实现细节)、将测试哪些模块、测试的先前参考(即代码库中类似类型的测试)。
- Out of Scope(范围外):描述本次重构范围之外的事项。
- Further Notes(进一步说明,可选):关于重构的任何进一步说明。
适用场景
适用于用户想要规划一次重构、创建重构请求,或需要将重构工作系统化拆解并记录为 GitHub issue 的场合。
限制
官方资料未提供关于支持的平台、收费情况或具体依赖的说明。