厦门建行网站,wordpress 评分,做网站的是什么职位,西安企业排名终于可以写前言了#xff0c;这说明本书已经基本完成#xff0c;可以长嘘一口气了。 为什么写这本书 为什么写这本书#xff1f;今年5月份#xff0c;我在JavaEye上发了一个帖子#xff0c;其中提到自己已经工作9年了#xff0c;总觉得这9年不应该就这么荒废了#xff0… 终于可以写前言了这说明本书已经基本完成可以长嘘一口气了。 为什么写这本书 为什么写这本书今年5月份我在JavaEye上发了一个帖子其中提到自己已经工作9年了总觉得这9年不应该就这么荒废了应该给自己这9年的工作写一个总结总结的初稿就是这本书。 在谈为什么写这本书之前先抖抖自己这9年职业生涯吧。大学时我是学习机械的当时计算机刚刚热起来自己也喜欢玩一些新奇的东西记得最清楚的是用VB写了一个自由落体的小程序模拟小球从桌面掉到地板上然后计算反弹趋势很有成就感。于是2000年毕业时我削尖了脑袋进入了IT行业成为了一名真正的IT男干着起得比鸡早、睡得比鸡晚这个鸡怎么理解随你了的程序员工作操着卖白粉的心拿着卖白菜的钱。IT男的辛酸有谁知晓 坦白地来说我的性格比较沉闷属于典型的程序员型闷骚比较适合做技术研究。在这9年里项目管理做过系统分析做过小兵当过团队领导人也当过但至今我还是一个做技术的。要总结这9年技术生涯总得写点什么吧最好是还能对其他人有点儿用的。那写什么好呢Spring、Struts等工具框架类的书太多太多很难再写出花样来经过一番思考最后选择了一个每一位技术人员都需要掌握的、但普及程度还不是非常高的、又稍微有点难度的主题——设计模式(Design Pattern简称DP)。 中国人有不破不立的思维远的如秦始皇焚书坑儒、项羽火烧阿房宫,近的如破“四旧”为什么要破才能立呢为什么不能持续地发展呢正是由于有了这样的思想于是乎能改的就改不能改的就推翻重写没有一个持续开发蓝图你说这是谁的错呢是你架构师的错你不能持续地拥抱变化这是一个系统最失败的地方。那怎么才能实现拥抱变化的理想呢设计模式 设计模式是什么它是一套理论由软件界的先辈们具体的说就是“四人帮”The Gang of Four,包括Erich Gamma、Richard Helm、Ralph Johnson、John Vlissides总结出的一套可以反复使用的经验它可以提高代码的可重用性增强系统的可维护性以及解决一系列的复杂问题。做软件的都知道需求是最难把握的我们可以分析现有的需求预测可能发生的变更但是我们不能控制需求的变更。问题来了既然需求的变更是不可控的那如何拥抱变化呢幸运的是设计模式给了我们指导专家们首先提出了6大设计原则但这6大设计原则仅仅是一系列“口号”真正付诸实施还需要有详尽的指导方法于是23个设计模式出现了。 设计模式已经诞生15年了在这15年里出版了很多关于它的经典著作相信大家都能如数家珍。但是有这么多的书顶个屁用工作5年了还不知道什么是策略模式、状态模式、责任链模式的程序员大有人在。不信你找个机会去“虚心”地请教一下你的同事看看他对设计模式有多少了解。不要告诉我要翻书才明白设计模式不是工具它是软件开发的哲学它能指导你如何去设计一个优秀的架构、编写一段健壮的代码、解决一个复杂的需求。 因为它是软件行业的经验总结因此它具有更广泛的适应性不管你使用什么编程语言不管你遇到什么业务类型设计模式都可以自由地“侵入”。 因为它不是工具所以它没有一个可以具体测量的标尺完全以你自己的理解为准你认为自己多了解它你就有可能产生多少的优秀代码和设计。 因为它是指导思想 你可以在此基础上自由发挥甚至是自己设计出一套设计模式。当然可以了! 世界上最难的有两件事一是让人心甘情愿地把钱掏出来给你二是把自己的思想灌输到别人的脑子里。设计模式就属于第二种它不是一种具体的技术不像Struts、Spring、Hibernate等框架。一个工具用久了可以熟能生巧就像砌墙的工人一样长年累月地砌墙他也知道如何把墙砌整齐如何多快好省地干活这是一个人的本能。我们把Struts用得很溜把Spring用得很顺手这非常好但这只是一个合格的程序员应该具备的基本能力于是我们被冠以代码工人Code Worker——软件行业的体力劳动者。 如果你通晓了这23种设计模式就不同了你可以站在一个更高的层次去赏析程序代码、软件设计、架构完成从代码工人到架构师的蜕变感觉有点像电视购物极尽夸张和诱惑之能事不过设计模式和电视购物不同它对你只有好处没有坏处。注意我说的是“通晓”别告诉我你把23个设计模式的含义、适应性、优缺点都搞清楚了就是通晓。错了没有工作经验的积累是不可能真正理解设计模式的这就像大家小时候一直不明白为什么爸爸妈妈要工作而不能每天陪自己玩一样。 据说有的大学已经开了设计模式这门课如果仅仅是几堂课让学生对设计模式有一个初步的了解我觉得并无不妥但如果是专门的一门课程我建议取消它因为对一个尚无项目开发经验的学生来说理解设计模式不是一般困难而是非常非常困难之前没有任何的实战经验之后也没有可以立即付诸实践的场景这样能理解设计模式吗 在编写本书之前23个设计模式我都用过而且还算比较熟练但是当真正要写到书中时感觉心里没普儿了。这个定义是这样的吗是需要用抽象类还是该用接口为什么在这里不能抽取抽象呢为什么在实际项目中这个模式要如此蜕化这类小问题有时候很纠结需要花费大量的精力和时间去分析和确认。所以在写作的过程中我有过很多忧虑担心书中会有太多瑕疵这种忧虑现在仍然存在。遇到挫折的时候也气馁过但是我坚信一句话“开弓没有回头箭回头既是空”既然已经开始就一定要圆满完成。于是在2009年即将过去的今天终于完成了本书。 本书的特色 简单、通俗、易懂但又不肤浅这是本书的最大特色。自己看过的技术书还算比较多很痛恨那种大块头的巨著搁家里当枕头都觉得太硬。如果要是再晦涩难懂点那根本没法看看起来实在是太累。设计模式本本就是理论性的知识讲解的难度比较大但我相信这本书能够把你对设计模式的恐惧一扫而光。不信挑几页看看先 我的理念是像看小说一样阅读本书。我尽量用浅显通俗的语言讲解尽量让你有继续看下去的欲望尽量努力让你有兴趣进入设计模式的世界兴趣是第一老师嘛虽然我尽量让这本书浅显、通俗、易懂但并不代表我的讲解就很肤浅。每个设计模式讲解完毕之后我都附加了两个非常精华的部分设计模式扩展和最佳实践这是俺压箱底的技能了为了博君一看没招了抖出来吧尤为值得一提的是本书还有设计模式PK和混编设计模式两大部分内容教你如何自如地去运用这些设计模式这是当前所有设计模式类的图书都不具备的连“四人帮”的那本书也不例外。 我很讨厌技术文章中夹杂着的那些晦涩难懂的文字特别是一堆又一堆的名词堆砌让人看着就反胃。但是为了学习技术为了生存还是必须看下去。国内的技术文档基本上都是板着一副冷面孔讲技术为什么要把技术弄得这么生硬呢技术也有它幽默、柔情的一面只是被我们的“孔夫子们”掩盖了能用萝卜、白菜这种寻常人都熟悉的知识来讲解原子弹理论的人那是牛人我佩服这样的人。记住用一堆名词把你忽悠晕的人很可能什么都不懂 本书想告诉你的是技术也可以很有乐趣也可以让你不用皱着眉头思考等待你的只是静静地看慢慢的思考本书的内容会润物细无声地溶入你的思维中。 本书面向的读者 热爱技术并且讨厌枯燥乏味技术文章的读者都可以看本书 你是程序员没问题本书能够让你写出更加高效、优雅的代码 你是架构师那更好设计模式可让你设计出健壮、稳定、高效的系统并且自动地预防未来业务变化可能对系统带来的影响 你是项目经理也OK设计模式可以让你的工期大大缩短让你的项目团队成员快速地理解你的意图最终的成果就是优质的项目高可靠性高稳定性高效率和低维护成本。 如何阅读本书 首先声明本书中所有的例子都是用Java语言来实现的但是你可以随手翻翻看基本上能保证每三条语句一个注释可以说是在用咱们的母语讲解设计模式。即使你不懂Java语言也没有关系只要知道在Java中双斜杠(//)代表注释就足够了况且Java如此强大和盛行多了解一点没有坏处。类图看不懂没关系不影响你理解设计模式多看看就懂了 如果你还没有编程经验我建议你把它当作小说来看懂行的看门道不懂行的看热闹这里的热闹足够多够你看一壶的了。你现在能看懂多少是多少不懂没有关系你要知道经验不是像长青春痘一样说长就长出来了它是需要时间积累的需要你用心去感受然后才能明白为什么要如此设计。 如果你已经对编程有感觉了至少2年开发经验我相信你都能看懂但能“懂”到什么程度就很难说了看你的水平了。但是我可以保证这里的设计模式都是你能看懂的没有你看不懂的我建议你通读这本书然后挑门你最得意的编程语言动手写吧给自己制定一个计划每天编写一段代码不需要太多200行足够时不时地把设计模式融入到你的代码中。甭管是什么代码比如你想编写一个识别美女图片的程序好呀抓紧时间去写吧写好了就不用到处看美女了程序一跑就把网上的美女图片都抓过来了牛呀记住程序写好了要分享给我。看吧坚持下去一年以后你再跟你的同侪比较一下那差距肯定不是一般的大。 如果你是资深工程师、架构师、技术顾问等高等级的技术人员那我告诉你你找对这本书了。系统架构没有思路没有问题看看扩展部分它会开阔你思路。系统的维护成本居高不下看看本书设计模式也许能帮你省点银子。开发资源无法保证设计模式能让你用有限的资源软硬件资源和人力资源设计出一个优秀的系统。项目质量参差不齐缺陷一大堆多用设计模式它会给你意想不到的效果。给人讲课没有素材没问题本书中的素材足以让你赢得阵阵掌声 编程是一门艺术活我有一个同事能把类图画成一个小乌龟的形状天才呀作为一位技术人员最基本的品质就是诚实“知之为知之不知为不知是知也”自己不懂没有关系去学学无止境但是千万不要贪多这抓一点那挖一点好像什么都懂其实什么都不懂。中国一直推崇复合型人才我不是很赞成因为这对年轻人来说是一个误导。先精一项技术然后再发散学习先点后面这才是正道。 记得《武林外传》中有这样一段对话 刑捕头手中无刀心中有刀。 老白错了最高境界是手中无刀心中也无刀。 体验一下吧我们的设计模式就是一把刀极致的境界就是心中无设计模式代码亦无设计模式——设计模式随处可见俯拾皆是已经融入软件设计的灵魂中这才是高手中的高手简称高高手。 哦最最重要的忘记说了请把附录中的“23个设计模式附图”撕下来贴在你的办公桌前时不时地看看也让老板看看咱是多么的用心 致谢 本书的写作耗时7个月可以说是榨干了海绵里所有的水——基本上能用的时间都用上了。在公交车上打腹稿干过在马桶上查资料干过在睡梦中思考案例也有过就差没有走火入魔了 首先感谢杨福川编辑没有他的慧眼这本书不可能出版。其次感谢妻子和儿子每天下班回到家一按门铃儿子就在门后叫“我来开门我来开门”。儿子三岁太调皮了他不睡觉我基本上是不能开写的我一旦开始写东西他就跑过来问“爸爸你在干什么呀”紧接着下一句就是“爸爸你陪我玩”基本都是拿我当玩具别的小朋友都是把父亲当马骑他却不他把我当摩托车骑还要加油门发动······小家伙脚太重了再骑摩托非被他踩死不可 再次还要感谢《Spring技术内幕》的作者计文柯先生、《冒号课堂》的作者郑晖先生、《Spring揭秘》的作者王福强先生、《GWT揭秘》的作者徐彬先生他们专业、细致、耐心的审核使得本书更加完美特别是郑晖老师虽言语不多但言必中的受益匪浅非常幸运能获得他们四位的指导 最后要感谢我的朋友王骢周末只要小家伙在家我只有找地方写书的份儿王骢非常爽快地把钥匙给我让我有一个安静的地方写书。一个人沉静在自己喜欢的世界里也是一件非常幸福的事。 当然还要感谢JavaEye上所有顶贴的网友没有你们的支持我就失去了编写的动力就像希腊神话中的巨人安泰失去了大地的力量一样是你们的回帖让我觉得不孤单让我知道我不是一个人在战斗 最后再次对本书中出现的错误表示歉意真诚地接受大家轰炸 有关本书的一些活动链接链接如下 免费试读活动好不好你说了算 书籍封面 转载于:https://www.cnblogs.com/cbf4life/archive/2010/03/16/1686935.html