软件设计原则——DRY(Dont Repeat Yourself)和KISS( Keep It Simple, Stupid)

【架构设计】保持简单轻量设计的三个原则——DRY,KISS, YAGNI 一个软件轻量简单的软件架构是非常重要的,它可以让我们花最小的代价就能满足业务上的需求。那如何保证轻量简单呢?那今天就和大家分享下这其中的秘密,也就是3个重要的指导原则,KISS原则,YAGNI原则和DRY原则,你们都知道并且理解吗?本文和大家介绍了软件工程领域中保持简单架构设计的三个原则,其实所有的这些原则就是为了达到一个很简单的目的,,软件设计上的简单轻量是非常重要的。 阅读详情

在本文中,我将探讨软件设计原则及其优点,为什么设计原则对我们有用,以及如何在日常编程中实现它们。我们将探索DRY和KISS软件设计原则。

 

DRY(Don’t Repeat Yourself)原则——不要重复你自己

DRY代表“不要重复自己”,这是软件开发的一个基本原则,目的是减少信息的重复。干原理是这样表述的:“每一个知识或逻辑必须在一个系统中有一个单一的、明确的表示。”

违反DRY原则

“我们喜欢敲代码”(或者“浪费每个人的时间”):“我们喜欢敲代码”意味着一遍又一遍地写同样的代码或逻辑。这样让管理代码变得很困难的,如果任何逻辑发生变化,那么我们必须在代码中的所有地方进行更改,从而浪费时间。

如何实现DRY

为了避免违反DRY原则,需要把你的系统分成几部分。将代码和逻辑划分为更小的可重用单元,并通过在需要的地方调用代码来使用这些单元代码。不要编写过于冗长的方法,要进行逻辑拆分,并尽量使用现有方法中已经写好的逻辑。

DRY的好处

更少的代码是好的,它节省了时间和精力,易于维护,并且减少了bug的几率。

DRY原则的一个很好的例子是企业库enterprise libraries中的helper类,其中每行代码都在库libraries和helper类中是惟一的。

 

KISS( Keep It Simple, Stupid)原则——保持简单,愚蠢。

KISS原则使代码简单、清晰、易于理解。编程语言是为人类所理解的,所以保持编码的简单和直接,让人类理解。保证你的方法尽量很小;每个方法都不应该超过40-50行代码。

每个方法应该只解决一个小问题,而不是实现很复杂的功能。如果你在方法中有很多条件,把它们分解成更小的单独的方法。它不仅更易于阅读和维护,而且可以更快地发现bug。

违反KISS原则

我们都经历过在项目中由于一些糟糕的代码,需要大家努力加班解决问题。“既然我们可以只用2-3行就完成同样的事情,他们为什么要写这些不必要的行和条件呢?”看看下面显示的两个代码。

你会用哪个?

如果有两种方法实现的功能是一样的,第一种代码多,但很容易读懂。第二种呢,代码很简练,相对第一代码而言,没那么好理解,你会选哪一种呢?


如何实现KISS原则

为了避免违反KISS原则,尝试编写最简单的代码。为您的问题考虑许多解决方案,并选择最好的解决方案,并将其转换为代码。只要有冗长的代码,就将其分为多个方法,右键单击并在编辑器中重构。试着写一些小的代码块来完成一个任务。

KISS原则的好处

如果我们有一个开发人员编写的一些糟糕的功能,如果我们要求其他开发人员对代码进行修改,那么他首先必须理解代码,这将比必须要花费更多的时间。如果简单地编写代码,那么理解该代码就不会有任何困难,它将更容易修改,而且花费的时间也会大大减少。

 

总结

在编写任何代码或模块时,要记住软件设计原则,并明智地使用它们。让它们成为你的习惯,这样你就不需要每次都记住它们;它将节省开发时间,并使您的软件模块健壮、可维护和可扩展。

DRY(Don‘t Repeat Yourself)原则:拒绝重复,拥抱简洁软件黄金法则 DRY(Don't Repeat Yourself)原则是软件开发中的一个基本原则,它强调在代码库中避免重复代码,以减少维护成本和提高代码质量。 阅读详情

相关推荐

车载机器人终极解决方案:从功能叠加到生态融合的颠覆性变革

本文提出一种融合智能汽车与家居技术的车载机器人架构。其创新点包括:1)基于多模态传感器的拟人化硬件设计,实现声源定位误差<5°、体温检测精度±0.3℃;2)跨模态情感计算引擎,综合面部表情、心率等数据构建三维情绪模型;3)协议自适应中间件,支持小米、华为等多品牌智能家居设备即插即用;4)环境自适应舵机控制,-30℃环境下扭矩保持率达92.5%。测试数据显示,该方案使交互步骤减少60%,用户满意度提升58%,日均使用时长增加2.3倍,为"人-车-家"生态融合提供了可行技术路径。

qq_42671193的博客 1125

Don't Repeat Yourself (不要重复你自己)

DRY是指Don't Repeat Yourself特指在程序设计以及计算中避免重复代码,因为这样会降低灵活性、简洁性,并且可能导致代码之间的矛盾。《The Pragmatic Programmer》对这一思想做了很好的阐述。 把一切重复的代码抽象出来。我觉得最主要的原因是很好维护,当需要改动时只需要改动一次。 代码复用的层次:函数级别复用,对象级别复用,接口级别的,类库级别复用,框架级别复用...

weixin_33806914的博客 403

【Linux】实际项目应该如何完成?--安防监控系统项目的总结

到目前为止我也做个5、6个嵌入式项目,但以往都是从零开始自己做,也就是毫无计划,想到那里做那里,有想法就会去实现,就这样导致我碰到了很多坑,也消耗了我许多时间,当然,不是说这样不好,因为在其中我也得到了一个很好的锻炼与练习,但是这不适用于在工作中去这样做。...

修成真的博客 6726

设计模式:DRY原则,提高代码的复用性

DRY 原则 那就是 DRY 原则。它的英文描述为:Don’t RepeatYourself。中文直译为:不要重复自己。将它应用在编程中,可以理解为:不要写重复的代码。 你可能会觉得,这条原则非常简单、非常容易应用。只要两段代码长得一样,那就是违反DRY 原则了。真的是这样吗?答案是否定的。这是很多人对这条原则存在的误解。实际上,重复的代码不一定违反 DRY 原则,而且有些看似不重复的代码也有可能违反 DRY 原则。 有三种典型的代码重复情况,那就是:实现逻辑重复、功能语义重复、代码执行重复。三种代码重复,

OceanStar的博客 1420

2025数学建模国赛A题1-4问详解(论文+完整代码)

本文介绍了数学建模国赛A题的解题思路,重点分析了三维遮蔽模型的建立和运动学代码实现。相比第一题,第二题增加了未知参数求解,需要采用遗传算法等非线性优化方法。文章强调该模型由专业团队原创开发,代码可运行,并提醒参赛者警惕市场上的保奖班现象。整体内容聚焦于竞赛解题技巧和原创性保证。

Eloveeeee的博客 2798

别再手动转格式了!用Java+LibreOffice命令行实现Word批量转PDF(附Docker部署避坑指南)

本文详细介绍了如何利用Java和LibreOffice命令行实现企业级Word批量转PDF的自动化解决方案,包括多线程优化、Docker化部署及常见问题排查。通过代码示例和实战经验,帮助开发者高效处理文档转换需求,提升工作效率并避免常见陷阱。

552

设计原则之DRY 原则

设计原则之DRY 原则   DRY(Don’t Repeat Yourself),翻译成中文就是,不要重复你自己。这个原则最早出现在经典著作《程序员修炼之道》里,定义是这样的:系统的每一个功能都应该有唯一的实现,如果多次遇到同样的问题,就应该抽象出一个共同的解决方法,而不要重复开发同样的功能代码。 但是对于DRY原则,会比较容易陷入如下的一些思维陷阱中: 陷阱一:随时关心代码重用性 代码重复通常有以下三种类型:   1. 功能需求重复,比如,A 团队和 B 团队都做了在线文档管理功能、QQ 和微信的聊天通信

weixin_41103644的博客 1558

Tiny windows 11 安装与部署

需要注意,安装完后键入 windows 键,输入 update 先更新系统。点击开始,等待完成即可,用户可自定义。

m0_73351035的博客 9046

专业 英语

计算机、数学、机械等专业的专业英语词汇

Edward2022的博客 2946

R语言Rstudio突然无法启动且报错:ERROR system error 42 [str: 一, len: 3, from: UTF-8, to: ISO8859-1]...如何解决

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 2846

【100%通过率】2023华为od机试C卷【螺旋数组矩阵】C++ 实现

给出数字个数n和行数m(1 < n,m < 999),从左上角的1开始,按照顺时针螺旋向内写方式,依次写出2,3...n,最终形成个一m行矩阵。疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。输入一行,两个整数,空格隔开,依次表示n、m。4.数字不够时,使用单个*号占位。3.填充数字时优先填充外部。1:模拟整个过程打印即可。1.每行数字的个数一样多。小明对这个矩阵有些要求。2.列的数量尽可能少。

MISAYAONE的博客 1247

设计模式之美21-理论七:重复的代码就一定违背DRY吗?如何提高代码的复用性?

我们首先来区分三个概念:代码复用性(Code Reusability)、代码复用(Code Resue)和DRY原则。代码复用表示一种行为:我们在开发新功能的时候,尽量复用已经存在的代码。代码的可复用性表示一段代码可被复用的特性或能力:我们在编写代码的时候,让代码尽量可复用。DRY原则是一条原则:不要写重复的代码。从定义描述上,它们好像有点类似,但深究起来,三者的区别还是蛮大的。首先,“不重复”并不代表“可复用”。

fegus的博客 519

GStreamer中h264parse元素

h264parse是 GStreamer 中处理 H.264 视频流的关键元素,主要负责解析和准备 H.264 流以便后续处理。

深之JohnChen的专栏 1022

重温设计模式系列(三)面向对象设计原则

背景面向对象基础知识,只是给了我们一个概念,如何更好的设计出良好的面向对象代码,需要有设计原则作为支持。设计原则是核心指导思想,在这些原则的基础上,经过不断的实践,抽象,提炼逐步产生了针...

703

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

DRY 原则—Don‘t Repeat Yourself, 不要重复

Don’t Repeat Yourself, 不要重复你寄己~

Just do IT 738

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

编程法则 - DRY(Don't Repeat Yourself)

1,Dont Repeat YourselfEvery piece of knowledge must have a single, unambiguous, authoritative representation within a system"2.Once and Only Once"Once and Only Once is much easier t

湖爷洞 1210

Don‘t Repeat Yourself (不要重复你自己)

Don't Repeat Yourself (不要重复你自己)

weixin_53909748的博客 393

设计模式学习笔记 - 设计原则 - 7.DRY 原则及提高代码复用性

DRY 原则,英文描述为: Don't Repeat Yourself。中文直译:不要重复自己。将它应用在编程中,可理解为:不要写重读的代码。

chenjian723122704的专栏 1816

DRY原则

DRY原则 一、DRY原则 DRY原则:Don’t Repeat Yourselt, 简称DRY。 描述:不要重复自己,理解为不要写重复的代码。 三种典型的代码重复情况:实现逻辑重复、功能语义重复和代码执行重复。 实现逻辑重复,但功能语义不重复的代码。并不违反DRY原则。实现逻辑不重复,但功能语义重复的代码,也算违反DRY原则。代码执行重复也算违反DRY原则。 二、什么是代码复用性 区分三个概念:代码复用性(Code Reusability)、代码复用(Code Resue)和DRY原

帅枫的博客 4087

避免重复劳动:Don‘t-Repeat-Yourself (DRY) 原则详解

DRY 原则是编程领域的一个重要原则,它强调通过减少代码中的重复部分来提高代码的质量和可维护性。在应用 DRY 原则时,我们要根据实际情况做出合理的判断,避免过度抽象和复杂的依赖关系。同时,我们还要保持代码的可读性和可维护性,确保其他开发者能够轻松理解我们的代码。通过遵循 DRY 原则,我们可以写出更加简洁、高效、易于维护的代码,从而提升项目的整体质量。

软件架构师笔记 1478

17.使用继承,Do not Repeat Yourself

说明 在编程中有一个原则,称为:Do not Repeat Yourself(DRY)。重复代码问题的原因是因为任何更改都需要在多个地方修复代码。这通常意味着更多的程序员的工作量和更多的错误的空间。 请注意在下面的示例中,describe方法由Bird和Dog共享: Bird.prototype = { constructor: Bird, describe: function()...

幺四四零的博客 824

【新手python程序员必须明白的真相】114.新手python程序员必须明白的DRY原则(Don’tRepeatYourself):减少冗余代码的重要性

编程就像搭乐高,DRY原则教会我们如何用更少的积木搭建更复杂的结构。记住:好的代码不是一次性写出来的,而是在不断重构中打磨出来的。下次当你准备按Ctrl+V时,不妨停下来问自己:“这个逻辑五年后还能一眼看懂吗?改需求变得像换积木一样简单Bug就像藏在透明盒子里的蟑螂无处遁形代码review时同事的眼神都变得温柔了保持对重复的敏感,但别被原则束缚住手脚。编程之道,存乎一心。愿你的代码既能乘风破浪,又可历久弥新!

781

《简约之美:软件设计之道》学习笔记(三)

理想的解决方案——也即保证成功的唯一途径——就是这样设计你的系统:保证维护成本随时间降低,最终降到零(或者尽可能接近零)。只有你能做到这点,就无所谓未来收益是大还是小,总之你不需要关心。理想情况下,只要未来收益高于维护成本,工作就是值得做的。所以,哪怕维护成本和未来收益都增加,只有未来收益超过维护成本,也是值得做的。相比降低实现成本,降低维护成本更加重要。维护成本正比于系统的复杂程度。设计的质量好

Keep Learning, Keep Growing, Keep Succeeding! 526

编程的DRY规则

DRY(Don't repeat yourself)字面意思来看:"不要重复自己"。强调的意思就是在进行编程时相同的代码不要重复写,最好只写一次,然后可以在其他地方直接引用。如此一来,可以提高代码重用率,缩减代码量,同时也有助于提高代码的可读性和可维护性。当需要做出更改时,只需要更改一个地方即可。

妙手书生的博客 636

软件工程的核心原则:KISS, DRY, SOLID, YAGNI

在软件开发的广阔领域中,原则和实践是构建高质量、可维护系统的基石。本文将深入探讨四个核心原则:KISS(保持简单,愚蠢)、DRY(不要重复自己)、SOLID(面向对象设计的五大原则)以及YAGNI(你不会需要它)。这些原则不仅指导我们如何编写代码,还影响着软件架构和项目管理。

四楼没电梯的专栏 1519

DRY原则--- Don‘t Repeat Yourself

DRY概述 降低可管理单元的复杂性的基本策略是将系统分成多个部分。 它通常以首字母缩写词DRY来指代 当您构建大型软件项目时,总体上通常会不知所措。人类不善于管理复杂性;他们擅长为特定范围的问题找到有创意的解决方案。降低可管理单元的复杂性的基本策略是将系统分成更方便的部分。首先,您可能需要将系统分为多个组件,其中每个组件代表自己的子系统,其中包含完成特定功能所需的一切。 例如,如果您要构建内容管理系统,则负责用户管理的部分将是组件。该组件可以分为其他子组件,例如角色管理,并且可以与其他组件(例如安全性组

671
上一篇: CSharp代码示例每日一讲: 在GDI+中使用画笔和画刷
下一篇: 人工智能的未来在哪里?
codinghello
博客等级 码龄25年 47粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值