删除死代码
一次运行清理一个死区域:证明其未使用,删除整个单元,验证剩余部分。它从不重构保留的代码;附近看似有问题的活代码会列出名称,但不会修改。
步骤
- 列举候选者。 列出可能是死代码的完整单元:未触及的文件、未引用的导出、没有路由渲染的组件、没有调用者传递的 props 和 state、没有标记使用的 CSS 类。整单元,而非行——一个带有存活辅助函数的死导出仍然是一个单元。 完成条件:每个候选者都能指出可能引用它的人。
- 在每个地址证明未使用。 搜索直接和动态引用:基于字符串的导入、路由表、测试模板、故事名称。一个候选者只有当所有可能访问它的路径都被跟踪过时,才被认为是死代码。 完成条件:每个候选者记录下哪些搜索未找到任何结果。
- 分片删除并逐一验证。 一次删除一个单元——如同示踪子弹,如果出现任何意外则进行救援:停止,重新证明边界,然后继续。每次删除后,构建、类型检查和测试都会运行。 完成条件:最后一次删除后,至少完整的构建加测试通过一次。
- 收尾。 重新检查哪些内容曾导入被删除的单元:导入链、过时的测试夹具、现在为空的文件夹。清理依赖树:第二次暴露出来的部分也属于本次运行。 完成条件:对已删除名称的新搜索返回空结果。
参考
- reference.md — 前端代码在搜索中可能隐藏的位置,以及按单元类型划分的证明检查清单。