UML:Java程序员指南(中、英双语版)
基本信息
- 原书名: UML For Java Programmers
- 原出版社: Pearson Education
编辑推荐
面向对象大师Bob大叔新作,直言不讳地指出UML的局限性 指导程序员高效地使用UML,以避免盲目使用UML所带来的灾难性后果.
内容简介回到顶部↑
[b]面向对象大师robert martin新作,直言不讳地指出uml的局限性,指导程序员高效地使用uml,以避免盲目使用uml所带来的灾难性后果。[/b][font color="#ff6600"][b]
amazon网站读者对本书的评价:[/b]
● 实际的智慧、提示、技术和技巧
● 杰出的uml和oo设计基础读物 极佳的学习材料!
● 这本uml书是你惟一所需的
● c++程序员也应该看看这本书
● 有助于java设计团队
● 团队程序员(和他们的经理)必读
● 对uml的最佳诠释,对java程序员而言,尤其如此
● 杰出的uml和oo设计基础读物[/font]
这是世界一流面向对象大师robert c. martin的最新著作。作者以独特的视角,着重为java程序员描述了uml的利与弊,指导他们何时应该使用uml,以及如何使用uml。通过本书的阅读,java程序员将能更加恰如其分地使用uml,进一步提高开发效率。
可作为软件开发人员的参考书,也可供高等院校"uml课程"使用。本书源代码和授课用的幻灯片可在 [a href="http://www.objectmentor.com/resources/bookstore/books/umlfjp" target="_blank"]http://www.objectmentor.com/resources/bookstore/books/umlfjp[/a]获得。
amazon网站读者对本书的评价:[/b]
● 实际的智慧、提示、技术和技巧
● 杰出的uml和oo设计基础读物 极佳的学习材料!
● 这本uml书是你惟一所需的
● c++程序员也应该看看这本书
● 有助于java设计团队
● 团队程序员(和他们的经理)必读
● 对uml的最佳诠释,对java程序员而言,尤其如此
● 杰出的uml和oo设计基础读物[/font]
这是世界一流面向对象大师robert c. martin的最新著作。作者以独特的视角,着重为java程序员描述了uml的利与弊,指导他们何时应该使用uml,以及如何使用uml。通过本书的阅读,java程序员将能更加恰如其分地使用uml,进一步提高开发效率。
可作为软件开发人员的参考书,也可供高等院校"uml课程"使用。本书源代码和授课用的幻灯片可在 [a href="http://www.objectmentor.com/resources/bookstore/books/umlfjp" target="_blank"]http://www.objectmentor.com/resources/bookstore/books/umlfjp[/a]获得。
作译者回到顶部↑
本书提供作译者介绍
Robert C. Martin是Object Mentor公司总裁,面向对象设计、模式、UML、敏捷方法学和极限编程领域内的资深顾问。他不仅是Jolt获奖图书《敏捷软件开发:原则、模式与实践》的作者,还是畅销书Designing Object-Oriented C++ Applications Using the Booch Method的作者。Martin是Pattern Languages of Program Design 3和More C++ Gems的主编,并与James Newkirk合著了XP in Practice。他是国际程序员大会上著名的发言人,并在C++ Report杂志担任过4年的编辑。
.. << 查看详细
.. << 查看详细
目录回到顶部↑
英文版目录
1. overview of uml for java? programmers.
2. working with diagrams.
3. class diagrams.
4. sequence diagrams.
5. use cases.
6. principles of ood.
7. the practices: dx.
8. packages.
9. object diagrams.
10. state diagrams.
11. heuristics and coffee.
12. smc remote service: case study. index.
1. overview of uml for java? programmers.
2. working with diagrams.
3. class diagrams.
4. sequence diagrams.
5. use cases.
6. principles of ood.
7. the practices: dx.
8. packages.
9. object diagrams.
10. state diagrams.
11. heuristics and coffee.
12. smc remote service: case study. index.
译者序回到顶部↑
本书的作者Robert C. Martin,人称“Bob大叔”,是软件开发界最受尊敬的几名专家之一。去年他撰写的《敏捷软件开发:原则、模式与实践》一书获得了技术图书的最高荣誉——Jolt震撼大奖,而且该书的中文版在国内也得到了读者极高的评价。之后,人们一直在关注Bob大叔的下一部著作,也就是本书。
也许出乎很多人的意料,这本书算不上一部宏篇巨著。与作者此前的所有著作相比,无论是在篇幅和内容上,这本书都大为简明短小。与之相应,这本书的文风也是非常简洁明快,流畅风趣。然而,书中所表达的思想却是极为严肃和重要的。虽然这本书标明了是面向Java开发者的UML指导书,但实际上却是每一个严肃的软件开发者都应该阅读的著作。从某种意义上讲,甚至可以说这本书是独一无二的。
本书的主要目的是指导Java程序员学习和使用UML。同样主题的书市面上已经堆成堆了,那么本书的独特性在哪里呢?
让我们看看“主流”UML图书,有“UML三友”的谆谆教导,有高校研究机构中理论专家们的权威著作,也有编程没几年就荣升“架构师”的年轻新锐们的激进声音。总而言之,对于UML是一片褒扬之声,溢美之辞甚嚣尘上。然而只要你稍微深入实际调查一下,就会发现,UML的使用情况远不像书里说的那么理想。大量的企业拿UML根本就是摆摆样子,用它来制作精美的标书、文档,应付检查,唬弄外行。一到实际开发,则抛开UML,继续赤膊上阵。有些企业似乎水平高得很,UML图画得漂亮、规范,似乎也起到了指导实际开发的效用,但是其实是因为面向成熟行业做了很多年,一切已经是驾轻就熟,有没有这些UML图照样能轻松应付。总之,今天对于绝大多数企业而言,UML图并没有很好的起到应有的效果,而是,套句老话,陷入形式主义和教条主义的境地。
这一切是怎么发生的呢?UML是用来帮助开发者更好地开发软件产品的工具,本质上是来源于实践,为了更好的实践。然而,近十年来软件从业队伍急剧扩张,大量脱离实践的软件从业者也就出现了。他们中有理论技术水平很高,但是缺乏实际开发经验的理论家和专家讲师,有工作没两年就成为“架构师”的新秀,有一毕业就进入企业信息化部门当甲方的幸运儿。一部分人缺乏一线开发经验,也没有深入实际调查研究,对于软件开发、团队开发根本缺乏足够的认识,仅仅看了一些大师的著作,上了一些课程,就在大脑中虚构出一副企业软件开发的景象。然后,再凭借这种虚构的景象要求他人,指导工作。在这种情况下,自然会出现理论与实际脱节的状况。目前UML已经出现了在上层滥用,在下层无用的情况,这对于UML来说,实在是一种悲剧。
Robert Martin是一位具有三十多年开发经验的老程序员,尽管今天已经是世界顶级的专家,但他对于“一切必须落实到代码”的思想,仍然抱着无比坚定的信念。这一点从他的每一本书中都能切实感受到。这种务实的作风,使得他的著作成为这个时代最清醒的声音,甚至可以说,是纠偏良药。
本书是一本教Java程序员使用UML的书,而不是一本教“架构师”、“分析师”们滥用UML的书。这本书最大的特点,与其说是告诉你UML该怎么用,还不如说是告诉你UML不该怎么用。我从来没有读过这样的一本UML书,用流畅的语言,清晰的范例,务实的态度,不可置疑的坚定决心,通过强烈地警告和辛辣的批评来教导读者“走正道”。难怪网上有读者说这本书的名字应该叫作《我为什么憎恨UML》。我想这与其说是一种批评,还不如说是一种无上的称赞。技术的滥用,已经成了今天软件开发领域里的公害。对于今天的开发者来说,知道不应该做什么,可能要比知道应该做什么更重要。UML是优秀的工具,但是这种优秀只有在合理的运用中才能够得到体现。这本书,可以说是当前唯一一本告诉Java程序员如何合理运用UML的著作。它有多重要?我认为每一个对UML感兴趣、对面向对象设计感兴趣的程序员都应该读读。我也希望架构师们、分析师们读读这本也许令人不快的作品,至少您能了解到另一些人的想法。
本书还有一些其他的特点。比如对于面向对象设计作了简明扼要的介绍,将大量非常实用的设计模式融合到非常实际的案例中,帮助读者融会贯通。书中举了一些很棒的例子,与一般图书中近乎开玩笑似的玩具案例截然不同,这些例子大部分来源于实践,非常具有启发性。这些例子的代码冰冷地撕破了一些精心描绘的虚假的美景,让读者接触到铁一般真实的实际代码。读者可能会因为自己那些优美设计的破产而阵痛,然而却能够在这种阵痛中学会软件设计开发中最重要的东西——理论与实际相结合的能力。我想一个实事求是而不是教条刻板的开发者,在阅读并理解了这本书之后,使用UML的场合可能会变少,但是对UML的理解和运用水平则会得到大大的提高。特别是SMC的案例,让我学到了很多东西。
另外,本书语言流畅,深具讽刺性和启发性,在软件技术图书里实属罕见。我在翻译这本书的过程中经常陷入乐不可支的状态,我也希望我的译文能够给读者带来同样的感受。
当然,这本书中的观点我也不是完全赞同,对于某些问题,作者似乎是有些矫枉过正了。技术翻译的前辈、北京大学的裘宗燕教授曾经说过,对于任何一本技术图书,都应该抱着“正当的怀疑态度”。我想读者对待这本书也应该采用这样的态度。
总之,这是一本非常棒的技术图书。我深为能翻译这样一本好书而感到荣幸。当然,我本人也缺乏足够实践经验,虽然曾经参加过一线的开发工作,但是远未充分。对这样一本饱含经验的著作,肯定有无法把握的地方,缺陷和错误都在所难免。我诚恳地欢迎读者的批评和指教。
在本书翻译过程中,得到了清华大学出版社尤晓东老师和文开祺老师的亲切指导,并大量参考了邓辉先生翻译的《敏捷软件开发》中的内容,在此致以诚挚的感谢。另外,感谢我的父母、先生和朋友们在翻译过程中给我的支持。没有大家的帮助,我不可能完成这本书的翻译工作。
也许出乎很多人的意料,这本书算不上一部宏篇巨著。与作者此前的所有著作相比,无论是在篇幅和内容上,这本书都大为简明短小。与之相应,这本书的文风也是非常简洁明快,流畅风趣。然而,书中所表达的思想却是极为严肃和重要的。虽然这本书标明了是面向Java开发者的UML指导书,但实际上却是每一个严肃的软件开发者都应该阅读的著作。从某种意义上讲,甚至可以说这本书是独一无二的。
本书的主要目的是指导Java程序员学习和使用UML。同样主题的书市面上已经堆成堆了,那么本书的独特性在哪里呢?
让我们看看“主流”UML图书,有“UML三友”的谆谆教导,有高校研究机构中理论专家们的权威著作,也有编程没几年就荣升“架构师”的年轻新锐们的激进声音。总而言之,对于UML是一片褒扬之声,溢美之辞甚嚣尘上。然而只要你稍微深入实际调查一下,就会发现,UML的使用情况远不像书里说的那么理想。大量的企业拿UML根本就是摆摆样子,用它来制作精美的标书、文档,应付检查,唬弄外行。一到实际开发,则抛开UML,继续赤膊上阵。有些企业似乎水平高得很,UML图画得漂亮、规范,似乎也起到了指导实际开发的效用,但是其实是因为面向成熟行业做了很多年,一切已经是驾轻就熟,有没有这些UML图照样能轻松应付。总之,今天对于绝大多数企业而言,UML图并没有很好的起到应有的效果,而是,套句老话,陷入形式主义和教条主义的境地。
这一切是怎么发生的呢?UML是用来帮助开发者更好地开发软件产品的工具,本质上是来源于实践,为了更好的实践。然而,近十年来软件从业队伍急剧扩张,大量脱离实践的软件从业者也就出现了。他们中有理论技术水平很高,但是缺乏实际开发经验的理论家和专家讲师,有工作没两年就成为“架构师”的新秀,有一毕业就进入企业信息化部门当甲方的幸运儿。一部分人缺乏一线开发经验,也没有深入实际调查研究,对于软件开发、团队开发根本缺乏足够的认识,仅仅看了一些大师的著作,上了一些课程,就在大脑中虚构出一副企业软件开发的景象。然后,再凭借这种虚构的景象要求他人,指导工作。在这种情况下,自然会出现理论与实际脱节的状况。目前UML已经出现了在上层滥用,在下层无用的情况,这对于UML来说,实在是一种悲剧。
Robert Martin是一位具有三十多年开发经验的老程序员,尽管今天已经是世界顶级的专家,但他对于“一切必须落实到代码”的思想,仍然抱着无比坚定的信念。这一点从他的每一本书中都能切实感受到。这种务实的作风,使得他的著作成为这个时代最清醒的声音,甚至可以说,是纠偏良药。
本书是一本教Java程序员使用UML的书,而不是一本教“架构师”、“分析师”们滥用UML的书。这本书最大的特点,与其说是告诉你UML该怎么用,还不如说是告诉你UML不该怎么用。我从来没有读过这样的一本UML书,用流畅的语言,清晰的范例,务实的态度,不可置疑的坚定决心,通过强烈地警告和辛辣的批评来教导读者“走正道”。难怪网上有读者说这本书的名字应该叫作《我为什么憎恨UML》。我想这与其说是一种批评,还不如说是一种无上的称赞。技术的滥用,已经成了今天软件开发领域里的公害。对于今天的开发者来说,知道不应该做什么,可能要比知道应该做什么更重要。UML是优秀的工具,但是这种优秀只有在合理的运用中才能够得到体现。这本书,可以说是当前唯一一本告诉Java程序员如何合理运用UML的著作。它有多重要?我认为每一个对UML感兴趣、对面向对象设计感兴趣的程序员都应该读读。我也希望架构师们、分析师们读读这本也许令人不快的作品,至少您能了解到另一些人的想法。
本书还有一些其他的特点。比如对于面向对象设计作了简明扼要的介绍,将大量非常实用的设计模式融合到非常实际的案例中,帮助读者融会贯通。书中举了一些很棒的例子,与一般图书中近乎开玩笑似的玩具案例截然不同,这些例子大部分来源于实践,非常具有启发性。这些例子的代码冰冷地撕破了一些精心描绘的虚假的美景,让读者接触到铁一般真实的实际代码。读者可能会因为自己那些优美设计的破产而阵痛,然而却能够在这种阵痛中学会软件设计开发中最重要的东西——理论与实际相结合的能力。我想一个实事求是而不是教条刻板的开发者,在阅读并理解了这本书之后,使用UML的场合可能会变少,但是对UML的理解和运用水平则会得到大大的提高。特别是SMC的案例,让我学到了很多东西。
另外,本书语言流畅,深具讽刺性和启发性,在软件技术图书里实属罕见。我在翻译这本书的过程中经常陷入乐不可支的状态,我也希望我的译文能够给读者带来同样的感受。
当然,这本书中的观点我也不是完全赞同,对于某些问题,作者似乎是有些矫枉过正了。技术翻译的前辈、北京大学的裘宗燕教授曾经说过,对于任何一本技术图书,都应该抱着“正当的怀疑态度”。我想读者对待这本书也应该采用这样的态度。
总之,这是一本非常棒的技术图书。我深为能翻译这样一本好书而感到荣幸。当然,我本人也缺乏足够实践经验,虽然曾经参加过一线的开发工作,但是远未充分。对这样一本饱含经验的著作,肯定有无法把握的地方,缺陷和错误都在所难免。我诚恳地欢迎读者的批评和指教。
在本书翻译过程中,得到了清华大学出版社尤晓东老师和文开祺老师的亲切指导,并大量参考了邓辉先生翻译的《敏捷软件开发》中的内容,在此致以诚挚的感谢。另外,感谢我的父母、先生和朋友们在翻译过程中给我的支持。没有大家的帮助,我不可能完成这本书的翻译工作。
前言回到顶部↑
那还是1991年,我第一次读到Booch的经典著作Object Oriented Design with Applications(第1版)。当时我已经学习了好几种面向对象语言,包括C++和Smalltalk。当时我完全被Booch表示法(Booch notation)震撼了。那些云图!那些关系!那些在图中传递着的消息!作为一个软件设计师,这些正是我梦寐以求的东西!
我还需要一种工具来绘制这些图。于是,我开始用Think-C在Macintosh上开发一个CASE工具。我还记得,为了让云图“像模像样”,我花了大量的时间。虽然我没有完成那个CASE工具,但它的一个半成品存留至今。我创造的云形图标跟随我走过一台台计算机,走过Macintosh和Windows,我在所有的著作和文章中所使用的云形图标都来源于它。
我还记得那个令人难以置信的日子,我的办公室搭档Billy Vogel接了一个电话,与电话那边的猎头说了几句话,然后直勾勾看着我说:“Bob大叔,我想你应该听这个电话。”那个猎头正在寻找一个顾问去Rational工作,与Grady Booch一起,开发一个能够绘制Booch图的CASE工具!天啊,我竟然如此幸运!
十多年过去了。我仍然保留着我的第一本Booch著作。它已经有些破损,书页微微卷曲,但是这本书仍然能够唤起我当年体验过的那种震撼。
当然,今天我们使用UML——与Booch表示法有三分之一血缘关系的后代。UML是一个大完备的表示法体系,其涉及领域之广阔,远胜于Booch表示法。很显然,对于你能想象出来的任何东西,UML都可以很出色地进行建模——这体现了其博大精深。UML是如此博大精深,如此全能,在我看来,只要截取其中一个子集就足以应对我所有的软件图形绘制工作。
这本书所关注的就是这个子集,就是这些图形,目的就是要重新唤起昔日的震撼。本书从UML 2.0庞大的内容中萃取出一个简单的子集,依靠这个子集,程序员在软件设计中可以轻松地绘制图形。这本书从UML华丽的构件、图标、图形、关系、箭头形状和语义中精选出一个简单的工具集,Java程序员可以使用这个工具集来记录他们的设计抉择。
所以别搞错了,这本书不会教授你UML的方方面面。不过如果你是一个Java程序员,这本书将教会你真正需要的东西;也许它能够帮助你体验或者重温尘封的震撼。
我还需要一种工具来绘制这些图。于是,我开始用Think-C在Macintosh上开发一个CASE工具。我还记得,为了让云图“像模像样”,我花了大量的时间。虽然我没有完成那个CASE工具,但它的一个半成品存留至今。我创造的云形图标跟随我走过一台台计算机,走过Macintosh和Windows,我在所有的著作和文章中所使用的云形图标都来源于它。
我还记得那个令人难以置信的日子,我的办公室搭档Billy Vogel接了一个电话,与电话那边的猎头说了几句话,然后直勾勾看着我说:“Bob大叔,我想你应该听这个电话。”那个猎头正在寻找一个顾问去Rational工作,与Grady Booch一起,开发一个能够绘制Booch图的CASE工具!天啊,我竟然如此幸运!
十多年过去了。我仍然保留着我的第一本Booch著作。它已经有些破损,书页微微卷曲,但是这本书仍然能够唤起我当年体验过的那种震撼。
当然,今天我们使用UML——与Booch表示法有三分之一血缘关系的后代。UML是一个大完备的表示法体系,其涉及领域之广阔,远胜于Booch表示法。很显然,对于你能想象出来的任何东西,UML都可以很出色地进行建模——这体现了其博大精深。UML是如此博大精深,如此全能,在我看来,只要截取其中一个子集就足以应对我所有的软件图形绘制工作。
这本书所关注的就是这个子集,就是这些图形,目的就是要重新唤起昔日的震撼。本书从UML 2.0庞大的内容中萃取出一个简单的子集,依靠这个子集,程序员在软件设计中可以轻松地绘制图形。这本书从UML华丽的构件、图标、图形、关系、箭头形状和语义中精选出一个简单的工具集,Java程序员可以使用这个工具集来记录他们的设计抉择。
所以别搞错了,这本书不会教授你UML的方方面面。不过如果你是一个Java程序员,这本书将教会你真正需要的东西;也许它能够帮助你体验或者重温尘封的震撼。
序言回到顶部↑
呵呵,又是一本我们需要的UML方面的书。UML Distilled不是已经覆盖了开发者真正需要了解的所有UML知识了吗?再者,UML Distilled覆盖了所有类型的UML图;这本书甚至没有能够覆盖所有的图,它的价值何在?
且慢,我发现这本书覆盖了我在实际项目中用过的所有UML图,但与此同时,它略去不讲的图,又恰恰是我劝诫团队避免使用的。说不定Robert Martin写的这本书会胜过UML Distilled……
啊哈,第一印象欺骗了我。这是一本了不起的书,理当成为又一本经典。在我读过的书中,UML for Java Programmers率先把UML当作帮助程序员轻松处理日常工作的工具。这是一个大受欢迎的变化,在此之前,所有UML书似乎都假定读者想成为一名语言律师(language lawyer)。
对于本书,最让我满意的一点是,它集中关注UML应用中的规格(specification)和实现(implementation)层次,以便精确、无歧义地表达出构思中的设计和现有代码的描述。Bob大叔 一直强调,一个临时的UML图能使我们在花时间和精力动手写代码之前,预先体会设计思路,从而节省时间,另外,在有的时候,UML图能够很好地解释一个现有软件的局部是如何运作的。
这是一本讲解如何将UML用于实际项目的书,一本专注于如何通过使用UML获得实际价值的书。飓风起于青萍之末,设计结果所表现出的巨大差别,往往源于微小的事件:比如用UML图在若干方案中抉择;用UML在白板上解释设计思路;在一个图完成其使命后,需要把它擦除。
在见过一大堆CASE工具之后,我非常认同Robert对于CASE工具的警告。我个人宁可看到公司花点钱气派的会议室里添置一个有影印功能的白板,也不愿意看到他们把钱浪费在CASE工具上。我承认,CASE工具从某种角度上讲确实够酷,不过就提高开发效率而言,把钱花在其他地方会获得更多回报。
这本书对开发者提出了挑战,开发者必须去理解“绘制UML图”这项工作背后的价值。同时,本书鼓励开发者去反击那些语言律师和UML警察,这些人往往怂恿程序员过分注重UML图的精确性。
Bob大叔做了一件了不起的工作,他不仅说明了如何高效地运用UML,还解释了如何识别UML图开始体现出糟糕的设计理念。要知道,你可以画一幅漂亮的图来博取语言律师们的欢心,但是如果设计很糟糕,你还是得修改。
本书中的设计指导和启发式法则,使本书从一本简单的UML指南上升为一本出色的OO设计指导书。它表明,在OO设计中,不仅仅是简单地绘制UML图。图本身并不会造成很大的差异,重要的是审慎地思考每一个设计抉择的后果。当然,图可以帮助我们更容易地看清这些后果,但是真正重要的是,掌握规律,相机而动。
这本书理当成为经典,因为它揭示了现实软件开发中一个令人难堪的小秘密:良好的设计来自于多次的迭代,每一次迭代都涉及到围绕着一个问题进行艰苦的工作。
这一点也说明了为什么本书要用Java。Java经过充分的迭代,现在已经很非常实用了。我们已经度过了充满夸大之辞的阶段,抵达了彼岸。Bob大叔在书中提供了大量高质量的Java代码,这是那些仅提供常规玩具代码的书无法媲美的。
Java与UML的完美组合出色地展示了何为优秀的OO设计。感谢Bob大叔为我们写就这本出色的书。
且慢,我发现这本书覆盖了我在实际项目中用过的所有UML图,但与此同时,它略去不讲的图,又恰恰是我劝诫团队避免使用的。说不定Robert Martin写的这本书会胜过UML Distilled……
啊哈,第一印象欺骗了我。这是一本了不起的书,理当成为又一本经典。在我读过的书中,UML for Java Programmers率先把UML当作帮助程序员轻松处理日常工作的工具。这是一个大受欢迎的变化,在此之前,所有UML书似乎都假定读者想成为一名语言律师(language lawyer)。
对于本书,最让我满意的一点是,它集中关注UML应用中的规格(specification)和实现(implementation)层次,以便精确、无歧义地表达出构思中的设计和现有代码的描述。Bob大叔 一直强调,一个临时的UML图能使我们在花时间和精力动手写代码之前,预先体会设计思路,从而节省时间,另外,在有的时候,UML图能够很好地解释一个现有软件的局部是如何运作的。
这是一本讲解如何将UML用于实际项目的书,一本专注于如何通过使用UML获得实际价值的书。飓风起于青萍之末,设计结果所表现出的巨大差别,往往源于微小的事件:比如用UML图在若干方案中抉择;用UML在白板上解释设计思路;在一个图完成其使命后,需要把它擦除。
在见过一大堆CASE工具之后,我非常认同Robert对于CASE工具的警告。我个人宁可看到公司花点钱气派的会议室里添置一个有影印功能的白板,也不愿意看到他们把钱浪费在CASE工具上。我承认,CASE工具从某种角度上讲确实够酷,不过就提高开发效率而言,把钱花在其他地方会获得更多回报。
这本书对开发者提出了挑战,开发者必须去理解“绘制UML图”这项工作背后的价值。同时,本书鼓励开发者去反击那些语言律师和UML警察,这些人往往怂恿程序员过分注重UML图的精确性。
Bob大叔做了一件了不起的工作,他不仅说明了如何高效地运用UML,还解释了如何识别UML图开始体现出糟糕的设计理念。要知道,你可以画一幅漂亮的图来博取语言律师们的欢心,但是如果设计很糟糕,你还是得修改。
本书中的设计指导和启发式法则,使本书从一本简单的UML指南上升为一本出色的OO设计指导书。它表明,在OO设计中,不仅仅是简单地绘制UML图。图本身并不会造成很大的差异,重要的是审慎地思考每一个设计抉择的后果。当然,图可以帮助我们更容易地看清这些后果,但是真正重要的是,掌握规律,相机而动。
这本书理当成为经典,因为它揭示了现实软件开发中一个令人难堪的小秘密:良好的设计来自于多次的迭代,每一次迭代都涉及到围绕着一个问题进行艰苦的工作。
这一点也说明了为什么本书要用Java。Java经过充分的迭代,现在已经很非常实用了。我们已经度过了充满夸大之辞的阶段,抵达了彼岸。Bob大叔在书中提供了大量高质量的Java代码,这是那些仅提供常规玩具代码的书无法媲美的。
Java与UML的完美组合出色地展示了何为优秀的OO设计。感谢Bob大叔为我们写就这本出色的书。
评论交流
共有49人开贴评论 81人参与评论 40人参与打分 查看
评价等级:







发表于:2004-9-7 16:46:00
今天收到了这本书,想提一个我的建议,我本来以这本书是逐页对译的(即一页中文一页英文),没有想到竟然是一半一半,前面是中文的译本后面一半是英文的译本。我个人感觉这样做不好地方的就是不谁阅读,在我看来即使英文再熟悉的国内程序员它也还是希望把他的母语做为他阅读的首选语言,这样的话逐页对译就正好满意了这个要求,读中文比较顺的时候就一直去读中文的译本,如果感觉不理解的话马上查英文部分,而如果象现在这样译的话和我在电脑当中存一个电子版没有什么本质区别,我想可能唯一的区别就是,看的时候不用象电子版一样开电脑。
| 我要写评论 |
| 查看所有评论交流(共49条) |








点击看大图




加载中...


