我在我的博客上post我的写书计划后,得到很多人的支持与善意的批评指正。这给了我压力和动力。因为前段时间工作很忙,一直没有较为整体的时间来思考。但一些积累和沉淀还是有的。赶紧把这些想法说出来,否则沉淀后就到底了。
最初我的设想,还是希望自己按照thinking in java那种方式,从各个方面来讲述C#,同时结合OOP思想来深入。然而采用这种方式对于我而言,有如下弊端:
1、文章体例组织必须严谨;
2、覆盖面广、且基本功要求扎实;
3、对语言的每一个方面都要求非常深入;
4、太多这样的书;
我自认为达不到大牛们的高度。如果写这样的书,很难有高的质量。最后,工作是重复的,且不容易讨好。
none的评论提醒了我,他说:“写书和写博客不一样。”我承认他这句话很有道理,但从另外一个角度启发了我。为什么我不能象写博客那样写书呢?莫非写书就一定要一板一眼,象学术论文那样体例严谨、描述老到?
博客贵在自由写意,我也希望我的书能够“松散耦合”!唯一不同的是,我需得把握“认真”二字的含量。博客上的言论,只要不违法,是可以不承担责任的。而书则不同,写作者应该抱着虔诚的态度对待读者。虽然,不能提高到“灵魂工程师”的高度,但至少不要浪费读者的银子。
不过,暂且打住,我现在并没有要出版的考虑。书还没有写出来,考虑这些未免太早了。最重要的是,尽快写出样章,然后放到网上曝光,把所有问题都晒出来。被骂没关系,只要闻过改之就行!
因此,我决定把书的组织方式修改一下。整本书,我希望是由每篇独立的文章组成,每篇文章有自己的主题。不拘泥于语法点的详细介绍,而在于大局观的把握。“形散而神不散”,文章虽然独立,但彼此又保持一种若有若无的联系。仿佛一串用鱼丝串起来的珍珠链子,如果我的文章真能算得上是珍珠的话。不细看,透明而纤细的鱼丝是不容易看出来的。书的宗旨不变,目的还是将C#和OOP结合起来,但C#只是承载理念的一个载体而已。如果你想通过本书学习C#的基本语法,恐怕你就会失望了。学习这些内容,何必需要书呢?直接查看MSDN的联机文档,恐怕都比坊间的所谓“入门到精通”清楚百倍。
以下是我的一些初步设想,还不够准确和完善,但基本能表达出我的一些设想,有什么意见,尽快提!
一、开篇
说明:面向对象总论,介绍面向对象设计的方法、原则和基本要素。
1、如何定义你的对象(讲述面向对象的概念,以及介绍如何描述及定义对象)
2、设计之道(介绍面向对象的设计原则)
二、明义篇
说明:介绍C#的语言特色,包括类、方法、属性、接口等;同时介绍.Net Framework提供的其他机制。
1、七种武器:结构与枚举、类、接口、委托与事件、集合、特性、反射(这几种在程序设计时,是非常重要的。中间四种,我们在设计模式中会经常运用到。而特性和反射的结合,使系统能通过配置文件来实现定制。)
2、异常处理、内存管理、多线程(前两种是程序设计时,必须考虑的。多线程则可以解决并发的问题)
三、应用篇
说明:对前面介绍的知识,结合实际的例子,通过代码进行分析,综合应用。
1、继承还是组合?(继承与组合各有千秋,应该怎么用,我们应该确定什么原则)
2、多态与抽象(多态是OOP中一个重要的特点。而面向抽象编程,更是OOP的精髓)
3、让僵冷的翅膀飞起来(更多的例子,并结合设计模式,讲解OOP设计)
4、…
四、工程篇
说明:这里说的工程,不是所谓特定的工程项目。而是指代在开发过程中,引用软件工程中一些原则和环节,深入探讨OOP。
1、单元测试与NUnit
2、重构与设计模式
3、分层的设计理念
4、…
还有,书名还没想好,最好能取个酷一点的。拜托大家帮我想想,呵呵:)