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

阅读数:10 2019 年 12 月 8 日 20:00

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

(小心优化原则)

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

不成熟的优化是编程中所有问题(或者至少是大部分问题)的根源。
——Donald E. Knuth, American computer scientist [Knuth74]

我发现,开发人员只有一个模糊的想法就进行程序的优化,但他们并不确切知道性能瓶颈究竟在哪里。他们经常摆弄个别的指示,或尝试优化小的、局部的循环结构以挤出最后一点性能。我也是这些开发人员中的一员,其实这很浪费时间。

一般来讲,这些更改对性能的变化是微不足道的,通常不会出现预期的性能提升,这只会浪费宝贵的时间。相反的是,这种所谓的优化后的代码的可理解性和可维护性通常会受到严重影响。特别糟糕的是,有时在这种优化措施中,一些缺陷反而“巧妙”地被引入到了代码中。我的建议是:只要没有明确的性能要求,就避免优化

代码的可理解性和可维护性应该是我们的第一个目标,正如我在第 4 章“调用开销”一节中所解释的那样,现代的编译器已经非常擅长优化代码了,每当你想优化某些代码时,想想 YAGNI 原则。

只有在不满足利益相关方明确要求的情况下才能采取行动。但是,你应该仔细分析影响性能的地方,不要仅凭直觉进行优化。例如,你可以使用 Profiler 找出软件的瓶颈所在。使用这样的工具后,开发人员常常会惊讶于影响性能的点与最初假设的位置相差甚远。

**** Profiler 是一种动态程序分析工具。除其他常用指标外,它还测量函数调用的频率和持续时间,它收集的分析信息还可用于程序优化。

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

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

评论

发布