3

DRY原则:识别模式并抽象概括 - javierdearcos

 2 years ago
source link: https://www.jdon.com/57409
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
DRY原则:识别模式并抽象概括 - javierdearcos

DRY 来自“Don't Repeat Yourself”的首字母缩写词,是最普遍的开发原则之一。它是由Andy Hunt和Dave Thomas在他们的书The Pragmatic Programmer中创造的。

DRY不是简单的“不要重复自己!”,它的关键是识别一种模式并用理想的抽象级别对其进行概括。

DRY 源于复制知识的危险,这意味着在发生变化时,我们必须记住复制该知识的所有位置上下文,否则我们将陷入系统中的不一致。完整的原理是:

每一条知识都必须在系统中具有单一、准确和完整的表示。

如果我们坚持完整的原则,我们将对 DRY 代表什么有更清晰的了解,但如果我们只坚持首字母缩略词,我们将错过许多细微差别,这会使我们过于简单化它的含义。

在某些情况下,我们会以随意的方式发现相同的代码,但很明显它会以不同的方式发展。这里提取公共代码是错误的。或者代码看起来属于不同的情况,因为它的命名和结构方式不同,但隐藏了相同的模式。在这种情况下,我们将不得不对其进行抽象。

DRY 的关键是识别一种模式并用理想的抽象级别对其进行概括,以便它对我们所有的情况都有用。

重要的是要意识到过早抽象的危险,并且复制代码通常比创建错误的抽象更可取。

每次提取公共代码时,您都会在系统的不同部分和/或不同计算机之间创建依赖关系。因此,有必要分析这种依赖是否有意义,以及它可能带来的问题是否值得。

也有可能在提取此公共代码时,您必须以 API 的形式将其公开,以便不同的模块和/或团队可以使用它。在这里,您将被绑定到维护 API 的契约,以免破坏可能使用它的其他团队或客户的代码,因此您必须非常确信它是正确的抽象。

由于这些原因和代码之外的其他原因,不重复代码可能并不总是一个好主意。

​​​​​​​


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK