问:我刚刚编写了一个 700 行的类。可怕。我羞愧地低下了头。它与DRY正好相反,就像英国的夏天一样。
它充满了剪切和粘贴,并在这里和那里进行了细微的调整。这使它成为重构的主要候选者。在我开始之前,我想我会问当你有很多重复时,你寻找的第一个重构机会是什么?
作为记录,我的可能正在使用:
泛型类和方法
方法重载/链接。
你的是什么?
答:我喜欢在需要时开始重构,而不是一有机会就开始重构。您可能会说这在某种程度上是一种敏捷的重构方法。我什么时候觉得我需要?通常当我觉得我的代码中丑陋的部分开始蔓延时。我认为丑陋的东西只要被遏制住就可以了,但是当它们开始有传播的冲动的那一刻,那就是你需要照顾生意的时候。
您用于重构的技术应该从最简单的开始。我强烈推荐 Martin Fowler 的书。将通用代码组合到函数中、删除不需要的变量和其他简单的技术可以让您获得很多好处。对于列表操作,我更喜欢使用函数式编程习语。也就是说,我尽可能使用内部迭代器、map、filter 和 reduce(在 python 中,ruby、lisp 和 haskell 中有相应的东西),这使得代码更短,更独立。