pongba 2004年11月14日
Here It Comes! —— 向大家介绍一本着眼于C++缺陷的著作!
为person出版社关闭影印版通道默哀N分钟...
最近的一批C++著作:《Exceptional C++ Style》《C++ Coding Standard》《Imperfect C++》《C++ Templates Metaprogramming》不知道什么时候才能捧到手里了,呜呜:'(

下面就是其中的一本:
《Imperfect C++ : Practical Solutions for Real-Life Programming》

从书的简介和样章(我会抽空在近期翻译出来给大家)来看,这本书的立足点很特别,并且涉及了到了相当一部分以前的C++著作没有涉及的问题,大家可以看看第二部分的目录:Surviving the Real World,其中对C++的一个软肋——二进制兼容性进行了阐述,看标题ABI,Object Across Borders,Dynamic Librarys就让人心动啊:)作者除了介绍这些imperfection之外,重点还是讲解决之道,且看在C++中如何解决这个数年来的大问题,hehe...
另外,从标题来看,还有一些篇幅也相当有意思,比如:Part 4 - Cognisant Conversions和Part 5 - Extending C++。
总之,这是本和以前的C++著作都有所不同的书,还是很期待的:)

其开放样章Functors&Range写的还是比较精彩的,作者的细心让人惊叹,毕竟是和C++相处十年有余的大牛。关于Range,看起来一个简单的概念和语义,但是深究下去,其影响和能力让人惊讶:)
http://www.torjo.com/rangelib/index.html
另外,boost-1.32.0的draft版已经包含了这个lib,我粗用了一下,非常不错^_^

Wilson算是个多产的作家:
http://www.artima.com/cppsource/index.jsp
这是一个C++的电子杂志,有不少他的文章。
另外CUJ上也有不少:)



《Imperfect C++ : Practical Solutions for Real-Life Programming》
http://synesis.com.au/publishing/imperfect/cpp/

打算在近期把开放的样章(34章)译出来(22页),写的还是不错的,考虑了我们平常根本考虑不到的一些问题^_^


C++虽然是一门不可思议的语言,但并非完美。Matthew Wilson使用C++十年有余,在这期间,他发现C++中存在一些固有的限制,需要一些颇具技术性的工作来弥补。这本书不仅告诉你C++的缺陷所在,还提供了实际的技术和工具,从而你可以写出更健壮,灵活,高效,更具可维护性的代码。Wilson将向你展示如何去“驯服”C++的复杂性,“穿越”C++庞大的“范式(paradigms)”阵列,最终取回你对代码的控制权——并获得更好的结果。
如果你使用C++做开发已经很长时间,那么这本书会引导你以全新的眼光来看待你遇到的编程挑战——并且向你展示你可能从未尝试过的强大技术。若是C++新手,你则会学到一些原则,这些原则会使你在任何项目里面的工作都更有效率。在阅读这本书的过程中,你将学会如何:

• 克服C++类型系统的缺陷
• 通过约束(constraints),契约(contracts)以及断言(assertions)来强制(enforce)软件的设计。
• 处理被C++标准所忽略的行为——包括与动态库,静态对象,以及线程相关的议题。
• 在动态加载的组件之间达成二进制兼容。
• 理解隐式转换的代价和缺点——及其替代方案。
• 提升在不同的编译器,库,以及操作环境下的兼容性。
• 帮助你的编译器侦测出更多的错误以及更高效的工作。
• 理解代码风格(的某些方面)对可靠性的影响。
• 将“资源获取即初始化”(RAII)技术运用到各种各样的问题领域中去。
• 应对数组和指针之间(有些时候)近乎神秘的关系。
• 使用模板编程以提高灵活性和健壮性。
• 扩展C++: 快速的string拼接,真正的NULL指针,灵活的缓存区(memory buffers),属性(properties),多维数组,以及Range(区间)。

目录

Part 1 - Class Types
Chapter 1 - Enforcing Design: Constraints, Contracts and Assertions
Chapter 2 - Object Lifetime
Chapter 3 - Resource Encapsulation
Chapter 4 - Data Encapsulation And Value Types
Chapter 5 - Object Access Models
Chapter 6 - Scoping Classes

Part 2 - Surviving The Real World
Chapter 7 - ABI
Chapter 8 - Object Across Borders
Chapter 9 - Dynamic Libraries
Chapter 10 - Threading
Chapter 11 - Statics
Chapter 12 - Optimisation

Part 3 - Language Concerns
Chapter 13 - Types
Chapter 14 - Arrays And Pointers
Chapter 15 - Values
Chapter 16 - Keywords
Chapter 17 - Syntax
Chapter 18 - Typedefs

Part 4 - Cognisant Conversions
Chapter 19 - Casts
Chapter 20 - Shims
Chapter 21 - Veneers
Chapter 22 - Bolt-ins
Chapter 23 - Template Constructors

Part 5 - Operators
Chapter 24 - operator bool()
Chapter 25 - Fast, Non-intrusive String Concatenation
Chapter 26 - What's Your Address?
Chapter 27 - Subscript Operators
Chapter 28 - Increment Operators
Chapter 29 - Arithmetic Types
Chapter 30 - Short-circuit!

Part 6 - Extending C++
Chapter 31 - Return Value Lifetime
Chapter 32 - Memory
Chapter 33 - Multidimensional Arrays
Chapter 34 - Functors & Ranges (样章)
Chapter 35 - Properties

Appendixes
Appendix A - Compilers & Libraries
Appendix B - Watch that hubris!
Appendix C - Arturius
Appendix D - The CD
...全文
65 点赞 收藏 1
写回复
1 条回复

还没有回复,快来抢沙发~

发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告