第 16 章 分类整理 分类 Tidy
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
我们暂且假定 使用拉取请求 (PR) / 代码审查模式(我稍后会论证另一种模式)。Tidy 放在哪里?
这是一个丑陋的追尾事件:
-
我把我的 Tidy 和我的行为改变放在一起。
-
评论家们抱怨我的 PR 太长。
-
我会在行为改变之前(更有可能)或之后,将 Tidy 分解成各自的 PR。
-
审稿人抱怨说,Tidy 公关毫无意义。
-
Go to 1.
Tidy 总得有个去处,,否则就不会整理。总结:它们被放在各自的 PR 中,每个 PR 的整理次数越少越好。
让我们来深入探讨其中的利弊得失。学习 Goidy 的人似乎会经历一些可预测的阶段。在第一阶段,我们只是在做改变,我们从大量无差别的改变开始(图 16-1)。
图 16-1. 未分化的大量变化
在这里,我们正在修正if 语句,意识到一个名字错了,修正了它,然后回到if 语句。改变就是改变。
学习了 Tidy 之后,我们在显微镜下的画面仿佛一下子聚焦了。在这些修改中,有些是改变了程序的行为,即从程序运行中观察到的程序属性;有些则是改变了程序的结构。这些变化只能通过查看代码来观察:B=行为,S=结构(图 16-2)。
图 16-2. 行为变化和结构变化
在这一点上,仍然没有计划,也没有改变行为和结构之间的流程--只是意识到有两种不同的东西在一起发挥作用。
这样做一段时间后,我们开始注意到共同的流程。对语句进行分块,对助手进行解释,使更容易进行行为更改。现在,编程更像是下棋,你可以提前猜测几步棋(或序列)的结果(图 16-3)。
图 16-3. 行为和结构依次变化
请注意,此时我们仍有一个大 PR。我们正处于循环的第一步。我们所做的一举一动都是有意为之,目的要么是为了方便修改,要么是为了让修改变得简单。不过,把这一切放在一起,就有点乱了。审核人员会望而却步。
因此,我们会将更改分成不同的 PR。一连串的 Tidy(甚至只有一次 Tidy)放在一个 PR 中。行为更改则放在另一个 PR 中。每次在整理和行为更改之间切换时,我们都要打开一个新的 PR(图 16-4)。
图 16-4. 独立 PR 的行为和结构变化
如何将 PR 拼凑或拆分是一种权衡。可以从激励的角度来考虑。大而全的公关可以展示全貌,但对于审稿人来说,可能无法提供有用的反馈意见。小巧玲珑的公关则能从细微处获得反馈,但也有可能偏离主题。
审核延迟也是一种激励机制。如果代码能迅速通过审核,就会鼓励你创建更多更小的 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access