知识卡片

重构和功能变更永远不要混在一次提交里

普通读书笔记卡 · 1457.e

内容

一次提交如果同时包含了代码结构调整和实际行为变化,审查者很难判断某处差异究竟是纯粹的形式重排,还是悄悄改变了逻辑——重构本身的改动通常又大又难读,混入功能变更后真正需要被仔细审视的那部分反而最容易被忽略。把”改变代码的组织方式”和”改变代码的行为”严格拆成两次独立提交,能让审查者在看重构提交时只需确认”逻辑真的没变”,在看功能提交时把全部注意力放在新增行为上,两件事互不干扰。

参考来源

- 位置:《Google系统架构解密:构建安全可靠的系统》第12章《编写代码》12.4.3节(源文件:`../OREILY动物书合辑 图灵新版/_epub-src/text/part0014_split_100.html`) - 结论依据:原文明确规定"永远不要将重构和功能变更混在同一次向代码仓库的提交中……重构变更通常很重要并且难于理解。如果此次提交同时包含了功能变更,那么开发人员或审查者很可能会遗漏一些缺陷"。 - 原始内容:永远不要将重构和功能变更混在同一次向代码仓库的提交中。重构变更通常很重要并且难于理解。如果此次提交同时包含了功能变更,那么开发人员或审查者很可能会遗漏一些缺陷。