代码重复比错误的抽象成本更低

开发者们热爱 DRY 原则。

你想避免重复自己。你想要优雅且可重用的代码。

但这个目标往往会导致一个陷阱:过早抽象。

重复代码感觉不对劲。然而,代码重复的成本往往比错误的抽象更低。

我们试图构建完美的模块化系统。我们寻找模式并提取逻辑以管理复杂度。

设计良好的抽象有助于软件扩展。

但许多抽象构建得太早了。如果你没有完全理解问题,你的抽象就会变成一种负担。

错误的抽象会导致以下几个问题:

  • 过度设计:你为简单的问题构建了复杂的解决方案。
  • 僵化:你的代码变得难以修改,因为它试图预测一个永远不会发生的未来。
  • 意图模糊:业务逻辑隐藏在层层通用的接口之下。这使得调试变得困难。
  • 紧耦合:系统的某些部分会与抽象本身紧紧绑定。

这种代价是高昂的。你把时间花在与自己的架构作斗争,而不是解决用户的问题。它会拖慢团队的进度,并使重构变得困难。

我并不是在告诉你要复制粘贴一切。我是在建议一种务实的方法。

将受控的重复作为一种工具。在需求变化快或存在不确定性的领域使用它。

在构建抽象之前,请等到你能清晰地看到模式为止。

来源:https://dev.to/kelvin_kariuki_20f4bec616/developer-take-on-code-duplication-is-far-cheaper-than-the-wrong-abstraction-2cbo