《More Effective C :35个改善编程与设计的有效方法(中文版)》主要内容包括:继effective c 之后,scott meyers 于1996 推出这本“续集”。条款变得比较少,页数倒是多了一些,原因是这次选材比“及时集”更高阶,尤其是第5 章。meyers 将此章命名为技术(techniques),并明白告诉你,其中都是一些patterns,例如virtual constructors,smart pointers,reference counting,proxy classes,double dispatching……这一章的每个条款篇幅都达15~30 页之多,实在让人有“山重水复疑无路,柳暗花明又一村”之叹。
虽然出版年代稍嫌久远,但本书并没有第2版,原因是当其出版之时(1996),C Standard已经几乎定案,这本《More Effective C :35个改善编程与设计的有效方法(中文版)》即依当时的标准草案而写,其与现今的C 标准规范几乎相同。而且可能变化的几个弹性之处,Meyers也都有所说明与提示。读者可以登录作者提供的网址,看看上下两集的勘误与讨论(数量之多,令人惊恐。幸好多是技术讨论或文字斟酌,并没有什么重大误失)。
推荐购买:
《C语言程序设计(第4版)》 (介绍了C语言的各种特性)
《C Primer习题集(第5版)》(畅销书极佳学习伴侣 精解全题 多重思路 细致剖析 即学即用)
《ElasticSearch:可扩展的开源弹性搜索解决方案》
国内少有的ES技术书 剖析这一快速、灵活、可扩展的搜索解决方案
《Spark大数据处理技术》
Shark|Spark SQL|Spark Streaming|Graphx|Tachyon深度解密Spark完整生态 博学Committer凝聚实力与超前视野 Spark创始人及实践先驱联合推荐
《Hadoop硬实战》
学习Hadoop和Mapreduce不二之选 85个Hadoop高级技巧实战案例
《从Paxos到Zookeeper:分布式一致性原理与实践》
分布式一致性及ZooKeeper实战著作 来自国内大型、复杂、悠久系统
《寻路大数据:海量数据与大规模分析》
Google大数据专家力作 出众的译者|作序者微博|高德|UCloud三大老总联合作序推荐真正梳理趋势与生态|方案与工具选型|应用场景与价值挖掘的独家内参
作者:(美国)梅耶(Scott Meyers) 译者:侯捷
Scott Meyers,世界C 软件开发技术之一。他是两本畅销书Effective C 和More Effective C 的作者,以前曾经是C Report的专栏作家。他经常为C/C Users Journal和Dr. Dobb's Journal撰稿,也为全球范围内的客户做咨询活动。他也是Advisory Boards for NumeriX LLC和InfoCruiser公司的成员。他拥有Brown University的计算机科学博士学位。
侯捷,集计算机技术读物之著、泽、评于一身,足《多态与虚拟》和《STL源码剖析》的作者,《Run!Pc》杂志、《程序员》杂志的知名专栏作家,也是极其号召力的大学教师与研讨会讲师。他于1989年获得中国台湾清华大学动机系硕士学位。
译序(侯捷)
导读(Introduction)
基础议题(Basics)
条款1:仔细区别 pointers 和 references
Distinguish between pointers and references.
条款2:好使用 C 转型操作符
Prefer C -style casts.
条款3:不要以多态(polymorphically)方式处理数组
Never treat arrays polymorphically.
条款4:非必要不提供 default constructor
Avoid gratuitous default constructors.
操作符(Operators)
条款5:对定制的“类型转换函数”保持警觉
Be wary of user-defined conversion functions.
条款6:区别 increment/decrement 操作符的
前置(prefix)和后置(postfix)形式
Distinguish between prefix and postfix forms of increment
and decrement operators.
条款7:千万不要重载&&,||和, 操作符
Never overload &&, ||, or ,.
条款8:了解各种不同意义的 new 和 delete
Understand the different meanings of new and delete
异常(Exceptions)
条款9:利用 destructors 避免泄漏资源
Use destructors to prevent resource leaks.
条款10:在 constructors 内阻止资源泄漏(resource leak)
Prevent resource leaks in constructors.
条款11:禁止异常(exceptions)流出 destructors 之外
Prevent exceptions from leaving destructors.
条款12:了解“抛出一个 exception”与“传递一个参数”
或“调用一个虚函数”之间的差异61
Understand how throwing an exception differs from
passing a parameter or calling a virtual function.
条款13:以 by reference 方式捕捉 exceptions
Catch exceptions by reference.
条款14:明智运用 exception specifications
Use exception specifications judiciously.
条款15:了解异常处理(exception handling)的成本
Understand the costs of exception handling.
效率(Efficiency)
条款16:谨记 80-20 法则
Remember the 80-20 rule.
条款17:考虑使用 lazy evaluation(缓式评估)
Consider using lazy evaluation.
条款18:分期摊还预期的计算成本
Amortize the cost of expected computations.
条款19:了解临时对象的来源
Understand the origin of temporary objects.
条款20:协助完成“返回值优化(RVO)”
Facilitate the return value optimization.
条款21:利用重载技术(overload)避免隐式类型转换(implict type conversions)
Overload to avoid implicit type conversions.
条款22:考虑以操作符复合形式(op=)取代其独身形式(op)
Consider using op= instead of stand-alone op.
条款23:考虑使用其他程序库
Consider alternative libraries.
条款24:了解 virtual functions、multiple inheritance、virtual base classes、
runtime type identification 的成本
Understand the costs of virtual functions, multiple inheritance,
virtual base classes, and RTTI.
技术(Techniques, Idioms, Patterns)
杂项讨论(Miscellany)
索引(一)(General Index)
索引(二)(Index of Example Classes,Functions,and Templtes)
我们终于抵达了一站。本章内含难以归类的准则。一开始的两个条款讨论C 软件开发过程如何设计出能够容纳日后变化的系统。是的,面向对象方法应用于系统构造的一个强大力量就是,它支持日后的变化。这些条款描述了一些特定步骤,你可以用来强化你的软件工事,抵抗这个拒绝停滞的世界带来的刀戟箭弩。
接下来我将验证如何在同一个程序中结合C和C 。这个需求导致语言上的额外考虑,不过C 毕竟生存于真实世界之中,有时候我们必须面对这样的问题。
,我把“C 标准规格”公开之后的各项语言变化做一番摘要整理。在此特别涵盖标准程序库中翻天覆地的大变化(亦请参考条款E49)。如果你未曾密切跟随标准化的脚步,对于这些变化可能会有很大的惊喜。是的,标准程序库中有许多让人愉悦的东西。条款32:在未来时态下发展程序世事永远在变。身为软件开发人员,我们可能不是知道得很多,但我们确切知道世事永远在变。我们不一定知道改变的是什么,改变如何到来,改变何时发生,或为什么会发生,但我们真的知道:事情会改变。
好的软件对于变化有良好的适应能力。好的软件可以容纳新的性质,可以移植到新的平台,可以适应新的需求,可以掌握新的输入。软件具备如此的弹性、健壮性、可信赖度,并非是天上掉下来的礼物,而是那些“即使面对今天的束缚,仍然对明天可能的需求念兹在兹”的设计者和实现者共同努力的结果。
《Effective c 》(Scott Meyers的及时本书)的荣耀:“对于任何渴望在中阶或高阶层面精通c 的人,我慎重推荐《Effective c 》,”
——(The C/C User's Journal)
和我买的上册方面有点不一样,还比之前的长一点
对想要深入学习面向对象的人来说是本不错的选择
刚看完 好书就是好。内容相当好,就是比上一版的贵。
该书能够给程序员好饿编程规范,并且在程序设计时能够更有效的进行编程,对于高级程序员来说非常值得一看
之前看过effective c++,这本又加了些内容,只是价格贵了
就是书里的结果输出和内容重复性太多。作者有点偷懒和占页数的嫌疑
之前买了EC++55个例子的~然后收获颇深~这本MEC++应该能给我更多的惊喜
先前度过同事的effective c++,觉得很好,所以这本也不能错过,毕竟是一个作者写的,同一个人翻译的。
经典书籍,就是太贵了,很奇怪的是,effective c++有版本号,这本没有版本号!
Scott Meyers,世界顶级的C++软件开发技术权威之一
经典C++书籍,Effective C++的姊妹篇,看大家都评论就知道这本书的价值。非常值得拥有,即使不看,作为收藏也是不错的
经典书籍,没什么说的,就是感觉台湾人译的有一点别扭
Effective系列每本都是经典,必须要买!
无论是内容还是样式都很好,值得一看,但是对初学者来说有点起点高,但是真是值得一看的好书!
看了她的前书 effective c++ 后果断买了这本书,今天看了一半 作者的视角确实很独特
这本还没读,读了以一本55条的那个。。醍醐灌顶。。
哎,书被拆封过,不过还是新的,但是希望 店主能尽量发有没拆封的。还是那个问题,包装问题。不过还是给五分好评吧!
Effective 总感觉是讲语法。而more effective 感觉是让人减少犯错误的机会。值得一读。
先读Effective C++,再看看这本,会有不同的体会。如果有精力可以再看看C++ object model,功力大增。
要配合着effective来看,对前者有引用
《Effective C++》的姊妹篇,深入了《Effective C++》中的一些概念,适合中级C++程序员修炼用。每个C++程序员都应该阅读本书。
看完c++ primer进阶使用的, 需要一点时间去理解
本书是effective的继承篇,主要讲述了基础议题,操作符,效率及技术和杂项讨论等内容,目的是要让程序员更实效地设计并实现C++软件,让程序更健壮,更有效率,更具移植性,将语言特性发挥得更好。