C++ 代码整洁之道:C++17 可持续软件开发模式实践 (1):简介 1

阅读数:10 2019 年 12 月 4 日 17:18

C++代码整洁之道:C++17可持续软件开发模式实践(1):简介 1

(简介)

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

如何去做和做到同样重要。
——Eduardo Namur

目前大部分软件项目的开发形势依然很严峻,甚至有些项目处于严重的危机之中。其原因是多种多样的,有的项目是由项目管理的糟糕导致的,有的项目则是由于开发过程中需求的不断变化,而开发方式不能适应导致的。

在某些项目中,导致这一结果的只是单纯的技术原因,即代码质量不高。但这并不意味着代码的功能没有实现,相反代码的外部质量看似很高,能够通过质量保证部门的黑盒测试、用户测试以及验收测试。代码能够完美地通过 QA,并且在测试报告上找不到任何错误。软件用户对软件也很满意,甚至软件能够按时交付并且不超出预算(当然,这种情况极少)。一切看起来很美好,但事实真的如此吗?

真相是这份能够正常工作的代码的内部质量实际上很低。通常代码可读性不高,维护和扩展困难。软件的组成单元,如类、函数非常臃肿,有的甚至会达到上千行的代码量。太复杂的依赖关系导致的结果就是,改变其中某一小部分内容所造成的影响将是难以预估的。软件的架构不具有前瞻性,其结构可能是由开发人员的临时“拍脑袋”决定的,也就是一些开发人员常说的“历史衍生软件”或者“随意的架构”。类、函数、变量、常量命名不规范,含义不明确,并且代码被大量无用的注释包围,有些注释已经过时了,有些注释只描述了显而易见的东西,甚至是完全错误的。不少开发人员害怕修改或扩展软件,因为他们知道自己的软件很脆弱,单元测试覆盖率很低甚至没有单元测试。在这样的项目中,“不要碰已经能够运行的系统”的声音不绝于耳。一个新的特性从开发到部署上线,通常不是几天就能完成的,这需要几周甚至几个月的时间才能完成。

这种糟糕的软件通常被称作“a Big Ball Of Mud”。这个术语由 Brian Foote 和 Joseph W. Yoder 在第四次模式编程语言会议上的一篇论文中第一次提到。Foote 和 Yoder 将其解释为“……结构随意的、笨拙的、草率的、盘根错节的代码杂糅在一起”。这种软件系统维护起来是一个噩梦,不仅代价高昂还会花费大量时间,它通常会拖垮整个开发团队。

上述现象在整个编程领域中都客观存在着,与使用哪种编程语言没有关系,不管使用的是 Java、PHP、C、C#、C++,还是其他任何语言,都有可能产生“a Big Ball Of Mud”。那么,产生这一问题的根源是什么呢?

C++代码整洁之道:C++17可持续软件开发模式实践(1):简介 1

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

评论

发布