Coco学编程--《设计模式》,语言无关的好书

原创 2003年09月15日 09:27:00

我:早上好,Coco。

Coco:天啊!居然你还在人世啊……我打你手机不接,电邮不回,我还以为你前一阵子让台风给卷跑了!

我:呵呵,真是不好意思,上个月丢了手机,丢了工作,263邮箱转帐不成功,被锁在那里不能用……所以像人间蒸发了一样,真是对不起。

Coco:可怜啊……不过你把我晾在一边不管,消失这么长时间,我也就不想可怜你了!除了这些,你就没有做什么对人生更有意义的事?

我:有啊有啊,我失业后买了《设计模式》,然后没日没夜的读了一遍,真的是大有收获啊!就是那本由软件工程界的四位专家写成的名著。我推荐你尽快去买一本来读,会对你很有好处。

Coco:这本书有这么好?不过听说书中的代码都是用C++和Smalltalk写成的,C++语言我不熟,Smalltalk可以说一点都不懂,这本书对于我是不是太难了些?

我:虽然很多书评都把这本书列为面向高水平读者的高难读物,但以我的切身体会,它在语言方面的难度并不是很高,也没有任何艰涩难懂的代码。这本书的重点在于介绍了23个设计模式的由来,结构分析,设计方法和适用范围。所以说它主要的作用在于培养读者分析和解决问题的能力,而不在于语言的技巧。你的已经会使用C++进行一些简单的类设计和编写,了解它的基本语法,可以读懂一些较深入的代码。我看这个水平完全可以读这本书了。如果有学Smalltalk出身的朋友,我看达到同样的程度就可以。

Coco:这么一说,我就有信心了。不过,以我这个初学者,读这本书会有很重要的意义吗?毕竟我的时间也很紧张。

我:我认为,这本书应该尽早开始读,因为它对培养程序员的思维方式有很大的帮助,知识可以学习,但思维方式和习惯,一旦养成,就很难再改变。虽然你还读不懂书中的所有内容,但你试着与作者一起思考的时候,自然的就会为之影响,当你理解和怎样像作者一样把问题化繁为简,分而治之,你就离真理更近了一步。这不尽会对你写C++程序有帮助,还会对你编写其它程序,甚至对你思考和处理问题,都会有很大帮助。老实讲,如果我早几年读到这本书,就不会是现在这个水平。:)对我来说,这本书读到的太晚了。

Coco:那如果我读不懂这本书中的代码怎么办?

我:前面说了,这里面没有很艰涩的代码,以你的水平,如果有个别的代码不能理解,可以对照着读一下手边的C++教材,重要的是要学着理解书中代码的设计方式,也是说是,不止要理解它们是“做什么用”,还要理解它们“为什么是这样”。这方面的困惑可能更难解决,一个是和有开发经验的朋友多交流;一个是不要操之过急,要明白作为一个初学者,你有这样的困难是正常的,可以先把它放在一边,在日后写程序的时候慢慢体会。

Coco:如果我以后不用C++写程序了,这本书的内容会不会对我没有用了?

我:绝对不会,关于设计模式的知识和开发语言是没有关系的,更重要的是写程序的人。就像Bjarne Stroustrup 所说过的,一个人如果真正理解了面向对象的思想,他用纯C也能写出面向对象的程序。一个人如果理解了设计模式,那么他在使用任何开发语言和工具时,那可以自如的应用甚至创造新的设计模式。事实上,现在应用设计模式最广泛彻底的,也许不是C++,而是Java。如果你理解了设计模式,肯定会对你理解Java的架构,开发Java程序大有帮助。据我所知,有很多研究设计模式的人,都把Java做为工作平台,相关的资料也有很多。

Coco:但是这类的读物我也读过一些,比如在很多地方都介绍过“工厂模式”,但我一直就读不懂为什么要有工厂模式,工厂模式到底做了什么。

我:出现类似的问题主要有几个方面,一个是你没有足够的开发经验,设计模式是为了解决一些特定的问题出现的,如果你没有遇到过这一类的问题,可能不会明白它们的意义;还有一方面就是单独的文章不足以说明设计模式的设计方法以及对各个模式进行详细的分析。所以我建议你读一读这本整体介绍设计模式的《设计模式》。事实上,它的门槛不高,正文内容只有二百多页,文字也没有什么架子,都很容易懂。轻便好带,你上晚自习的时候可以装在书包里,背英语背累了拿出来读读,挺不错的。

Coco:说得我心动了,明天我就去书店买一本吧。有影印版,我直接买一本影印版。

我:好啊,为了不会买错,我在这里说一下,书名叫《设计模式》,英文名“Design Patterns”,作者是:Erich Gamma, Richard Helm, Ralph Johnso, John Vlissides。机械工业出版社出版。不要笑我多嘴,我就在一家书店里亲眼见过著名的Delphi书藉《Delphi 5 开发人员指南》旁边放了本国人编的《Delphi 5 开发指南》,厚度价钱什么的都差不多,可质量却天差地远……

Coco:那我干脆买英文版好了。

我:说到英文版,这么久不来,我给大家带了份薄礼:《Python文档》的中译本。现在刚刚开始译《Python指南》,本来是想至少译完这一部分后,再把它贴上来,再找个地方把它完整的保存好。但我明天就要出发去外地,可能很久都没机会再忙它,只好把现有的这个开头先传上来。实话实说,这个译本并不算理想。很多地方都不是很细致,也不是精准的对照翻译(这与的我观点有关,我认为翻译重要的是准确表达意思而不是文字)。希望所有发现有错误或争议的朋友及时指出,谢谢大家。

Coco:你又要人间蒸发啊……好吧,那么大家再见。希望我们可以尽快再见!

学习javascript书籍推荐

HTML、CSS 类别书籍,都是大同小异,在当当网、卓越网搜索一下很多推荐。如果感觉学的差不多了,可以关注一下《CSS禅意花园》,这个很有影响力。Javascript 的书籍 推荐看老外写的,国内很多...
  • chenminqiong
  • chenminqiong
  • 2015年06月05日 11:07
  • 868

推荐学MATLAB,PS的好书

下面列出了一些,你自己看看需要什么,可以直接点击连接下载,更多资料可以直接到网站下载 薛定宇《高等应用数学问题的MATLAB求解》http://www.matlabsky.net/thread-...
  • Augusdi
  • Augusdi
  • 2011年12月04日 20:03
  • 2202

关于学习数据库开发的一点建议和忠告

节选自《剑破冰山——oracle开发艺术》一书,书籍销售地址: http://product.china-pub.com/197199 http://product.dangdang.com/pr...
  • baoqiangwang
  • baoqiangwang
  • 2011年03月24日 11:34
  • 12373

学习编程语言最好的方法是什么

每个人都有自己独特的学习模式,我们要做的第一件事,就是发现自己的学习模式。你的方式是什么?...
  • foruok
  • foruok
  • 2016年04月07日 07:24
  • 16415

什么是JVM?java被称作是平台无关的编程语言?

要知道java虚拟机是什么,从虚拟机定义开始:虚拟机是模拟某种计算机体系结构,用来执行某种特定指令集的软件。 虚拟机分成系统虚拟机(VM ware 、Virtual box)和进程虚拟机(adobe...
  • andy_px
  • andy_px
  • 2016年03月02日 11:40
  • 1620

C语言和设计模式(总结篇)

设计模式的书相信很多人都看过。对于设计模式这样一种方法,相信不同的人有不同的理解。我在这里写的博客只是我个人对设计模式的粗浅认识。文中肯定存在很多的不足和不成熟之处,希望朋友们谅解。望大家多多指正,谢...
  • benpaobagzb
  • benpaobagzb
  • 2016年02月26日 11:01
  • 492

推荐学软件的几本好书 :)

学软件一年多了,回头想来 看了厚的 薄的加起来有15本以上了,看的书稍微多一点,才发现,好书与差书之间对人的影响是完全不同的。以下,是我看过的书,以及简单的书评,希望能给大家带来帮助。 1、java编...
  • zshore
  • zshore
  • 2008年05月14日 14:46
  • 545

40岁开始学编程晚吗?

40岁开始学编程,45岁成为编程高手
  • okjwd
  • okjwd
  • 2006年02月25日 18:08
  • 952

leveldb学习开篇

打算研究生在读期间好好学习下leveldb的源码,期望能够从中感悟一下现代软件的开发流程和设计模式,体验一下google编程规范,不得不承认leveldb源码写得很有美感,最后最重要的当然是希望从中进...
  • tmshasha
  • tmshasha
  • 2015年06月16日 22:06
  • 757

从初学者到编程高手,几种必学的编程语言

他编程高手(主要是新闻组)的请教,我认为找到了满意我的答案。抛砖引玉,做个参考吧。 对于初学者,我建议从 python 开始学。因为它在语言设计上很整洁,帮助文件也很全面。而且也是 object-or...
  • shooow
  • shooow
  • 2004年12月20日 08:17
  • 5491
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Coco学编程--《设计模式》,语言无关的好书
举报原因:
原因补充:

(最多只允许输入30个字)