

DRY原则:识别模式并抽象概括 - javierdearcos
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 来自“Don't Repeat Yourself”的首字母缩写词,是最普遍的开发原则之一。它是由Andy Hunt和Dave Thomas在他们的书The Pragmatic Programmer中创造的。
DRY不是简单的“不要重复自己!”,它的关键是识别一种模式并用理想的抽象级别对其进行概括。
DRY 源于复制知识的危险,这意味着在发生变化时,我们必须记住复制该知识的所有位置上下文,否则我们将陷入系统中的不一致。完整的原理是:
每一条知识都必须在系统中具有单一、准确和完整的表示。
如果我们坚持完整的原则,我们将对 DRY 代表什么有更清晰的了解,但如果我们只坚持首字母缩略词,我们将错过许多细微差别,这会使我们过于简单化它的含义。
在某些情况下,我们会以随意的方式发现相同的代码,但很明显它会以不同的方式发展。这里提取公共代码是错误的。或者代码看起来属于不同的情况,因为它的命名和结构方式不同,但隐藏了相同的模式。在这种情况下,我们将不得不对其进行抽象。
DRY 的关键是识别一种模式并用理想的抽象级别对其进行概括,以便它对我们所有的情况都有用。
重要的是要意识到过早抽象的危险,并且复制代码通常比创建错误的抽象更可取。
每次提取公共代码时,您都会在系统的不同部分和/或不同计算机之间创建依赖关系。因此,有必要分析这种依赖是否有意义,以及它可能带来的问题是否值得。
也有可能在提取此公共代码时,您必须以 API 的形式将其公开,以便不同的模块和/或团队可以使用它。在这里,您将被绑定到维护 API 的契约,以免破坏可能使用它的其他团队或客户的代码,因此您必须非常确信它是正确的抽象。
由于这些原因和代码之外的其他原因,不重复代码可能并不总是一个好主意。
Recommend
-
72
2018 - @SIFT2009 - 2017:纠结,无奈,无成果2018:努力,深挖,技术涨=========2017 年开始学会总结,学会记录,期待在 2018 年能够在技术有所精进。期待跟坛内的技术大牛多交流。附
-
54
一个人并不是生来要给打败的,你尽可以把他消灭掉,可就是打不败他。 学和使用react有一年多了,最近想在梳理一下react基础知识,夯实基础,激流勇进~ 关于reacr-router,redux,redux-saga后
-
47
程序员 - @xmge - 从 17 年开始学习 go 的,之前是做 java 开发的,刚开始写 go 的时候,我去,怎么不写 “;”,这么不严谨,不过 go 起来挺舒服的,直接写方法也挺舒服的,后来有次又写 java,我去,为
-
16
文末福利:多媒体知识图谱高清版 2020年,直播带货火爆全网。想一探淘宝直播背后的前端技术?本文将带你进入淘宝直播...
-
8
DRY原则的误区 很多编程的人,喜欢鼓吹各种各样的“原则”,比如KISS原则,DRY原则…… 总有人把这些所谓原则奉为教条或者秘方,以为兢兢业业地遵循这些,空喊几个口号,就可以写出好的代码。同时,他们对违反这些原则的人嗤之以鼻——你不知道...
-
4
好文案长啥样?2个字就可概括 ...
-
6
2022 春节假期已结束,能用一句话概括你没有回家过年的心情吗?大过年的,...
-
8
# Web进阶·通过框架贯彻DRY原则知识节点待整理,以下为参考资料:PSR4规...
-
7
不同于常规的主播互动直播;教学直播,面向k12人群, 前期会有课前的准备工作比如课程创建,学生购买数据,老师课件,试卷题目的准备; 双师模式:学生会分配给不同的辅导老师,辅导老师会对学生进行分班处理,课中也会有学生选组上课互动的场景,辅导...
-
3
祝融说。 一切事件都可以被简单的概括为「将不确定确定化」。 祝融说。...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK