《模式——工程化实现及扩展》再版前言

丛书内容

本系列在《设计模式——基于C#的工程化实现及扩展》的基础上充实完成,本系列本次版本面向C#开发者和Java开发提供如下4册图书:

· 模式——工程化实现及扩展(设计模式C# 版)

· 模式——工程化实现及扩展(架构模式C# 版)

· 模式——工程化实现及扩展(设计模式Java版)

· 模式——工程化实现及扩展(架构模式Java版)

 

其中Java版本采用ORACLE JDK 6的编码编码风格编写,面向Java SE & Java EE 5/6平台的专业人员;而C#版采用C# 3/4的编码风格和.NET Framework 3.5/4.0内置的类库编写,面向使用C#的专业人员。

设计模式版本仅介绍GOF 23个设计模式的内容,示例情景也主要面向进程内的类型设计;而架构模式部分则从分布式应用角度介绍部分典型的架构模式、数据访问模式、信息安全模式,尽管类型不同,但均为架构所必须的,所以统一纳入架构模式分册,其示例情景一般也存在跨进程调用,采用的也是分布式组件技术。

丛书定位

不管你拿起的是本系列的Java版本还是C#版本、是设计模式版本还是架构模式版本,它都不是面向入门者的读物

它的内容是面向中高级开发人员安排的,而部分章节后面的“自我检验”环节,则是针对希望进一步挑战模式技术的软件架构师设计的。

内容要点

本系列的重点不是阐述设计模式GOF和架构模式本身,这些内容应该从《Design Patterns : Elements of Reusable Object-Oriented Software》获得。本系列面向的是模式的实践者。它假设你已经熟悉Java或C#语法,能熟练运用Java 5/6和C# 3.0/4.0语法特性,并能充分发掘其中的实践价值,确保工作成果在JVM和CLR&DLR平台上更简洁、明快的实现。本系列还假设你对Java和C#的编译器有所了解,对于Byte Code或MSIL有一定知识,对于一些要点内容可以从Byte Code或MSIL层面对交付成果进行评析。

 

注:在没有其他说明的情况下本系列各册所指《设计模式》指的是《Design Patterns : Elements of Reusable Object-Oriented Software》,即翻译为《设计模式:可复用面向对象软件的基础》的这本书。

 

对于那些已经融入语言或开发平台的模式,比如:GOF中的原型模式、命令模式、策略模式、观察者模式、迭代器模式、访问者模式和架构模式中的MVC模式、管道过滤器

模式等,我们将尽量采用语言自身的机制完成,你可能甚至看不到明显的“模式”痕迹,模式的经典实现仅大体介绍模式意图后简要带过。毕竟,工程中“暴殄天物”不值得提倡。

设计模式和架构模式是对特定前提下重复出现问题的一个普遍解,它是一种思想,使用得当也会对设计、实施提供帮助,从这个角度看它又是实实在在的生产率。从始至终,本系列图书都务求采用最简单、最贴近工程的方式实现每个模式,书中示例的实现方式更多照顾到客户程序,希望客户程序使用时更简便、更方便,同时也会对《设计模式》一书的实现方式进行评析,分析哪些是需要坚持的,哪些是应该放弃的。

示例特点

首先,所有示例代码实现上保持简洁风格,不过考虑到设计模式要解决“变化”问题,所以示例在保持简洁到同时,也适当照顾到“应变”的要求。代码行文时,除非为了突出表示某个抽象接口,否则一行能写完的代码务求不写成多行。这么做主要来自3项非软件领域的启发:孔子的春秋笔法、爱因斯坦的质能方程以及八大山人的墨荷图。

经孔子整理的《春秋》可谓“微言大义”,寥寥数笔就能把我们现在需要长篇大论才表述的内容就铺陈出来,而正是这样的内容却能一直影响我们这个民族2000多年。

在物理领域,爱因斯坦的质能方程已经简单到简无可简的程度,但这个公式在现代物理学中的地位和作用怎么评论也不为过,原因在于“物理上真实的东西一定是逻辑上简单的东西” ,多余的赘述只会令方法和手段更加笨拙。

而八大山人也是秉承这种简洁风格的人中翘楚。我们知道西洋画中需要各种颜色的油彩才能体现出物体的质感和生动性,但八大山人的只用水墨两色就可以活灵活现的展现出画中人物、动物、植物鲜活的生命力,如下图 F1-1中的荷叶无论是脉络、色彩都活灵活现,而荷花寥寥数笔就体现出颜色的对比以及怒放的那种动感。

图 F1-1:八大山人《墨荷图》立轴

 

回想我们的编写代码未尝不该这样。

很多代码(注释不算)写的长篇累牍,但实际上是在重复制造JDK、.NET Framework或者团队其他成员的工作,而且这种冗长的代码还往往容易出错。我相信,只要有人的参与没有错误的IT系统中国没有、全世界也没有、往后说100年也不可能有,而冗长的代码恰恰增加了这种出错的可能

因此,本系列所有示例的编码上都尽量务求简单、直接、高效,不管是Java代码还是C#代码,不管是设计模式部分还是架构模式部分。

 

另外,在每个模式的实现方式上,针对不同的扩展主题本系列将始终沿用这样的优先级编码实现:

· Java和C#语法特性

· 官方Java SE JDK和.NET Framework的框架内容

· 个别情况考虑集成官方资助的开源框架

· 对于其他第三方提供的开源框架,不列入或引入本系列的实现示例

 

注:

本文中“官方”对Java指ORACLE、C#指微软

在没有其他说明的情况下本系列各册所指《.NET设计规范》指的是微软MSDN文档中发布的.NET设计规范《Design Guidelines for Developing Class Libraries》

如何阅读

本系列图书每章都会先对模式的经典介绍做简要评述,说明其主要意图和典型实现示例,然后会结合语言逐步扩充其使用情景,介绍典型的实现技巧。

 

为了便于读者使用,建议你按照如下方法阅读本系列各册图书:

1. 了解经典的面向对象设计原则

2. 熟悉所用编程语言的基础上,投入一定时间阅读“重新研读Java语言”或“重新研读C#语言”两章,了解工程化代码与“玩具代码”的实现差异

3. 然后,再阅读各章对模式经典内容的介绍,了解为什么需要这个模式、它主要解决什么问题、经典的实现是怎样的

4. 再次,阅读每章的扩展部分,熟悉不同示例环境下如何用更工程化的方式实现扩展要求。为了节省篇幅,书中代码只是代码片段节选,建议你直接运行示例代码,这样体会更深。

5. 分析和体会单元测试的结果。

6. 逐步结合你自己的项目修改示例代码,真正将书中的“工程化实现和扩展”融入你的实际工作。

 

为了便于你考察自己对于特定模式的掌握程度,本次再版时在部分章节增加了一个“自我检验”的练习环节,目的是通过一些准案例的介绍,让你灵活应用该章的知识内容,独立思考解决方案。由于解决方案会不断调整和优化,所有的参考答案会发布在我的个人博客,解决方案内容也会根据与大家交流的结果不断优化、动态更新。希望这种方式你能够喜欢。下面是我的个人博客,欢迎你常来看看:

 

CSDN http://blog.csdn.net/firevision/

博客园 http://www.cnblogs.com/callwangxiang/

ITEye http://callwangxiang.iteye.com/

最后,祝你有更好的阅读体验。

贸易电子化,技术全球化
posted @ 2011-05-29 10:58 蜡笔小王 阅读(1226) 评论(20) 编辑 收藏

 回复 引用 查看   
#1楼 2011-05-29 11:28 dbking      
啥时候出啊~~~?
 回复 引用 查看   
#2楼 2011-05-29 11:29 dbking      
前一本我就买了,除了有些地方说的有些绕脖子,内容还是很实在的。
 回复 引用 查看   
#3楼[楼主] 2011-05-29 11:29 蜡笔小王      
@dbking

C# 设计模式这本正在进行第4轮校稿,7.15日前交稿。
估计面市要9月底了。

 回复 引用 查看   
#4楼[楼主] 2011-05-29 11:32 蜡笔小王      
@dbking

是啊。

这次我把那些读起来很绕的内容调整了,语言尽量简练、直接。
而且先让同事们试读,所以校稿时间特别长。
另外,示例也在尽量贴近现在的语言,尽量简单。

有些练习题不知道是否感兴趣,可以看下
http://www.cnblogs.com/callwangxiang/

我自己加了些答案,也请帮忙斧正。


 回复 引用 查看   
#5楼 2011-05-29 11:33 xuefly      
“它都不是面向入门者的读物”,楼主说的不对。这么好的书,初学者也应该去读,花两年读十遍……
师傅说:“动用我们战无不胜的重复的力量,可以击溃一切困难。”

 回复 引用 查看   
#6楼[楼主] 2011-05-29 11:39 蜡笔小王      
@xuefly

:)
我师傅也说过类似的话。

一句是:重复的力量
一句是:聪明人懂得下笨功夫

 回复 引用 查看   
#7楼 2011-05-29 11:42 xuefly      
@蜡笔小王
我就是从你的书上看到的第一句话。
这两句话顶两米书。

 回复 引用 查看   
#8楼[楼主] 2011-05-29 11:51 蜡笔小王      
@xuefly

:)

我会把这句话转给沈老师的,告诉他他10年前说的话还能受到好评。

不过这些练习倒是希望能和大家交流下,
毕竟一个人写的东西思考不够全面
而且白天上班、下班上课,自己写的答案很多都是晚上11点之后调试的,那时候思路不够清晰。

 回复 引用   
#9楼 2011-09-25 22:26 z-ng[未注册用户]
九月底了 还没见动静 啥时候出版啊...
 回复 引用   
#10楼 2011-09-26 22:42 wangxiang
最近是C#和Java两个版本同时提交,出版社方面觉得应该两本一起面试,所以进度耽搁了。

谢谢关注。
:)

 回复 引用   
#11楼 2011-10-24 21:43 xiaoxiong_cgrc[未注册用户]
现在书出版了吗

 回复 引用   
#12楼 2011-10-24 22:07 xiaoxiong_cgrc[未注册用户]
我在西安,想买
模式——工程化实现及扩展(设计模式C# 版)

模式——工程化实现及扩展(架构模式C# 版)

哪里有,可以网购吗?当当网只有老版本。

 回复 引用 查看   
#13楼[楼主] 2011-10-25 07:03 蜡笔小王      
你好,现在还没有出版,出版社还在修订整理中。
不过有新的进展我会随时在博客园发布。

祝好

 回复 引用 查看   
#14楼 2011-12-14 22:04 微软一点都不软      
买了你写的一本书,第一根本看不懂 你写的是什么?不是我笨,还是你写的差。第二 这本书 第二章 直接给我略过,直接跳到第三章了。这不是明白着坑爹吗?郁闷!求解……
 回复 引用 查看   
#15楼[楼主] 2011-12-14 23:33 蜡笔小王      
@微软一点都不软

你好。
第一版行文上确实很生涩。
“第二 这本书 第二章 直接给我略过,直接跳到第三章了”,请问能介绍下这章的主要不足吗? 便于继续改进。

谢谢你的意见。:)

 回复 引用 查看   
#16楼 2011-12-21 14:20 heqichang      
哈哈!等着你的书。现在是否还没出哩?
 回复 引用   
#17楼 2012-01-11 10:05 z-nj[未注册用户]
楼主 大家都在关注你的新书 啥时候出版呢 给通个气啊 呵呵
 回复 引用 查看   
#18楼[楼主] 2012-01-11 10:19 蜡笔小王      
@z-nj

感谢关注。
因为这次新书出版社考虑还是C#和Java版同时发布比较好,所以就延后了,不过我元旦前已经看到封面了——“梅”(Java版)和“兰”(C#版要沿用兰花)。距出版应该比较快了。

另外,为了减少书的售价,这次选择了胶版纸,并尽量把更新的示例代码放在网上供大家下载

还有“自我检验”的内容希望大家也能喜欢。

透露个消息:“松”和“竹”留给还在编写的架构模式分册。




 回复 引用 查看   
#19楼 2012-01-11 17:04 浪雪      
我觉得第一版行文也还可以啊,很有料的一本书。

期待新版。

 回复 引用 查看   
#20楼[楼主] 2012-01-11 18:48 蜡笔小王      
@浪雪

谢谢。
第一版的时候是第一次写书,现在看来最大的问题好像是在写一本给自己读的书,而不是写给大家读的。
写新版之前,听了很多建议和批评,发现思路要调整。

另外,这两年经过一系列Java EE项目的锻炼,发现GOF 23有很多更加精干、简练的实现方式,这些内容也会补充到新书里。

届时也希望对于样章不吝批评。

祝好。

发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 2061893 0dfiCU/fyFk=