购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

为什么写这本书

事实上,我在写本书之前就一直在思考一个问题:到底什么样的编程书籍能够帮助入门者快速进阶?所谓“入门者”指的是已经可以使用一门语言编写程序,但是不明白如何编写高质量代码的人。于是我开始回忆自己在开发生涯中的入门阶段,那时候,我常常被以下三类问题所困扰。第一类来自于语言本身,如:

❑如何格式化字符串才是最高效的?

❑基本类型间或其他CLR类型间的转换怎样才算是最高效的?

❑for和foreach有什么区别,何时该用for,何时该用foreach?

❑什么是Dispose模式,为什么要释放资源,如何释放资源?

❑多线程应选择何种方式来开启和结束,各线程之间为什么要同步,如何同步,如何锁定资源?

第二类来自于设计架构,如果你对编码充满热情,相信你的大脑里很快就会充满以下这些问题:

❑使用单例模式还是静态类,为什么有了静态类还需要单例模式?

❑该使用静态方法还是实例方法,它们的本质区别是什么?

❑如何使用异常才是最正确的,什么时候抛出异常,什么时候“吃掉”异常,为什么需要自定义异常?

❑如何避免过多的条件判断分支?

❑如何保证程序的数据安全和通信安全?

第三类问题最常见,可能来自于编码习惯和编程思想,我在入门阶段经常会问自己下面这些问题:

❑一个文件只包含一个类比较好,还是一个文件可以包含多个类?

❑如何命名才是专业级别的?

❑应该使用抽象类还是接口?

❑到底什么才是真正的面向对象编码,我这样编程够面向对象吗?

❑什么是单元测试,如何编写单元测试?

如果你也曾经问过自己类似的问题,说明你已经为成为专业程序员做好了准备;如果你还苦于找不到问题的答案,那么本书正是为你准备的。本书为那些普遍存在于初级开发者脑海中的问题给出了经验性的解决方案。我尽可能多地罗列问题并给出解决方法(同时给出错误的方法和正确的方法,以及好的方法和更好的方法,并进行分析和比较)和建议,并且尽量覆盖.NET 4.0中C#的新特性。我已经用Visual Studio 2010编写并调试和运行(在Release状态下)了书中所有的代码,我期望你也这样做。相信当你调试完书中所有的示例时,你会对.NET和C#有更深入的认识,同时你也会对自己的代码更加有自信:没错,这就是我想要的代码,它规范,并且优雅而稳定。

如何阅读本书

本书适合那些有一定C#基础,并希望在技术上得到大幅提升的程序员。

本书并没有讲述C#中的基础概念,而是将使用C#过程中可能遇到的疑问或障碍一一罗列,并给出了建议。书中的大多数建议实战性很强,要完全理解其中的奥妙,首先应该动手写一写示例程序,或许在调试程序的过程中就会得到启发。

本书的每一个章节都比较独立,下一章的阅读并不需要前面章节作为铺垫。本书更像一本工具书,根据知识点对各个建议进行了分类,方便随时查阅。

资源及勘误

通常情况下,一个问题的解决方案往往不止一种,你可能会不同意本书中的一些观点,甚至会强烈反对。没有关系,你可以通过luminji@hotmail.com(E-mail)与我分享你的宝贵意见,同时也可以在http://www.cnblogs.com/luminji下载书中的源码。我也经常在那里发表博客。当然,你一定也会在书中找到一些错误,我已经在博客上放置了一篇勘误表,我会在第一时间公布这些勘误。

致谢

最后,我想说的是,写作是一项耗时的工程,它不但压缩了我的工作时间,也完全耗掉了我的午休时间。首先要感谢我的同事,因为我时常因为思考本书的内容而工作不在状态,或者总在饭桌上讨论书中的一些技术细节。他们不但没有抱怨,反而提出了很多好的意见,他们是:胡昌俊、于文广、肖昌、樊鑫、王文壮、来伟、粟志辉、赵中海、王领军,还有其他很多朋友不再一一列出。他们是如此优秀和宽容,能和他们一起工作是我莫大的荣幸。

在漫长的写作过程中,难免让我情绪波动,是机械工业出版社华章公司的杨福川先生和杨绣国女士给我一如既往的支持与鼓励。当我想要偷懒的时候,是你们的敦促让我对写作时刻保持着热情。同时还要强调一下,没有福川,本书不会出版。另外,没有白宇女士的编辑工作,本书的文字看上去不会像现在这样流畅。

还要感谢我的家人,尤其是我的父母和妻子胡忠华。在过去这段时间里,我总是一回到家就打开电脑。陪妻子散步的时间没有了,聊天少了,家务活儿也很少做了。妻子的宽容让我有了更多的时间去写作。难得的是,中文系毕业的你在写作方面给我提出了很多好的建议。你的第一标准是:“如果我都看不懂,你还写什么书。”没有你的支持,本书不会诞生。

陆敏技
2011年7月 dVEjTnDzgtlFYnNq+yDB0Cj3NbUQIgvZPi9U3XsE4tFDZ9zhdE3xxSWkfx7+6HLW

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开