DRY-KISS-YAGNI 三原则
Q7nl1s admin

DRY

一次且仅一次(英语:Once and only once,简称OAOO),又称为Don’t repeat yourself(不要重复你自己,简称DRY),或一个规则,实现一次(One rule, one place)是面向对象编程中的基本原则,程序员的行事准则。旨在软件开发中,减少重复的信息。

DRY的原则是“系统中的每一部分,都必须有一个单一的、明确的、权威的代表”,指的是(由人编写而非机器生成的)代码和测试所构成的系统,必须能够表达所应表达的内容,但是不能含有任何重复代码。当DRY原则被成功应用时,一个系统中任何单个元素的修改都不需要与其逻辑无关的其他元素发生改变。此外,与之逻辑上相关的其他元素的变化均为可预见的、均匀的,并如此保持同步。

违反DRY原则的解决方案通常被称为WETWET大致能分成4种:

  1. Imposed duplication:开发者认为不得不的重复
  2. Inadvertent duplication:开发者没有意识到的重复
  3. Impatient duplication:开发者复制自己或他人的代码造成的重复
  4. Interdeveloper duplication:不同开发者间共同开发或交接造成的重复

有时,为了可读性,或避免耦合,或过早重构,应放弃DRY原则。

KISS

KISS原则是英语 Keep It Simple, Stupid 的首字母缩略字,是一种归纳过的经验原则。KISS 原则是指在设计当中应当注重简约的原则。总结工程专业人员在设计过程中的经验,大多数系统的设计应保持简洁和单纯,而不掺入非必要的复杂性,这样的系统运作成效会取得最优;因此简单性应该是设计中的关键目标,尽量回避免不必要的复杂性。同时这原则亦有应用在商业书信、设计电脑软件、动画、工程上。

虽然长久以来,它一直是被写为 “Keep it simple, stupid”,但约翰逊将其转化成 “Keep it simple stupid”(无逗号),而且这种写法仍然被许多作者使用。

YAGNI

YAGNI是英文 “You aren’t gonna need it” 的缩写,一般认为属于软件工程方法极限编程。YAGNI 原则指出,程序员应该在面临确凿的需求时,才实现相应功能。因为在实际开发的过程中我们经常会尽可能的考虑未来的一切需求,为了迎合某些概率极低的需求的设计成本是非常高的,而且这种过度设计的收益非常低。可能你经过深思熟虑的设计在未来的两三年中都没有派上用场。一些设计是否必要,应该更多基于当前的需求。

在 YAGNI 的实践中,建议配合单元测试持续整合代码重构;以避免产生难以维护的代码(技术负债)。

参考文献:

理解 DRY、KISS、YAGNI 三原则_Jitwxs的博客-CSDN博客

wikipedia

 Comments
Comment plugin failed to load
Loading comment plugin
Powered by Hexo & Theme Keep
Unique Visitor Page View