《C++代码整洁之道:C++17 可持续软件开发模式实践》 —3.4 避免复制原则(DRY)

举报
华章计算机 发表于 2020/02/09 16:36:59 2020/02/09
【摘要】 本节书摘来自华章计算机《C++代码整洁之道:C++17 可持续软件开发模式实践》 一书中第3章,第3.4节,作者是[德]斯蒂芬·罗斯(Stephan Roth),连少华 郭发阳 陈涛 译。

3.4 避免复制原则(DRY)

复制和粘贴是一个设计错误。

—David L. Parnas

虽然这个原则是最重要的,但我确信开发人员经常有意或无意地违反这个原则。DRY是“Don抰 repeat yourself! ”的缩写。我们应该尽可能避免复制,因为复制是一个非常不好的行为。该原则也称为“Once And Only Once”(OAOO)原则。

复制是非常危险的,其原因显而易见:当一段代码被修改的时候,也必须相应地修改这段代码的副本,不要抱着不修改副本的期望,可以肯定的是,一定要修改副本。任何复制的代码片段迟早会被忘记,并且,会因为漏改代码的副本而产生bug。

就这样,没什么别的了吗?不是的,还有一些需要我们深入讨论的事情。

在Dave Thomas和Andy Hunt的出色的著作《The Pragmatic Programmer》[Hunt99]中陈述了DRY原则的含义,就是我们要保证“在一个系统内部,任何一个知识点都必须有一个单一的、明确的、权威的陈述。”值得注意的是,Dave和Andy并没有明确地提到代码,他们谈论的是知识点。一个系统的知识所影响的范围远比它的代码更广泛。例如,DRY原则同样也适用于文档、项目、测试计划和系统的配置数据。可以说,DRY原则影响了每一件事情!你可以想象一下,严格遵守这一原则并不像起初看起来那么容易。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。