何时重构代码

October 31, 20202分钟阅读

背景

最近读到Dan Abramov的一篇文章, 提到 Obsessing with “clean code” and removing duplication is a phase many of us go through, 深有同感。 在我刚开始学习编程时,似乎对任意代码都迫切的希望重构它,以展现自己学到的新东西,虽然有时候的确成功了,但是在重构之后,总会有一些没有考虑到的问题出现,为此总是懊恼,如何才能下次避免。

想法的由来

这些不停优化的想法来源于学校, 老师总是告诉学生不要重复自己(DRY), 这本身没有问题。 但是在实际的项目中,尤其是遗留系统,原先的代码运行的非常好,至少表面上没有任何问题,此时需要进行重构吗?答案很明显是不需要。然而实际情况是: 绝大部分“优秀”的开发者都会或多或少试图重构代码,尤其当只有1人维护一份代码的时候。

对coding本身来说, 一个人独自写一份代码叫创作,而团队合作叫工作

何时重构代码

个人认为首先需要看项目级别:

  • 大型工程,那么只有可能发生在局部重构之中。 此时分2个维度: 若模块属于本身,并没有问题。 但若和他人合作,必须先沟通后改动。“好的重构往往是更抽象,但抽象又意味着缺少灵活性,只有作者才能更明白其中的平衡”。
  • 中小项目: 局部重构总是受到欢迎。所有的项目都是从小变大, 小型项目需要勇于改变才能变大。局部改动沟通很重要, 不同人对重构有不同的看法,也许重构本身是降级。

极致是拿来要求自己的,不能用于要求他人。

未经许可, 不可转载