编程精粹.Microsoft编写优质无错C程序秘诀

编程精粹.Microsoft编写优质无错C程序秘诀

ID:46396757

大小:1.23 MB

页数:188页

时间:2019-11-23

编程精粹.Microsoft编写优质无错C程序秘诀_第1页
编程精粹.Microsoft编写优质无错C程序秘诀_第2页
编程精粹.Microsoft编写优质无错C程序秘诀_第3页
编程精粹.Microsoft编写优质无错C程序秘诀_第4页
编程精粹.Microsoft编写优质无错C程序秘诀_第5页
资源描述:

《编程精粹.Microsoft编写优质无错C程序秘诀》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、编程精粹───Microsoft编写优质无错C程序秘诀WritingCleanCode───MicrosoftTechniquesforDevelopingBug-freeCProgramsSteveMaguire著姜静波佟金荣译麦中凡校电子工业出版社1引言几年前在一次偶然翻阅DonaldKnuth所著《TEX:TheProgram》一书时,序言中的一段话深深触动了我:我确信TEX的最后一个错误已经在1985年11月27日被发现并排除掉了。但是如果出于目前尚不知道的原因,TEX仍然潜伏有错误,我非常愿意付给第一个发现者$20.48元

2、。(这一金额已是以前的两倍。我打算在本年内再增加一倍。你看我是多么自信!)我对Knuth是否曾经付给某人$20.48甚至$40.96元不感兴趣,这并不重要。重要的是他对他的程序所具有的那种自信。那么据你所知,究竟有多少程序员会严肃地声称他们的程序完全没有错误?又有多少敢把这一声称印刷在书上,并准备为错误的发现者付钱呢?如果程序员确信测试组已经发现了所有的错误,那么他也许敢作这种声明。但这本身就是一个问题。每当代码被打包装送给程序经销商之前,人们在胸前划着十字带着最好的愿望说:“希望测试已经发现了所有的错误”。这一情景我已见过多次了。

3、由于现代的程序员已经放弃了对代码进行彻底测试的职责,他们没法知道代码中是否有错。管理人员也不会公布测试情况,只是说:“别操那个心,测试人员会为你作好测试的”。更为微妙的是,管理人员希望程序员自己进行代码的测试。同时,他们希望测试员作得更彻底些,因为毕竟这是他们的本职工作。正如你在本书中将会看到的那样,编写无错代码的技术或许有几百种,程序员能用,但测试人员却无法使用,因为这些技术和代码的编写直接相关。两个关键的问题本书介绍的所有决窍是当发现错误时,不断地就以下两个问题追问自己的结果:ò怎样才能自动地查出这个错误?ò怎样才能避免这个错误

4、?第一个问题可能使读者认为本书是有关测试的书,其实不是。当编辑程序发现语法错误时,它是在做测试吗?不,不是。编辑程序只是在自动地检查代码中的错误。语法错误只是程序员可以使用的自动查错方法查出的一种最基本的错误类型。本书将详尽介绍自动向程序员提示错误的方法。编写无错代码的最好方法是把防上错误放在第一位。关于这个问题,同样也有许多的技巧。某些技巧与常用的编码惯例有关,但它们不是象“每个人都违背原则”或“没有人违背该原则”这样泛泛地考虑问题,而是对相应的细节进行详细的讨论。要记住,在任何时候跟在大多数人的后面常常是所能选择的最坏一条路。因

5、此在成为别人的追随者之前一定要确定这样做确实有意义,而且不要仅仅因为其它的什么人如此自己也如此。2本书的最后一章讨论编写无错代码应持正确态度的重要性。如果没有正确的态度,发现错误和防止错误就好比在冬季大开着窗户给房间加热,虽然也能达到目的,但要浪费大量的能量。本书除第4章和第8章以外都配有练习。但要注意,这些练习并不是要测验读者对相应内容的理解。实际上更多的是作者想在该章的正文中阐述却没能放进去的要点。其它的练习为的是让读者思考与该章内容有关的一些问题,打开思路,琢磨一下以前未曾考虑过的概念。无论哪种情况,都是想通过练习再补充一些新

6、的技巧和信息,因此值得一读。为使读者了解作者的意图,本书在附录C中提供了所有练习的答案。大部分章节还给出了一些课题,但这些课题没有答案,因为这种课题通常是任务,而不是问题。规则或者建议本书的编排类似于BrianKernighan和P.J.Plauger所写的程序设计经典著作《TheElementsofProgrammingSytle》。该书出于WilliamStrunkJr.和E.B.White所写的重要经典著作《TheElementsofStyle》。这两本书采用同样的基本概念表达方法:ò给出一个例子;ò指出该例子中的某些问题所在

7、;ò用一般的准则改进该例子。确实,这是个程式,而且是使读者感到舒服的程式,因此本书同样采用了这一程式。作者力图使本书读起来是一种享受,尽管它有着公式的性质。希望读者会觉得本书很有趣。本书还给出一些似乎不应违背的“一般准则”。我们的第一条准则是:每条准则都有例外由于准则是用来说明一般情况的,所以本书一般并不指明准则的例外情况,而把它留给读者。我相信,当读者读到某个准则时,肯定会怀疑道:“噢,当……时,不是这样的……”。如果某个人对你说:“不能闯红灯”,虽然这是一条准则,但你肯定能够举出一种特殊情况,在这种情况下闯红灯倒是个正确的行动。

8、这里关键是要记住准则只是在一般情况下才有意义,因此只有理由十分充足时,才可以违背准则。关于本书代码的说明本书的所有代码都是按ANSIC写的,并且通过了MS-DOS、MicrosoftWindows和AppleMacintosh上五个流

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。