我努力工作是为了逃避工作——我对重构的看法

2025-06-10

我努力工作是为了逃避工作——我对重构的看法

“我是个相当懒惰的人,为了逃避工作,我愿意付出巨大的努力。”——马丁·福勒

这对我来说再合适不过了。我一直努力减少工作量😝

对我来说,实现这一目标的最佳工具之一就是重构。不仅仅是重构,而是让重构成为一种习惯,并将这种习惯融入到我的工作中。

什么是重构?

我猜你们大多数人已经对重构有了很好的理解,不过如果你们不理解的话,我还是会解释一下。维基百科是这样解释的:

重构是在不改变外部行为的情况下重组现有代码的过程。重构旨在改进软件的设计、结构和/或实现(其非功能性属性),同时保留其功能(更多)。

我的看法

我喜欢维基百科的描述,尽管它缺少一个重要的概念,在我看来,这是重构最重要的事情之一。那就是“时间”

对我来说,重构是一种随着时间推移而不断改进的功能(R = I/T)。重构会随着时间的推移而发生,通过一次又一次的迭代来不断改进,确保整个过程中不会出现任何问题。

这就是为什么我把重构变成一种习惯,而不是每几周或几个月才做一次。事实证明,这对我来说非常有效(重点在于,因为我相信你们每个人都有自己的方法)。

我也有意将重构作为开发周期的一部分,它并不局限于日常习惯或定期重构。重构通常是在开发周期的最后阶段,在最初的、略显幼稚且可能并非最简洁的解决方案之后。但最终的解决方案确实有效,并让我通过了所有测试并满足了所有需求。

在有了可行的解决方案之后,我做了几次重构,主要关注 DX(开发人员体验),使代码尽可能清晰和简单。

我的观点是什么?

我的意思是,我已经把重构变成了一种日常习惯,而且效果很好。作为开发者,习惯是我们最重要的工具之一,它可以确保我们不会犯错,或者通过强化良好的行为习惯,让我们的生活随着时间的推移变得更轻松。但是,习惯也可能是坏事,它会强化不良的行为或做事方式(是的,我说的就是你,那个在 JS 中习惯将字符串转换为数字的+)……

对我来说,养成重构的习惯是减少工作量最有效的方法之一。我开始努力工作,持续改进项目,并将精力集中在减少工作量上。结果,代码库变成了一个非常舒适的工作和维护环境。

我已经连续四年坚持做这件事了。以下是我做的一些事情:

  • 重新组织代码,使其尽可能清晰
  • 重命名一些东西,让它们更有意义(希望如此,因为我的命名很糟糕)
  • 将怪物函数的部分内容提取为单独的函数
  • 将相关的东西放在一起,将不相关的东西分开
  • 删除我同事的丑陋代码,然后......咳嗽......对不起,我的意思是,庆祝我同事的代码,是的。
  • ...

与所有可能的改进相比,这是一个相当短的列表。

让我用另一句引言来结束它

这句话我想是出自 FunFunFunction 的主持人 Mattias 之口(如果我说错了,请告诉我)。它大致是这样的:

记住,让代码在你身边比你发现时更好

出于某种原因,这句话一直萦绕在我的心头,我尽可能多地运用它,大概 4 年之后,它已经成为一种习惯,我甚至没有意识到自己这样做了,直到我回顾我的 PR 或其他东西。

所以,也许这对你有用。采用这种方法,你做的改进和重构应该很小,以减少损害/副作用(如果你做得正确,希望损害/副作用最小)。一年下来,每周每天的小改变就能带来相当大的改进。

这次我写了一篇短文,简要解释了我对重构的想法和方法。

你对重构有什么看法?你会重构吗?如果会,你的方法是什么?

鏂囩珷鏉ユ簮锛�https://dev.to/nombrekeff/i-work-hard-in-order-to-avoid-work-my-view-on-refactoring-1kd6
PREV
Fetch——从简单到可扩展的实现
NEXT
CSS 中 Flutter 样式的解释 - LLF #5