很难想象一本写Design
Pattern的书会在Amazon排行榜上雄踞半年之久,但是《Head First Design
Pattern》做到了。我曾经狂搜过这本书的电子版,但是只有一个数码相机照下来的版本,很不爽,后来因为写论文的原因,就去买了一本影印版来看,一发
而不可收拾。真的是好书!
任何一个读过GOF的《Design
Pattern》的人都会因为书中所写的蹩脚的措词和一大堆道理而感到头皮发麻,我也是这样。而后出版的许多Design
Pattern相关的书,要么是扩展了经典的设计模式,要么是对经典的设计模式加以解释和实现。那么,是什么让《Head First Design
Pattern》如此特别?答案是因为它的生动、幽默以及巧妙的写作方式。
生动、幽默以及巧妙的写作方式,这是大家都有所耳闻的,让我们来看看具体情况如何。
生动
记得《Design Pattern》是如何介绍一个设计模式的吗?对,一个名字,一个目的,一个应用场景,一堆描述和解释,一堆UML,一堆优缺点,一个实现,等等等等。头大了吗?让我们来看看《Head First Design Pattern》是如何做的:
1. 介绍一个简单的程序,它的功能和它的结构。
2. 一个需求变更来了,程序员要对源代码做出改变,问题出现了,该怎么改?
3. 变更是很“简单”的,程序员很快改好了,但是紧接着出现了问题,修改引起了其他不正确的行为。
4. 客户在抱怨,老板在骂人。(想想一下许多美国式幽默的出现吧~)
5. 问题再次出现,该怎么改?
6. 作者给出一个解决方案,并问读者:“你觉得如何?”
7. 细心的读者会给出自己的思考:“不错,但是仍然不是最好的办法,它在这里有缺陷。”
8. OK,作者和读者一起改进了解决方案,效果很好。(注意是一起。)
9. 翻过一页纸,读者发现一排巨大的字:“恭喜你!你已经学到的××设计模式!”
怎么样?有没有一种震撼的感觉?原来学习设计模式可以这样!
幽默
只需要举两个小例子。
Preface中讲述这本书是为谁写的Section,作者列举了应该看和不应该看这边书的人。在那一页的页脚有一行手写的注释“note from
marketing : this book is for anyone who has a credit card.”
作者在讲述abstract method时写到“It really sucks to be an abstract method because you don't have a body.”边上是一个人头放在桌子上,没有身体。
巧妙的写作方式
Preface中用了很多的篇幅介绍本书的写作方式和它的好处,比如:图比文字更让人容易理解和记忆,对话式的写作方法更能帮助读者理解内容,等等。作者对这些写作方式的侃侃而谈让我怀疑他们是否都具有心理学和人体生物学的学历--竟然对人的学习能力了解到这个地步!
我不喜欢买书,更不喜欢推荐别人买书,因为书太贵,而且中国出版的书质量又不好。我只是想说,这本书确实很特别,我从没读过一本写成这样的技术书籍--它
就像你的邻居和你聊天一样,却能把设计模式最核心的东西教给你。更神气的是,读的速度会明显比其他书快,但是学到的东西却更多更深刻记忆得更牢固!真希望
所有的书都是这个样子!
分享到:
相关推荐
1. 《Head First Design Patterns》:最好的 GOF23 经典设计模式讲解。 2. 《Patterns of Enterprise Application Architecture--企业应用架构模式》:Martin Fowler 经典。 3. 《Analysis Patterns: Reusable ...
When it first came out in 1996 it had no competitors, and now alternatives abound, in particular the "Head First" series for learning Java published by O'Reilly and Associates. However, this is still...
design_patterns(设计模式)Design Patterns In PythonDesign Patterns Introduction(设计模式介绍)Strategy Pattern(策略模式)实现:design_patterns/strategy.py示例:examples/strategy_example.pyObserver ...
1.1.3 Using the Singleton Pattern in Unity...........................5 1.1.4 Inheritance.................................................6 1.1.5 Where to Now?.............................................
基于springboot大学生就业信息管理系统源码数据库文档.zip
基于java的驾校收支管理可视化平台的开题报告
时间序列 原木 间隔5秒钟 20241120
毕业设计&课设_基于 Vue 的电影在线预订与管理系统:后台 Java(SSM)代码,为毕业设计项目.zip
基于springboot课件通中小学教学课件共享平台源码数据库文档.zip
基于java的网上购物商城的开题报告
Delphi人脸检测与识别Demo1fdef-main.zip
基于java的咖啡在线销售系统的开题报告
基于java的自助医疗服务系统的开题报告.docx
内容概要:本文档全面介绍了Visual Basic(VB)编程语言的基础知识和高级应用。首先概述了VB的基本特性和开发环境,随后详细讲述了VB的数据类型、变量、运算符、控制结构、数组、过程与函数、变量作用域等内容。接着介绍了窗体设计、控件使用、菜单与工具栏的设计,文件操作、数据库访问等关键知识点。最后讨论了VB的学习方法、发展历史及其在桌面应用、Web应用、数据库应用、游戏开发和自动化脚本编写等领域的广泛应用前景。 适合人群:初学者和中级程序员,尤其是希望快速掌握Windows桌面应用开发的人群。 使用场景及目标:①掌握VB的基础语法和开发环境;②学会使用VB创建复杂的用户界面和功能完整的应用程序;③理解数据库操作、文件管理和网络编程等高级主题。 其他说明:Visual Basic是一种简单易学且功能强大的编程语言,尤其适合用于开发Windows桌面应用。文中不仅覆盖了基础知识,还包括了大量的实用案例和技术细节,帮助读者快速提升编程技能。
基于java的疫情期间高校防控系统开题报告.docx
基于springboot+vue社区老年人帮扶系统源码数据库文档.zip
基于java的超市商品管理系统的开题报告.docx
基于SpringBoot房屋买卖平台源码数据库文档.zip
xdu限通院23微处理器系统与应用大作业(两只老虎),适应于汇编语言keil软件,
<项目介绍> - 新闻类网站系统,基于SSM(Spring、Spring MVC、MyBatis)+MySQL开发,高分成品毕业设计,附带往届论文 - 不懂运行,下载完可以私聊问,可远程教学 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------