读书札记之 —— 《UML 精粹》

读这本书主要有两个原因,第一是前阵子看《设计模式》一书的时候对于它的OMT表示方 法比较感兴趣;第二则是论文需要画一些图,想要画的规范一些。对于《UML 精粹》这本书 早有耳闻,因为这本书不是号称权威的“三剑客”写的书,但是销量比他们的书都要好,而且 这本书非常的薄,比较适合阅读。

两个中文译本

在中国《UML 精粹》一度遭人唾弃,因为它有一个徐家福先生的译本招人唾弃,认为他糟蹋 了一本好书,我在大学的时候就尝试过读这个译本,最后放弃了这本书,因为实在读不懂说 的是什么(UML 相关的几本“三剑客”写的书好像也有翻译太差这个问题)。

这本书在国内还有另外一个译本,译者是UMLChina(本名好像是潘加宇),我读的译本就 是这个,感觉上还是不错的。不过这个译本目前已经绝版,市面上买不到,我千辛万苦在淘 宝上找到一本二手书,如获珍宝。

在网络上还可以找到这本书的英文原版 PDF,虽然不是很清晰,但是阅读还是没有问题的。 如果找不到合适的译本,可以考虑看那份原版的电子档,反正书也不是太厚,自己没有读懂 好过别人没有读懂把你带沟里去了。

二八原则

这本书没有详细的介绍 UML 的方方面面,也算是对得起“精粹”二字。本书最大的亮点在于 把二八原则贯彻的淋漓尽致,他用大量篇幅写了最核心的东西(类图,序列图),剩下的那 些不太重要的东西一笔带过。这是一种技巧,也是一种态度,我认为做任何的事情都应该向 它学习,理解到精髓方能举重若轻。

不要在意细节

UML 是图形建模语言,大家用的最多的是它的图,而图是画给人看的。这和编程语言最大的 区别在于语法的严谨程度不同,C 语言是写给机器看的,所以你把printf写成了pf编译 会报错,但是你在图上多画或者少画一个箭头,人还是能够理解。

俗话说一图胜千言,图像最大的优势在于它的表现力比文字强,非常的直观。所以画图的 大忌是什么都堆砌在图上,力求图片信息的准确和丰富。一种密密麻麻的图片和一段密密麻 麻的文字一样让人没有任何想要看下去的欲望。图片的重点是传达出你想要表达的那部分信 息展示出来,把不需要的东西全部忽略掉,这一点对于任何的图都是一样的。

选择合适的图

UML 中的图非常的多,每种图都有自己独特的表现力,比如序列图适合表现交互关系,活动 图适合表现处理流程,组件图适合表现模块化信息等等。我认为只因为自己的个人偏好问题 强制使用一种图是不合适,比如因为偏好序列图就不分场合的使用这种图的做法个人认为是 不可取的。

书中书

本书的许多章节都有推荐阅读部分,这一部分对于我来说是很有价值的,这本书的作者 Martin Flower 自身就是一个享誉全球的大牛。他的另外几本书也很有阅读的必要,比如 《重构》、《分析模式》等等。他在推荐阅读部分给出的书我相信都是一些好书,特别是其 中“鲍勃大叔”的《敏捷软件开发 原则 模式 实践》,这本书在网上的口碑非常不错,值得 一读。