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版)

1.6 程序员的理想境界

我们希望从自己的程序中获得什么?相对于特定程序的特定功能,一般意义上我们想要什么?我们希望保证正确性,以及可视为正确性的一部分的可靠性。如果程序没有按照设想工作,而且我们还依赖它这种工作方式,那么小则是一个严重干扰,大则是一个危险。我们希望程序设计良好,这样它可以很好地满足实际需要;如果它所做的事情与我们无关,或者以某种我们厌烦的方式完成,则说程序正确是没有意义的。我们同样希望可以负担得起;我可能喜欢用劳斯莱斯汽车或行政专机作为日常交通工具,但是除非我是一名亿万富翁,否则我是负担不起的。

这些是软件(工具、系统)得到非程序员赞赏的外在方面。如果我们希望开发出成功的软件,这些方面必须成为程序员的理想,我们必须将它们永远记在心中,特别是在程序开发的早期阶段。另外,我们还必须关注与代码本身相关的理想:我们的代码必须是可维护的,那些没有编写它的人可以理解它的结构并进行修改。一个成功的程序可以“生存”很长时间(经常是几十年),并经过反复修改。例如,它将会移植到新的硬件上,它将会增加新的功能,它将被修改以使用新的I/O设备(屏幕、视频、音频),它将会用新的自然语言进行交互等。只有失败的程序才不会被修改。为了保证可维护性,相对于它的需求,程序必须很简单,而且它的代码必须直接体现要表达的思想。复杂性是简单性和可维护性的敌人,它可以是问题本身内蕴的(在这种情况下我们不得不处理它),但也可能是由于没有清晰地用代码表达思想而造成的。我们必须通过良好的编码风格来尽量避免它——编码风格很重要!

这听起来不太难,但是确实很难。为什么?编程从根本上是简单的:就是告诉机器它应该做什么。但是,为什么编程中要面对很多挑战?计算机根本上也是简单的;它只能做很少几种操作,例如两个数相加、基于两个数的比较来选择要执行的下一条指令。问题是我们并不希望计算机做简单的事情。我们希望“机器”帮助我们做那些难以完成的事,但是计算机是挑剔的、无情的和不会说话的。更进一步,这个世界要比我们所相信的更复杂,因此我们并未真正理解自己需求的实际含义。我们只是希望一个程序能够“做这样一些事情”,但是并不希望被技术细节所困扰。我们通常假设“基本常识”。不幸的是,人们认为很普通的基本常识,在计算机中通常完全不存在(不过在某些特定的、很好理解的情况下,某些精心设计的程序可以模拟它)。 ...

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