作者 内容
 cranewhite  《Applying UML and Patterns》读后感
 

(批评光当书不看书的人快来看)

  《Applying UMLand Patterns》是一本好书(n个人都说过了,包括Martin Fowler(如果你搞OOD,由不知道它是谁,那就说明你听幸福的),我还是忍不住要再说一边),读完之后更加强烈推荐。
  但我不喜欢她的名字,读完之后觉得应该叫OOD。。。什么的(最好是主妇标题焕一下才好),这样才像一本可以流传多少年都不过时(至少我和Martin Fowler想他会这样)的经典书的样子。就像四人帮的DP一样,估计是当时出书是为了好卖吧(国内最近也是,只要跟UML挂上点边儿就好卖一样)。

  我是bestdown和 downsky的常客,但很少发言,属于潜水那伙的,一是由于我特别忙,而是我有一 光下书不看书就难受的毛病,所以不忙了就翻出电子书看两眼。没时间唠嗑,今天第一次在这发炎,没啥好书, 就写篇经验贡献给大家。

  好了,废话少说,开始正题!
  
  我是大约在上周一左右同时得到Applying UML and Patterns(AUP)和
Design Patterns Explained(DPE)的,拿过来翻了饭,马上就觉得是我想看得书,于是立刻订出读书计划,一直看到今天。
  粗略翻了一下之后,发现AUP和DPE惊人地想死!!!

  1——首先DPE和AUP的主题都是DP难学,需要在OOPL和DP之间用Principles来填补Gap, 所以OOD学习路线如下

  OOPL--〉Principles--〉DP

  我喜欢AUP其实很大程度上是因为它里面的好多ideas跟我产生了共鸣!1999年看四人帮的DP时,英文语法到没觉得多难,读的时候也好兴奋,由衷相见恨晚的感觉。而且读完之后,也在自己的项目中应用了Strategy, Adapter 等, 但是对其他Pattern的使用就没有idea了。
  所以当时我也想,23 Pattern之外还有上百个Pattern, 自己还有时需要在自己的设计中创造Pattern, 应该有一些Principles来指导,光记住Pattern自身又难有没意义,但如果脑袋中有这些Principles, 既能应用,又能创新,才是正道吧,所以那时候上网去收集了好多Pattern的资料,但发现这种Principles指出现在一些OOD Consultant的OHP里面,讲解极不详细(四人帮的DP中也有两条Principles, prefer interface to implementation, prefer delegation to inheritance, 但太少), 最系统的算是Martin Fowler收集的一些(可以上它的网站上去看),但我讨厌他那种特别抽象的讲解及归类方法。直到我发现了AUP, 发现是这样地亲切!!!

2---内容方面
  DPE总结出10个Principles, AUP提出9个Principles, 对比一下就会发现,其中的High cohesion , low coupling, responsibility, variations等是如此惊人地想死!!!
  这也正说明了,做OOD做到一定程度时,大家都开始寻找并找到了共同的Principles。如果你也开始找Principles, 说明你也走上了正路, 哈哈!!
  我看了一下,AUP总结的更系统一些,并正式命名,又有Martin Fowler的推荐,就决定先看AUP了。
  
  AUP这本书的英文时我读过书中最好读的,所以大家就看英文的好了,中文书总是翻的太次,而且听说是第一版的。
  
我先交待一下我一看完的章节,这样有助于评论我对这本书的理解范围。
  Chap 1,2,3, 
  Chap 16, 17, 18, 19, 20
  Chap 21, 22, 23
  Chap 34 看了一部分

  AUP强调他的重点是OOA/D, 不是UML, 也不是UP,虽然说是OOA/D,但我看书一般都是有用才看,而且只看自己觉得有用的章节,我只对它的OOD感兴趣, 并且急于知道他的核心--Principles和他的具体应用,所以选择的章节也是一Principles和例子为中心的。
  第一章最后一节又一个例子很简洁

  接下来就是NEXTGEN POS系统,第三章是他的背景介绍,一定要看

  在 Iteration 1 中
 Chap 16, 17, 18, 19, 20

  Chap 16讲的时前五个Principles, 主要时强调Responsibility Assignment,Chap 17则是这些Principles在NEXTGEN POS中的应用, 建议重点看。绝对受益。光看完这部分的时候,感觉不是面向对象, 儿只是在多个功能模块之间划分责任。但在看Iteration 2的过程中他们的应用时,才觉得他们是必要的组成部分,才又一次觉悟到传统的模块化程序设计的好多Know-HOw在OOD中也是广泛地应用的。
  
在 Iteration 2 中
  Chap 21, 22, 23
  Chap 22中总结了接下来的四个Principles,这回可是真正的面向对象的感觉了,里面有侯俊杰最推崇的Polymorphism(当初就是看了侯Sir的OO中Polymorphism最重要论,才有了抓住了OO的一把手的感觉),例子讲的已经不能再详细了,用Craig的话来说,--exhaustive.

好了这次先写这些,再有感觉再写!
希望大家也多多参与,多多交流!

另外对了,我看的版本中,缺页P366-P376
不知这里的版本全不全,望指教!!

 02/09/13 13:43 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 wwh0058  回复: 《Applying UML and Patterns》读后感
 

那里可以download 这本书啊

 02/09/13 16:03 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 BirdGu  www.bestdown.com
 
 02/09/13 22:05 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首

作者 内容
 cranewhite  《Applying UML and Patterns》读后感 第二篇
 


——————————————————————————————————
另外一个AUP带给我共鸣的事-----关于UML

在我的项目中,对旧系统reengineering以及进行新设计时,花了好多UML图, 最后回过头来看时,发现花得最多的就是三种兔,Design Class Diagram(DCD) 表明类之间的静态连接关系, System Sequence Diagram(SSD)表明类之间的动态连接关系, and Activity Diagram表明详细的类中方法操作内容,和AUP中不谋而合,翻一番我第一篇读后感中建议的那几章,充满了SSD和DCD, 读起来真是顺手。并且也证明了UML中最重要的就是SSD和DCD。
用了一段时间UML,再读一读批评UML的文章,你就会发现,UML和UP(Unified Process)最大的问题就是,内容太多,太复杂,所以才有了XP等可以有座位的天地。UML是不是好东西?是!那么如何解决他内容多这个问题呢?
答案就是,提纲谢灵地学,循序渐进地学。
现在UML的书这么多,其实全市垃圾,包括UML的创始人--OO三大师,Grady Booch, Rambaugh,等写的三本书,我都有纸书,但从来都没细看过。最多做个参考。原因就是太过详尽,反而很难掌握。(Craig在AUP中推荐UP的书时,也没推崇OO三大师的书,看来学问做得厉害和写好书是两回事呀)

那又没有提纲谢灵地学,循序渐进地学的好书呢?
不仅有,还是电子束!(现在的学习者可真幸福,我98年刚开始当书时书可真少,还没什么好书)

UML Distilled Second Edition,

初学UML看这本书足够了,即使我现在也够。
这本书是Martin Fowler 写的,Martin Fowler 写的书有个共同特点-----Plain English, 非常易懂。所以就看英文就好,唉!大陆的中文翻译版, 不敢看!吃了n次亏了!
其实不系统地先学UML也可以,就直接看AUP, 其中对UML的讲解就是提纲谢灵,县主要后次要,循序渐进的。

最后说一局作为第二篇的结语--

UML充其量也就是一种进行OOA/D的工具,不要把他神化了,而且使用过程中,UML有很多地方也可以灵活掌握,十个人用可能有十种画法,关键是能表明你的设计思想并能传达给别人就可以了。

 

 02/09/13 13:44 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:

作者 内容
 cranewhite  [原创]《Applying UML and Patterns》读后感 第三篇
 

《Applying UML and Patterns》读后感 第三篇 新鲜出炉!!!!

先总结一下,
写了两篇《Applying UML and Patterns》读后感,贴在www.dlking.com
e-book版和 software Engineering版, 以及www.downsky.net 的e-book版,为了就是和大家交流一下经验,在大家匆忙的当当当的体力活中,能休息一下,动动脑,做点有点深度的脑力体操。
两个论坛,共跟贴42个,虽然和提供书当的贴子美法比, 但是好像反响还不错,讨论的气氛也有了,介绍别的好书的贴子也有了, 更有lot1贡献出自己做过项目的英文经验总结,更让我高兴的时还有人要转贴我的贴子,不错不错。 搬马斑猪和兔子斑竹也大力支持,鼓励我多血多贴,所以马上下手写第三篇!

鲜花少说,进入整体!
————————————————————————————————————
这一次讨论什么屎 OO 中最重要的概念

(这一次已超出了AUP的范围)

我再第一篇中也提到了侯俊杰的 polymorphism 最重要论。
当年刚刚开始接触OO 时,新概念可真多,说大了,Inheritance, encapsulation, polymorphism, 小了说,class, object, attribute, operation, association, delegation, aggregation..........一大堆,可真头大!!
怎么学?
又是那条真理,提肛携领地学,循序渐进地学!先主要后次要。(在信息爆炸时代,这真是一条永恒真理)
那么OO 中什么屎 最重要的呢?
还好我运气好,有侯Sir 和他的网站给我以引导,让我不用走弯路,直入OO 的殿堂,抓住OO 的本质,那就是polymorphism 最重要论。
所以我对刚刚接触OOD(Object-Oriented Design)并想在这个领域中有所作为的人推荐的学习路线时

c++ or java or c#--->MFC深入浅出---〉应用架构入门与实例--〉AUP-->Design Patterns--->自己总结出一套OOD技术,终身享用

(*对于《应用架构入门与实例》,我以后会说,第四篇?)

当然这个过程中要进行大量实践
Owning a hammer doesnot mean you are an architect.

好了话说回来,OO就是因为有了polymorphism才和传统开发方法有了不同。
以前用非OO语言做的时候,reuse只能是你开发一个function libarary或toolkits
,然后别人调用你定义的函数界面,有了polymorphism, 你开发出来的是framework, 不光是别人调用你定义的界面, 你的framework还可以反过来call未来调用者的code. 在<<应用架构入门与实例>>中, 这个叫 inversion of control, 在AUP中,这叫Hollywood Principle--Donot call us, we will call you.
正是有了这个,面向对象才变得多彩起来!
当然polymorphism从广义上还有function overload的polymorphism,既然我们遵循提肛携领原则,这里就不讨论了。
好了,说了半天,也没有AUP的读后感?
别着急呀,这就来了!
这些天通过详看AUP 和粗看 DPE, 又发现了一个有趣的OO Encapsulation 重要论,野蛮有趣的。
其实学OO, 不在乎你记住了多少个概念,而在于你对他核心的理解。polymorphism最终要论学完之后,再看看别人总各个角度对OO 的理解,也可以加深自己对OO 的理解。
以前对Encapsulation 的理解只是他对data 的Encapsulation ,

其实还有
Class Encapsulation(在Interface之后的类)
Implementation Encapsulation (Implementation Operation )
Structure Encapsulation (AUP 的Protected Variations之中为隐藏structure change 而尽量减短traversing 路线讨论,见 P.336)

真是扩展视野,感谢AUP 和DPE !

 02/09/13 13:45 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 koyanma   不错,支持一下。
 

最喜欢这句话:

~~有了polymorphism, 你开发出来的是framework, 不光是别人调用你定义的界面, 你的framework还可以反过来call未来调用者的code. 在<<应用架构入门与实例>>中, 这个叫 inversion of control, 在AUP中,这叫Hollywood Principle--Donot call us, we will call you~~

 02/09/13 17:40 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首
 softsang  回复: [原创]《Applying UML and Patterns》读后感 第三篇
 

"提肛携领地学"
是不是应该该一下,印象意境。。。 :)

 02/09/13 21:43 酷帖!    臭帖!    回复  
酷帖评价:           臭帖评价:
返回页首