Skip to Content
C++程序设计:原理与实践(基础篇)(原书第2版)
book

C++程序设计:原理与实践(基础篇)(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
Pearson
Content preview from C++程序设计:原理与实践(基础篇)(原书第2版)

4.2 目标和工具

程序员的任务就是将计算表达出来,并且做到:

·正确;

·简单;

·高效。

请注意上述顺序。一个输出错误结果的快速程序是没有任何意义的。同样,一个正确、高效但是非常复杂的程序,最终的结果往往是被放弃或者重写。注意,为了适应不同的需求和硬件环境,有用的程序总会被无数次改写。因此,一个程序,或者它的任一子程序,应该以尽可能简单的方式来实现。举个例子,假设你为学校的孩子写了一个非常棒的算术教学程序,但是这个程序的内部组织非常糟糕。这个程序必须与孩子们交互。那它应该用什么语言呢?英语?又或是西班牙语?如果程序要在芬兰或科威特用,那又该怎么办呢?无疑,为了能适应不同地区的需要,程序使用的交互语言必须能够被修改。如果程序的结构非常混乱,那么原本逻辑上很简单的修改操作会变成一项艰巨的任务。

在我们开始编写代码的时候,就要特别关注正确、简单和高效这三个基本原则,这也是专业程序员的最重要职责。在实际工作中,遵循这些原则意味着代码仅仅能用是不够的,我们必须认真考虑代码的结构。一个看似矛盾的事实是,关注代码结构和“代码质量”是程序取得成功的最快途径。这一点很好理解:编程时对编码结构和质量所付出的努力,可以大大简化最令人沮丧的编程工作——调试。这是因为好的程序结构不但可以减少错误的发生,而且还能缩短发现并改正错误的时间。

程序的组织体现了程序员的编程思路,目前的手段主要是把一个大的计算任务划分为许多小任务。这一技术主要包括两类方法:

·抽象:即不需要了解的程序具体实现细节被隐藏在相应的接口之后。例如,为了实现电话本的排序,我们不需要了解排序算法的细节(已经有很多书讨论如何排序了),我们要做的只是调用C++标准库中的sort算法就可以了。关于排序,我们只需知道如何调用此算法,因此我们可以编写sort(b),其中b表示电话本;sort()是标准库中sort算法(16.8节,附录C5.4)的一个变种(16.9节),定义在std_library.h。另一个例子是内存的使用,直接使用内存空间是一个糟糕的想法。通常,我们通过变量(3.2节)、标准库vector(4.6节,12~14章)和map(16章)等来访问内存。 ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉

Publisher Resources

ISBN: 9787111562252