第二书店&China-pub战略联盟提供专业服务

C++ Gotchas(影印版) (2008 年度畅销榜NO.4433 )

会员评价: (共 1 条) 参与评论
原书名: C++ Gotchas
原出版社:
作者: Stephen C.Dewhurst 著
出版社: 中国电力出版社
书号: 7508314948 出版日期:2003-6-1 开本: 787*1092 1/16 页码: 325 版次: 2003年6月北京第一版第一次印刷 点击: 4898
所属类别: 软件工程/软件技术软件过程
市场价: ¥45.00     会员价:¥33.75
本书是专业编程人员的指南,它将指导你如何避免和纠正99个最常见的C++设计和编程错误,这些错误往往是极具破坏性的,也是人们十分感兴趣的。同时,本书还将向你展示更为微妙的C++特性和更为巧妙的C++编程技巧。本书主要内容包括:如何避免与C++相关的常见的及复杂的陷阱、如何创建更具重用性和可维护性的代码、高级C++编程技巧、C++语言的细微差别。 \r\n

用户评论

kingofark 说:
书评:C++ Gotchas
Marc Briand 评荐

书 名:C++ Gotchas: Avoiding Common Problems in Coding and Design

作 者:Stephen C. Dewhurst
出版社:Addison Wesley Professional, 2003
页 数:324, softbound
价 格:$44.99
评 价:Amazon四星

译注:Gotcha是I’ve got you的省略语,为“难倒你了”、“问倒你了”的意思。

C++长久演化与发展以来,这样一本gotchas书籍的迟迟出版显得有点怪怪的。C++作为一个现实可用的语言,已经有至少十五年的历史了;而C++标准在过去的五年中也几乎没有改变。就此你可能会认为,语言中的缺陷现在应该已经成为众人皆知的“常识(common knowledge)[注1]”了。然而,即使经验丰富的C++程序员也会时不时遇到麻烦;Steve Dewhurst——这位从业多年的C++课程教师、作者以及顾问——则比任何人都清楚这一点。Dewhurst看上去似乎更多的是在责备程序员的求次而安,而非C++的复杂性。在本书中,对C++基础议题的忽视及不良的风格被列为程序设计中的两大原罪。经验本身无法避免这样一些人为的失误;有时候我们确是需要一些刺耳忠言。据此,C++ Gotchas不仅仅是一本关于C++疑难杂症的目类书籍,也是现世警言,提醒我们去关注那些可能被我们忽视的问题。

惯用法便是上述问题之一。在口语中,所谓惯用法是指被经常使用的单语(比如“gotcha”),其能迅捷的表达一个明晰的含义。而惯用法的含义之所以明晰,则仅仅是因为该单语被广泛使用,而非其中的各单字的含义使然。在一门编程语言中,一个惯用法是指一个表达式或技巧,其能够明晰的表达程序员的意图。同样,编程语言中惯用法表意明晰之性质源自其被广泛使用的程度。一个没能学到口语惯用法的人会处于非常不便的境地;而一个不使用编程惯用法的程序员则会导致其他所有程序员——特别是其代码维护者——的工作更难做。在Dewhurst的书中,恰当的运用惯用法被视为良好的编程风格,而良好的编程风格可以最大程度的减少gotchas出现。

当然,如果我们所需的全部只是一次关于风格问题的霹雳讨论,这本书就会薄得多。但我们需要的是关于gotchas的特定信息,无论其最初的起因为何。Dewhurst将这些细节布列于九个章节之中:Basics(基础议题),Syntax(语法),The Preprocessor(预编译器),Conversions(转型),Initialization(初始化),Memory and Resource Management(内存与资源管理),Polymorphism(多态),Class Design(类别设计),以及Hierarchy Design(阶层体系设计)。这些gotchas的来源,从简单的粗心大意(比如错误的使用delete而非delete[]来对数组进行去配),到纯然的忽视(将一个conversion operator当成一种”cast”),直至蛮杂含混(比如在理由不充分的情况下混用虚函数的重载和覆写)。另外,郁抑而情绪化的开发过程现在也被看作是一个gotcha了;请看看书中的gotcha #12。即便你是一个编码奇才,义愤填膺的冲出办公室也不再是情有可原的“冲动”行为。

书中阐述的大部分gotchas都没什么可辩异的。而对于个别有异议的部分,是由于引出gotchas的选题本身就明显不妥吗?至少,站在后见之明的立场上,回答是肯定的。Dewhurst确实提供了具有说服力——虽然偶尔显得有些做作——的示例,使隐藏的错误浮出水面。然而,本书有少数条款并不精辟。其中之一就是const关键字在声明中首选的摆放位置的问题:

const int *thisway; // 指向constant integer的指针
int const *thatway; // 与上一句相同

Dewhurst更提倡第一种形式,因为那正是C++程序员习惯阅读的写法。其在久远的C语言年代就成为了一个惯用形式。然而,第二种声明形式也有显要的道理可言,而且其在C++社区里得到了推崇。第二种形式让我们可以总是遵循一个简单的规则:“const总是限定其左边紧挨着的那个字元。”于是,推荐其中一种作法作为一个条款或许就显得可笑而毫无意义,但也体现了Dewhurst对习惯用法至高的重视。相对于蹊跷语法而言更熟悉习惯用法的程序员(这也许包括了大多数程序员)容易将第二种形式的理解为对一个constant pointer的声明,但实际上却非如此。Dewhurst并不是语言方面的十字军战士和革命者,他只是希望负责维护其代码的人能够把事情作对。

纵而观之

本书中经常闪现“maintenance(维护)”这个字眼,其原因不难究出。现代计算领域中的一大讽事就是,硬件通常几年就更新换代一次,而许多软件却要维持数十载。软件经常比制造者所预见的寿命要长,恰有几年前的Y2K恐慌为证。Dewhurst在书中频繁的提醒读者,要考虑自己的代码如何被维护。他的建议可以被划归为两个设计指导方针:

1. 假设至少有另一个人会一直维护你的代码;
2. 不要假设这个人是群体中最聪慧的一个。

我们现在写出的古玲精怪的代码,在将来就会变成bugs。如果近年来你并没有成为诸多C++ gotchas的受害者,你也许不会感到有阅读本书的必要。但你或许想错了。C++ Gotchas就象是一种来自未来的反馈机制。它向你
发布于2004-10-10 15:08:40
(2)回应 有2人认为此评论有用, 有0人认为没用, 您认为呢?
>>发表评论      >>查看更多评论  

商品意见

>>我要提问  
同类热销商品
您的浏览历史
第二书店联系方式 010-64348411 webmaster@dearbook.com
购买向导 如何付款 如何配送 订单信息 售后服务
购买流程 货到付款 送货方式、时间及费用 订单状态处理 退换货原则
搜索商品 邮局汇款 如何修改订单 退换货方法
银行电汇 查询订单方法 相关问题说明
网上支付
其他支付方式
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved .