《程序员修炼之道》系列 | 邪恶的重复
视频地址:https://www.zentao.net/programmer/evil-repetition-80330.html
一、什么是DRY?
Don’t repeat yourself,简称DRY,是软件工程中广泛且被普遍接受的最佳实践。DRY原则上是要求系统中的每一部分,都必须单一、明确、权威地表达。其实就是可靠地开发软件、并让开发项目更易于理解和维护。DRY原则中最基本的就是不要重复代码。
在软件工程中,“干净的代码”是一种理想的追求。能够辨别重复,并通过适当的实践消除重复的程序员,比一直在重复代码的程序员,写的代码会更清洁。
很多人将DRY限定为“不要写重复的代码”,但它更强调的是对知识和意图的重复。
二、重复是怎样发生的?
编程过程中,我们所见到的大多数重复问题,大致可以分为以下四类:
1、强加的重复 大多数人都在无力避免重复的情形下工作过。
比如有的项目可能会使我们重复共有的定义和过程,或有的编程语言自身要求某些重复信息的结构。
比如文档规范中经常强调的注释,但事实上无用的注释会使代码变得糟糕。如果运用DRY的法则,就是把浅显易懂的知识放在代码中,把注释保留给其他高级的说明。否则,就是在重复知识。
2、无意的重复 来自代码设计中的错误,通常会让开发者意识不到他们在重复信息。
3、无耐性的重复 这种重复通常是由于开发者偷懒,认为重复会让功能的实现变得更容易。也会因项目时间的限制,而驱使一部分开发者拷贝、修改原来的代码,走捷径。
欲速则不达,重复也许可以节省几秒钟,但一旦出现了问题,反而会花费更多的时间去修复。
4、开发者之间的重复 最典型的就是下面这个例子。美国的一个州,在对政府电脑系统进行千年虫问题检查时,审计发现有超过一万个程序,每个程序都包含不同版本的社保号验证代码。
同一个团队中不同开发者的重复,可能是最难检测和处理的。这些重复可能存在好多年,都不容易被发现,会导致各种维护问题。
三、初步实现DRY,可以尝试这样做
1、停止重复不必要的代码;
2、当代码重复 3 次时,停止并思考是否需要进一步抽象代码或工具类;
3、对历史遗留代码增加测试程序,梳理逻辑,增加说明文档并通知相关人员;
4、适时讲解项目,明确项目目前已有的功能和代码,减少因不了解项目而造成的重复。
写好一段代码需要时间,但写一段好代码需要更长时间。把优秀的软件设计原则变成习惯,会节省很多开发时间,更利于维护和扩展软件项目。Don’t repeat yourself,你还有其他更好的方法吗?欢迎评论区留言~
《程序员修炼之道》系列更多视频可戳:https://www.zentao.net/programmer.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧