C++ 代码整洁之道:C++17 可持续软件开发模式实践 (29):原则 3.4

阅读数:7 2019 年 12 月 4 日 18:49

C++代码整洁之道:C++17可持续软件开发模式实践(29):原则 3.4

(避免复制原则(DRY))

内容简介
本书致力于讲述 C++ 整洁代码之道!如果你想让自己写的代码更加整洁,那么这本书适合你阅读。本书需要熟悉 C++ 语言的基本概念,才能有效的掌握其中的内容。如果你只是想从 C++ 开发开始,并且没有 C++ 语言的基础知识,你应该首先选择一个好的 C++ 入门的练习项目。此外,本书也不包含任何深奥的技巧和杂乱的知识点。我知道 C++ 有很多令人兴奋的技巧,但这些通常不是整洁代码的精神,也不是现代 C++ 的代码风格。除此之外,这本书为了帮助 C++ 程序员提高技能水平,并举例说明如何编写易于理解的、灵活的、可维护的和高效的 C++ 代码。即使你是一个经验丰富的 C++ 开发人员,这本书中也有一些值得学习的地方,我认为这些值得学习的地方能够促进你的工作。书中所提出的原则和实践可以应用于新的软件系统,有时被称为“绿地项目”,以及具有悠久历史的遗留系统,通常被称为“棕地项目”。

复制和粘贴是一个设计错误。
——David L. Parnas

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

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

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

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

C++代码整洁之道:C++17可持续软件开发模式实践(29):原则 3.4

购书地址 https://item.jd.com/12599914.html?dist=jd

评论

发布