In Depth和In Action的区别——写在《深入理解C#(第二版)》出版之际

本文在《深入理解C#(第二版)》译者序的基础之上进行了一些删改

深入理解C#(第2版)

Manning出版社出版的很多图书,都用XXX in Action这样的方式来命名,如著名的Ajax in Action、专门介绍LINQ的LINQ in Action,以及jQuery in Action、PHP in Action等等。这些书偏重基础,并包含大量的代码示例,即使是初学者,读起来也会十分轻松。我们一般称这种书为入门书,图灵公司在引进的时候,也给它们起了一个恰如其分的中文名:实战。如《Ajax实战》、《LINQ实战》等等。

然而这本书则不同,它的英文名不是C# in Action,而是C# in Depth。这in Depth和in Action有什么区别呢?

很多C#程序员在有了一定基础之后,会出现一个成长的瓶颈。他们觉得似乎了解了C#的基本语法和各种语言特性,但对于这些特性的演变以及它们之间的关联却知之甚少。他们会在代码中使用泛型集合,但是对于类型推断的规则似乎还很模糊;他们经常使用foreach语句,但却无法自如地使用yield;他们知道C# 3中增加了很多非常酷的语法糖,但却不知道这些语法糖实际上都是为了最酷的LINQ准备的;他们为C# 4提供了动态类型而欢欣鼓舞,但却不了解DLR如何实现动态绑定,并且往往会滥用dynamic。这时候,他们需要一本书,一本能对C#的每个特性进行透彻分析的书,一本能指引他们走向正确道路的书。他们不需要一本C# in Action,因为他们已经熟悉了字符串和整型,已经会编写接口、类、方法、属性和字段,甚至能说出引用类型和值类型的区别。他们需要的是一本进阶书,一本深入讲解C#的书。而现在您手上的,正是这样一本书。

这就是in Depth和in Action的区别!

本书没有任何关于.NET平台和CLR的内容,也不会指导你如何创建WPF或ASP.NET应用程序,它将全部注意力都放到C#语言本身,着重解析了C#各个版本的进化和演变。它面向中高级C#程序员,如果您只是初学者,那它并不适合您。正如老赵所说,这本书中肯定有一半以上是你不知道的东西。而且我觉得,书中的每一段代码,都可以作为一道面试题,如果您打算招聘一位高级.NET工程师,不妨参考书中的示例。

在本书英文版刚刚问世时,就得到了业界诸多大牛的肯定和推荐。当图灵的编辑问我是否有兴趣翻译第二版的新增内容时,我恰好刚刚阅读完第一版的中文版,正处于余香绕齿的阶段,于是毫不犹豫地就答应了下来。

第二版新增了三个大的章节(分别介绍了C# 4的新增特性和代码契约),并对迭代器和LINQ等内容进行了修订。说实话,我的工作量并不算多,但从开始翻译到最后交付,总共持续了八个多月(一月份签约,八月份交稿,后续还进行了一些修改),直接导致本书的上市推迟了将近半年,在此要向各位读者致歉。之所以翻译得慢,除了我自身的懈怠以外,本书的英文原文也并不像其他技术书籍那样浅显易懂,其中有很多暗语和弦外之音,如果我由于水平有限而没能参透其中的含义,请各位读者批评指正。

周靖和朱永光两位老师为第一版的翻译付出了艰辛的劳动,在他们打下的良好基础之上进行工作,让我感觉踏实了不少。我还要感谢老赵为本书进行复审,如果没有他的修改意见,您一定会对这本书失望有加。

最后,祝朋友们阅读愉快!希望您在学习编程这条永无止境的道路上,不仅in Action,更要in Depth

posted @ 2011-12-28 12:46  麒麟.NET  阅读(3955)  评论(20编辑  收藏  举报