程序员修炼之道系列 | 代码中邪恶的重复是怎样发生的?
- 2021-04-13 10:31:00
- LuLu
- 转贴:
- 禅道1
- 2464
一、什么是DRY?
Don’t repeat yourself,简称DRY,是软件工程中广泛且被普遍接受的最佳实践。DRY原则上是要求系统中的每一部分,都必须单一、明确、权威地表达。其实就是可靠地开发软件、并让开发项目更易于理解和维护。DRY原则中最基本的就是不要重复代码。
在软件工程中,“干净的代码”是一种理想的追求。能够辨别重复,并通过适当的实践消除重复的程序员,比一直在重复代码的程序员,写的代码会更清洁。
很多人将DRY限定为“不要写重复的代码”,但它更强调的是对知识和意图的重复。
二、重复是怎样发生的?
编程过程中,我们所见到的大多数重复问题,大致可以分为以下四类:
1、强加的重复
大多数人都在无力避免重复的情形下工作过,
比如有的项目可能会使我们重复共有的定义和过程,或有的编程语言自身要求某些重复信息的结构。
比如文档规范中经常强调的注释,但事实上无用的注释会使代码变得糟糕。如果运用DRY的法则,就是把浅显易懂的知识放在代码中,把注释保留给其他高级的说明。否则,就是在重复知识。
2、无意的重复
来自代码设计中的错误,通常会让开发者意识不到他们在重复信息。
3、无耐性的重复
这种重复通常是由于开发者偷懒,认为重复会让功能的实现变得更容易。也会因项目时间的限制,而驱使一部分开发者拷贝、修改原来的代码,走捷径。
欲速则不达,重复也许可以节省几秒钟,但一旦出现了问题,反而会花费更多的时间去修复。
4、开发者之间的重复
最典型的就是下面这个例子。美国的一个州,在对政府电脑系统进行千年虫问题检查时,审计发现有超过一万个程序,每个程序都包含不同版本的社保号验证代码。
同一个团队中不同开发者的重复,可能是最难检测和处理的。这些重复可能存在好多年,都不容易被发现,会导致各种维护问题。
三、初步实现DRY,可以尝试这样做
1、停止重复不必要的代码;
2、当代码重复 3 次时,停止并思考是否需要进一步抽象代码或工具类;
3、对历史遗留代码增加测试程序,梳理逻辑,增加说明文档并通知相关人员;
4、适时讲解项目,明确项目目前已有的功能和代码,减少因不了解项目而造成的重复。
写好一段代码需要时间,但写一段好代码需要更长时间。把优秀的软件设计原则变成习惯,会节省很多开发时间,更利于维护和扩展软件项目。Don’t repeat yourself,你还有其他更好的方法吗?欢迎评论区留言~
- 联系人:阿道
- 联系方式: 17762006160
- 地址:青岛市黄岛区长江西路118号青铁广场18楼
如果您有优秀的原创文章,欢迎添加联系人直接与我们联系,或通过下方邮箱发送投稿文章,一经采用,我们会付以一定的稿件报酬。
- 投稿邮箱: yanruiyu@easycorp.ltd
- 投稿标题:向 [敏捷开发] 网站投稿
- 稿件要求:与敏捷开发相关的任何内容
更多投稿相关请点击 更多进行了解~