反模式

出版社:人民邮电
出版日期:2008-1
ISBN:9787115162793
作者:布朗
页数:216页

内容概要

William J.Brown曾任Saga软件公司研发总监和OMG金融业工作组主席。擅长金融行业大型软件系统的开发。

书籍目录

第一部分 反模式绪论第1章 模式与反模式简介 31.1 反模式就是揭露假象 31.2 反模式的概念 61.3 反模式的由来 71.4 本书组织结构 10第2章 反模式参考模型 112.1 视角 132.2 根源 142.2.1 匆忙 142.2.2 漠然 152.2.3 思想狭隘 162.2.4 懒惰 162.2.5 贪婪 172.2.6 无知 182.2.7 自负 182.3 原力 192.4 软件设计层次模型 252.4.1 对象层 282.4.2 微架构层 282.4.3 框架层 282.4.4 应用层 292.4.5 系统层 292.4.6 企业层 312.4.7 全球层 322.4.8 设计层次小结 322.5 架构规模和原力 33第3章 模式和反模式的模板 353.1 退化形式 353.2 Alexander形式 363.3 最小化模板(微型模式) 363.4 小型模式模板 363.4.1 归纳式小型模式 373.4.2 演绎式小型模式 373.5 正式模板 373.5.1 GoF模板 373.5.2 模式系统模板 383.6 对设计模式模板的反思 383.7 反模式模板 393.7.1 伪反模式模板 403.7.2 小型反模式 403.8 完整的反模式模板 40第4章 对使用反模式的建议 434.1 机能不良环境 434.2 反模式与变化 444.3 编写新反模式 454.4 小结 46第二部分 反模式第5章 软件开发性反模式 495.1 软件重构 495.2 开发性反模式摘要 505.3 The Blob(胖球) 525.3.1 背景 525.3.2 一般形式 535.3.3 症状和后果 545.3.4 典型原因 545.3.5 已知例外 555.3.6 重构方案 555.3.7 变化 585.3.8 对其他视角和规模的适用性 595.3.9 示例 595.4 Lava Flow(岩浆流) 625.4.1 背景 625.4.2 一般形式 635.4.3 症状和后果 655.4.4 典型原因 655.4.5 已知例外 665.4.6 重构方案 665.4.7 示例 665.4.8 相关解决方案 675.4.9 对其他视角和规模的适用性 675.5 Functional Decomposition(功能分解) 695.5.1 背景 695.5.2 一般形式 695.5.3 症状和后果 695.5.4 典型原因 705.5.5 已知例外 705.5.6 重构方案 705.5.7 示例 715.5.8 相关解决方案 725.5.9 对其他视角和规模的适用性 725.6 Poltergeist(恶作剧鬼) 735.6.1 背景 735.6.2 一般形式 735.6.3 症状和后果 745.6.4 典型原因 755.6.5 已知例外 755.6.6 重构方案 755.6.7 示例 755.6.8 相关解决方案 765.6.9 对其他视角和规模的适用性 765.7 Golden Hammer(金锤) 785.7.1 背景 785.7.2 一般形式 795.7.3 症状和后果 795.7.4 典型原因 795.7.5 已知例外 795.7.6 重构方案 805.7.7 变化 815.7.8 示例 815.7.9 相关方案 815.8 Spaghetti Code(面条代码) 835.8.1 背景 835.8.2 一般形式 835.8.3 症状和后果 835.8.4 典型原因 845.8.5 已知例外 845.8.6 重构方案 845.8.7 示例 865.8.8 相关解决方案 895.9 Cut-And-Paste Programming(剪贴编程) 925.9.1 背景 925.9.2 一般形式 925.9.3 症状和后果 925.9.4 典型原因 935.9.5 已知例外 935.9.6 重构方案 935.9.7 示例 945.9.8 相关解决方案 95第6章 软件架构性反模式 976.1 架构性反模式摘要 986.2 Stovepipe Enterprise(烟囱企业) 1006.2.1 背景 1006.2.2 一般形式 1006.2.3 症状和后果 1016.2.4 典型原因 1016.2.5 已知例外 1016.2.6 重构方案 1026.2.7 示例 1056.2.8 相关解决方案 1066.2.9 对其他视角和规模的适用性 1076.3 Stovepipe System(烟囱系统) 1086.3.1 背景 1086.3.2 一般形式 1086.3.3 症状和后果 1096.3.4 典型原因 1096.3.5 已知例外 1096.3.6 重构方案 1096.3.7 示例 1106.3.8 相关解决方案 1126.3.9 对其他视角和规模的适用性 1126.4 Vendor Lock-In(供应商锁定) 1136.4.1 背景 1136.4.2 一般形式 1146.4.3 症状和后果 1146.4.4 典型原因 1146.4.5 已知例外 1156.4.6 重构方案 1156.4.7 变化 1166.4.8 示例 1176.4.9 相关解决方案 1176.4.10 对其他视角和规模的适用性 1176.5 Architecture By Implication(实现主导架构) 1206.5.1 背景 1206.5.2 一般形式 1206.5.3 症状和后果 1216.5.4 典型原因 1216.5.5 已知例外 1216.5.6 重构方案 1226.5.7 变化 1236.5.8 示例 1236.5.9 相关解决方案 1246.5.10 对其他视角和规模的适用性 1246.6 Design By Committee(委员会设计) 1266.6.1 背景 1266.6.2 一般形式 1266.6.3 症状和后果 1266.6.4 典型原因 1276.6.5 已知例外 1276.6.6 重构方案 1276.6.7 变化 1296.6.8 示例 1296.6.9 相关解决方案、模式和反模式 1316.6.10 对其他视角和规模的适用性 1326.7 Reinvent The Wheel(重新发明轮子) 1346.7.1 背景 1346.7.2 一般形式 1346.7.3 症状和后果 1356.7.4 典型原因 1356.7.5 已知例外 1356.7.6 重构方案 1356.7.7 变化 1366.7.8 示例 1376.7.9 相关解决方案 1396.7.10 对其他视角和规模的适用性 139第7章 软件项目管理性反模式 1417.1 管理角色的转变 1417.2 管理性反模式摘要 1427.3 Analysis Paralysis(分析瘫痪) 1457.3.1 背景 1457.3.2 一般形式 1457.3.3 症状和后果 1467.3.4 典型原因 1467.3.5 已知例外 1477.3.6 重构方案 1477.4 Death By Planning(规划致死) 1497.4.1 背景 1497.4.2 一般形式 1497.4.3 症状和后果 1517.4.4 典型原因 1527.4.5 已知例外 1527.4.6 重构方案 1527.4.7 变化 1547.4.8 示例 1567.4.9 相关解决方案 1577.4.10 对其他视角和规模的适用性 1587.5 Corncob(玉米棒子) 1597.5.1 背景 1597.5.2 一般形式 1597.5.3 症状和后果 1597.5.4 典型原因 1607.5.5 已知例外 1607.5.6 重构方案 1607.5.7 变化 1617.5.8 示例 1637.5.9 相关解决方案 1637.5.10 对其他视角和规模的适用性 1637.6 Irrational Management(非理性管理) 1657.6.1 背景 1657.6.2 一般形式 1657.6.3 症状和后果 1667.6.4 典型原因 1667.6.5 已知例外 1667.6.6 重构方案 1667.6.7 变化 1697.6.8 示例 1697.7 Project Mismanagement(项目管理不善) 1727.7.1 背景 1727.7.2 一般形式 1727.7.3 症状和后果 1737.7.4 典型原因 1737.7.5 已知例外 1737.7.6 重构方案 1737.7.7 变化 1747.7.8 示例 1757.7.9 相关解决方案 176第三部分 结论和资源附录A 反模式大纲 181附录B 反模式术语表 187附录C 缩略语 191附录D 参考文献 193索引 199

编辑推荐

《反模式危机中软件架构和项目的重构》适用于从事项目管理和软件开发的相关人员。

作者简介

《反模式危机中软件架构和项目的重构》从一个新的角度审视模式,提出了反模式的概念,介绍了在软件开发中常常出现的问题。将设计模式错误应用于不适当的上下文环境。首先,定义了软件开发参考模型和文档模板来说明这些反模式。然后,从开发人员角度、架构角度和管理角度三个方面对这些反模式逐一说明,并说明了与特定反模式相关的背景、原因、症状和后果,让读者可以迅速地检验身边的项目是否出现了这些状况,同时也针对每个反模式给出了相应的解决方案。

图书封面


 反模式下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计6条)

  •     无论是普通开发人员,还是各级技术管理人员,都值得一读,并以此总结反省自己。唯一的缺点是那些模式的名字取得太晦涩。
  •     怎么说呢?书绝对是好书,可惜的是这真的不适合当作自学或教科书,无愧于它的生产效能大奖阿。如果你没有项目的经验,那么这本书真的不适合你,不要再浪费时间了。每一个反模式,作者都写的简短而有力,如果你有过实际的经验,我相信你读过之后都会有一拍脑袋,醍醐灌顶,恍然大悟的那种感觉。作者深厚的实践功底为这本书灌注了活力,尤其当你还在项目中时,仿佛你正对话于一个经验丰富的架构师,从中的获得可想而知。
  •     《反模式》这本书终于出版了 1995年,GoF(以Erich Gamma为首的“四人帮”)所著的《设计模式——可复用面向对象软件的基础》(Design Patterns--Elements of Reusable Object Oriented Software)一书出版了。这本书在面向对象编程/设计领域具有划时代的意义。不夸张地说,这本书就是面向对象程序员的红宝书,对于面向对象程序员来说,应该人手一册。没有读过这本书,对于面向对象的理解还停留在很低的层次;读过了这本书,才算真正理解了一些面向对象的精华。很自然,这本书一时间洛阳纸贵,后来还陆续出现了很多以不同语言的实例来解释GoF设计模式的著作,例如《Java设计模式》、《C#设计模式》等等。但是物极必反,任何事情都不能走极端,否则就会造成不良后果。在项目开发不适当的时机使用设计模式,或者在不适当的场合使用设计模式,都会给项目开发带来很多不必要的复杂性,从而增加大量的沟通成本,甚至会严重影响开发效率。以前听说过一个笑话:一个程序员发邮件给Erich Gamma,说在他们最近的一个项目中,他尽力使用了23种GoF设计模式中的21种,还有两种怎么也找不到适用的场合。他感到很苦恼,希望能够得到 Erich的帮助。这个笑话说的当然是一种最极端的情况。尽管如此,大量的实践证明,不当使用(不适当的时机、不适当的场合)设计模式会给项目开发带来很大的麻烦。自己挖坑把自己埋进去,这是很多一知半解的面向对象架构师经常做的事情。言必称架构、言必称模式正是中毒很深的迹象。1998 年出版的《反模式——危机中软件、架构和项目的重构》(AntiPatterns——Refactoring Software, Architectures, and Projects in Crisis)这本书对于滥用设计模式的趋势来说可谓是一剂很及时的解毒良药。反模式其实也是一种模式(正如设计模式是一种模式一样),不过它主要考察的是这种模式所带来的不良后果。这本书系统地总结了很多种类的反模式,以及如何识别出这些反模式并且加以避免。这些反模式涵盖了软件开发、软件架构和项目管理等方面。虽然这本书并不是专门针对设计模式展开讨论的,但是不当使用设计模式很多时候都会导致出现反模式。平衡感是优秀的面向对象架构师应该拥有的素质,《反模式》这本书可以使架构师拥有更好的平衡感。1999年出版的Martin Fowler所著的《重构——改善既有代码的设计》(Refactoring: Improving the Design of Existing Code)这本书对于如何改善现有代码的设计提出了非常具体的解决办法。Martin Fowler在这本书中认为,不应该在最初编码时就使用设计模式,而应该将设计模式作为重构的目标。实际上,设计模式正是Erich等人在对一些开发框架进行重构的过程中总结出来的。后来2004年出版的Joshua Kerievsky所著的《重构与模式》(Refactoring to Patterns)在《重构》的基础上更加详细地探讨了重构与设计模式之间的关系,以及如何在重构的过程中逐渐引入设计模式。2000年出版的Kent Beck所著的《解析极限编程——拥抱变化》(Extreme Programming explained--Embrace change)响亮地提出了简单设计、不为明天而设计的口号,进一步为滥用设计模式的趋势消了毒。我并不将这些书看作是彼此独立的著作,而是把它们看作一个系列,因为它们的内容有很大的关联性。这几本书代表了一个伟大的时代。在这几本书中,国内最晚出版的就是《反模式》,现在它也终于出版了,补上了最后一块拼版。对于国内年轻的面向对象程序员来说,真是一种福气。虽然距离它的英文版出版已经过去了将近10年,现在读起来,其中的内容读起来仍然感觉非常亲切,书中所批判的那些问题在我们周围仍然经常发生。举个例子,尽管《反模式》这本书在1998年就已经指出了委员会设计的严重问题,但是2001年仍然出现了EJB 2这样典型的委员会设计的产品。EJB 2给JavaEE社区带来的危害一直到2005年之后才逐渐消除。为何那些早已指出的问题还会一再重复出现?很显然,这本书说出了一些在软件开发中存在的本质性问题。这是一本非常少见的读第二遍仍然感觉有新意,其价值不会随时间而消退,历久弥新的技术著作。书中的内容今后10年之内都不会过时,这是我的保守估计。

精彩短评 (总计32条)

  •     好书! 失败的案例,我们学到更多。 但是无可辩驳的是, 我们还在不断的重复书中的那些失败的模式。
  •     苦涩
  •     从第4章开始,读得冷汗直下...
  •     把简单的东西弄得晦涩难懂
  •     不必读
  •     此书竟然绝版,不可思议
  •     归纳了常见问题,但是对于问题的解决方案过于抽象,可操作性不高。
  •     主要是经典问题。翻译有一些错误。
  •     对项目管理,开发过程中提出了很多反模式,以后可别做反模式哦
  •     浙江图书馆
  •     216页的书,只有180多页有用的...
  •     : TP311.52/4237-2
  •     摔完跟头你再回来看,会后大悔
  •     从编码设计,架构,管理三个层次来讲述项目失败的各种反“模式”,并给出解决方案或重构方案,个人认为架构与管理两个层次讲解得出色一些。
  •     没有什么太大的感觉,可能是因为我道行还是太浅吧
  •     还是很多没有深切的体会到 改天再读
  •     精通设计模式的人,这些应该都会想到!当然,买了这本书就直接学会了,适合我这种懒人!书的确是贵!
  •     排除能力问题,反模式有如下原因: 1、由于开发人员追求短期进度,降低了软件的可修改性。 2、开发人员忽略了软件的非功能性需求,导致产品质量低下。 3、利益相关者之间失败的沟通和协作,使得管理过程滞后于开发过程。
  •     想再读一遍
  •     从项目管理,到代码上设计出现的一些不好的模式
  •     未给满分实在是由于原书年代过于久远了,书中个别模式已经过时。著书时间正是面向对象大力受到推崇的年代,而如今似乎是函数式编程又开始重新受到青睐了。真是十年河东,十年河西。
  •     e文太密
  •     本来是满心期待的。这本书也快绝版了,在亚马逊第三方“高价”买的。很失望。一个是空,第一部分典型的中国教科书风格。一个是老,软件开发性反模式很大部分聚焦于非面向对象程序员使用面向对象技术产生的问题。还有就是阅读体验非常差,这部分归咎于翻译的原因。比如可以把Architecture By Implication翻译成“实现主导架构”。最大的价值在于提出了这些模式术语,仅此而已。
  •     给五星,后面部分还不太懂。。
  •     对corba的溢美之词颇多,对于面向对象带有宗教般的感情,带着批判的态度来看吧,总的来讲,还是一本不错的书
  •     1995年,GoF(以Erich Gamma为首的“四人帮”)所著的《设计模式——可复用面向对象软件的基础》(Design Patterns--Elements of Reusable Object Oriented... 阅读更多
  •     失望,读完一遍没什么收获,白开水的感觉,也许是我还没到那个水平吧
  •     给我一个感觉,对于我们这种没有实际生产经验的人,真的是没什么大的作用,留着以后看
  •     印象比较深刻的反模式: 手把手教你如何制造一颗原子弹(从头做起只需7天【重新发明车轮模式】); 一个超级大类(混球模式); 这些10年都没动过的代码天知道会有什么表现,保留吧(岩浆流模式); 我们有一个计划,这个计划能拯救我们(一切都会按计划模式); ……
  •     自作聪明后大吃苦头,需要好好看看这本书
  •     少了点儿,开头废话多,细节少
  •     软件工程经典,值得收藏!
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024