动态网站制作指南 [  QQ表情  ]
[ 投票调查 ]
[ 企业邮箱 ]
[ 网站空间 ]
网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
ASP源码 | .Net源码 | PHP源码 | JSP源码 | JAVA源码 | CGI源码 | VB源码 | C++源码 | Delphi源码 | PB源码 | VF源码 | 汇编 | 服务器
电脑书籍下载:程序设计书籍 | 数据库教程书籍 | 平面与多媒体书籍 | 网络通讯书籍 | 系统管理书籍 | 网络安全书籍 | 认证考试书籍
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > 软件工程
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
文章搜索服务
邮件订阅
输入你的邮件地址,
你将不会错过任何关于:
[ 软件工程 ]的信息



本月文章推荐
.ISO基本知识简介.
.注册储存 SOA的核心问题.
.SOA改变的企业软件生态.
.BEA新任亚太区总经理 曾任惠普软.
.你是我冬天的巧克力,夏天的冰淇.
.编程不难学?.
.XMI与UML合力推动产品开发(1).
.关于软件原型方法若干问题的讨论.
.统一建模语言UML释义(二).
.使用ADS1.2进行嵌入式软件开发.
.用VS2005生成数据库连接字符串.
.详细解析:Ubuntu 6.10下安装ATI.
.软件架构浅谈:问题域及其解决方.
.游戏引擎剖析(十).
.利用iTextSharp生成Pdf一个小例子.
.需求工程 研究现状.
.架构设计师与SOA(一).
.软件工程的未来之路与我们的解决.
.软件开发方法述评.
.摘录─GBK环境下Emacs与外部程序.

解析SOA反模式(1)

发表日期:2008-3-23 |


了解不同的面向服务的体系结构 (SOA) 反模式,这些反模式对通常出现的会产生确定性负面结果的情形或解决方案进行了描述。随着越来越多的企业开始大举从 Web 服务转向 SOA,引入、采用和成功实现 SOA 方面的各种障碍变得越来越明显。其中一些障碍与导致过去的要害活动失败的因素类似;而其他障碍则是 SOA 特有的。对这些障碍和最差实践进行记录,将帮助顾问、架构师和专业人员不再犯同样的错误,并学习如何避免这些问题的发生。此处汇集和说明的反模式是由作者通过作为 IBM 架构师的个人经验、研究过去和当前的 SOA 应用案例以及通过分析那些参与客户 SOA 应用的技术先驱提供的信息而得到的。 模式与反模式 “示例不是另一种学习的方法,而是学习的唯一方法。”——阿尔贝特•爱因斯坦 模式和模式语言捕捉并正式地将良好设计和基于经验的最佳实践系统化,以供其他人员对其进行重用。它们成功而清楚地表述了常见问题及其解决方案。总的来说,常见概念、描述这些概念的词汇以及将其联系在一起的语言是所有采用这些设计和实践的学科和领域的基础。 Christopher Alexander 关于建筑物和城市设计的研究通常被认为是基于模式的思维最早的成果(请参阅参考资料)。他提出了术语“模式语言”,以此代表他认为人类进行设计的能力和使用语言的能力都是天生的这一信念。 很多学科都在使用模式和模式语言的概念,包括从生理学和流程到项目治理和软件工程等领域。在 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides(经常将他们称为 Gang of Four)的“Design Patterns: Elements of Reusable Object-Oriented Software”一书出版后,软件设计模式得到了广泛的认可和使用。 软件社区目前正使用模式来解决在软件生命周期中碰到的不断重复的问题,包括软件体系结构和设计,以及近来的软件开发流程和拓扑。这些模式全面捕捉了一个知识体系,以标识我们对可以实现设计良好的软件解决方案的结构和机制的理解。 模式经常被定义为“泛型化的、命名的问题到解决方案的映射”。它捕捉在特定环境中重复出现的问题的成功解决方案。 通常使用与表 1“模式模板”中描述的模板类似的模板来记录软件模式。 表 1. 模式模板 内容 说明 名称: 用于进行标识的名称 问题: 在领域中重复出现的问题 解决方案: 该问题的最佳实践解决方案 结果: 所建议的解决方案的优点和缺点 示例 一些已经应用了所建议的解决方案的示例 软件模式提供了一个在架构师和设计人员中捕捉知识和经验的机制。它们提供了一种公共语言,可促进对其他地方成功应用的方法的重用,从而为软件项目带来以下方面的好处:风险更低、质量更好且交付时间更短。 而在另一方面,反模式则记录出现错误的情况。对数百个软件开发项目的各种调查勿庸置疑地证实了软件开发会出现错误(实际上经常是这样)。研究表明每六个项目中就有五个会不成功:交付远远超过预期预算、严重滞后或被取消。这就表明可能(至少)值得投入精力研究一下老是失败而很少成功的原因(注重 Bitter Java 的作者 BrUCe Tate 在他的 developerWorks 文章中说明了为什么反模式是设计模式的必要和互补的同伴——有关更多信息,请参阅参考资料)。 应该对这些重复失败的软件开发项目或“反解决方案”加以研究,以收集关于出现了什么问题以及为什么会这样的有用知识。很显然,只对错误的原因进行分类并不一定非常有用,而还应研究如何加以避免以及出现时如何恢复。系统化后,这个知识集合可以提供软件模型的有价值的扩展(归类为反模式)。 反模式 使用非常频繁,但主要是问题的无效解决方案。这个术语最初是用于指示设计模式出现了错误。与模式类似,反模式的使用也扩展到了软件开发的各个阶段,并深入到了其他领域中。反模式记录常见的对效率有负面影响的重复解决方案。它们通常捕捉重构解决方案描述,说明如何更改反模式,以得到更为稳定的解决方案。反模式通常使用模板进行描述,在其中标识症状、结果、根本原因和可能的解决方案。尽管与模式相比,反模式的研究并不很广泛,相关文档也不多,但软件领域对其中一些具有引人瞩目的反模式(如分析停顿、Blob、意大利面条式代码和“烟囱”系统)已耳熟能详。表 2 提供了一些这些示例的概述,这些示例均摘自 Brown 等的关于反模式的书中(有关更多信息,请参阅参考资料部分)。 表 2. 已知反模式的示例
错误类别 反模式 描述 设计 Blob 一个大型类具有太多的属性,且是系统的“核心”所在 设计 Poltergeists 非必要类且抽象过多 结构 意大利面条式代码 程序代码没有结构(很多 goto 语句) 结构 “烟囱”系统 应用程序是唯一的也是孤立的 技术 Wolf ticket 声明具有开放性的技术并与标准测试不相符 技术 不断退化模式 试图使用最新的版本 重用 剪切与粘贴 软件错误被复制 重用 Golden hammer 强制所有内容适应一个选定的工具
反模式为什么重要?反模式是用于防止问题的工具,可在问题出现之前对其进行标识,并能提供关于如何防止其发生的知识。通过将错误原因正式地系统化,我们可以更轻易对其加以理解。一旦出现问题,反模式可以提供帮助,能说明如何从其进行恢复。
简要总结一下,反模式包括以下元素:
  • 关于不能工作的方案的记录
  • 常见术语表
  • 具体的修复方法
  • 环境的描述和备选解决方案
  • 可能成为将来的反模式的热门解决方案
图 1 说明了模式和反模式之间的区别。模式从试图解决的问题开始,记录针对此问题的可重复成功解决方案。此解决方案可带来一些好处、相应的结果以及可能会有一些问题。反模式说明对效率具有负面影响的常用的问题解决方案。它描述导致出现问题的原因,并说明如何防止或对解决方案进行修正。 解析SOA反模式(1) 图 1. 模式与反模式(摘自 Brown 等的“AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis”) QQread.com 推出各大专业服务器评测 Linux服务器的安全性能 SUN服务器 HP服务器 DELL服务器 IBM服务器 联想服务器 浪潮服务器 曙光服务器 同方服务器 华硕服务器 宝德服务器 了解不同的面向服务的体系结构 (SOA) 反模式,这些反模式对通常出现的会产生确定性负面结果的情形或解决方案进行了描述。随着越来越多的企业开始大举从 Web 服务转向 SOA,引入、采用和成功实现 SOA 方面的各种障碍变得越来越明显。其中一些障碍与导致过去的要害活动失败的因素类似;而其他障碍则是 SOA 特有的。对这些障碍和最差实践进行记录,将帮助顾问、架构师和专业人员不再犯同样的错误,并学习如何避免这些问题的发生。此处汇集和说明的反模式是由作者通过作为 IBM 架构师的个人经验、研究过去和当前的 SOA 应用案例以及通过分析那些参与客户 SOA 应用的技术先驱提供的信息而得到的。 模式与反模式 “示例不是另一种学习的方法,而是学习的唯一方法。”——阿尔贝特•爱因斯坦 模式和模式语言捕捉并正式地将良好设计和基于经验的最佳实践系统化,以供其他人员对其进行重用。它们成功而清楚地表述了常见问题及其解决方案。总的来说,常见概念、描述这些概念的词汇以及将其联系在一起的语言是所有采用这些设计和实践的学科和领域的基础。 Christopher Alexander 关于建筑物和城市设计的研究通常被认为是基于模式的思维最早的成果(请参阅参考资料)。他提出了术语“模式语言”,以此代表他认为人类进行设计的能力和使用语言的能力都是天生的这一信念。 很多学科都在使用模式和模式语言的概念,包括从生理学和流程到项目治理和软件工程等领域。在 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides(经常将他们称为 Gang of Four)的“Design Patterns: Elements of Reusable Object-Oriented Software”一书出版后,软件设计模式得到了广泛的认可和使用。 软件社区目前正使用模式来解决在软件生命周期中碰到的不断重复的问题,包括软件体系结构和设计,以及近来的软件开发流程和拓扑。这些模式全面捕捉了一个知识体系,以标识我们对可以实现设计良好的软件解决方案的结构和机制的理解。 模式经常被定义为“泛型化的、命名的问题到解决方案的映射”。它捕捉在特定环境中重复出现的问题的成功解决方案。 通常使用与表 1“模式模板”中描述的模板类似的模板来记录软件模式。 表 1. 模式模板 内容 说明 名称: 用于进行标识的名称 问题: 在领域中重复出现的问题 解决方案: 该问题的最佳实践解决方案 结果: 所建议的解决方案的优点和缺点 示例 一些已经应用了所建议的解决方案的示例 软件模式提供了一个在架构师和设计人员中捕捉知识和经验的机制。它们提供了一种公共语言,可促进对其他地方成功应用的方法的重用,从而为软件项目带来以下方面的好处:风险更低、质量更好且交付时间更短。 而在另一方面,反模式则记录出现错误的情况。对数百个软件开发项目的各种调查勿庸置疑地证实了软件开发会出现错误(实际上经常是这样)。研究表明每六个项目中就有五个会不成功:交付远远超过预期预算、严重滞后或被取消。这就表明可能(至少)值得投入精力研究一下老是失败而很少成功的原因(注重 Bitter Java 的作者 Bruce Tate 在他的 developerWorks 文章中说明了为什么反模式是设计模式的必要和互补的同伴——有关更多信息,请参阅参考资料)。
应该对这些重复失败的软件开发项目或“反解决方案”加以研究,以收集关于出现了什么问题以及为什么会这样的有用知识。很显然,只对错误的原因进行分类并不一定非常有用,而还应研究如何加以避免以及出现时如何恢复。系统化后,这个知识集合可以提供软件模型的有价值的扩展(归类为反模式)。 反模式 使用非常频繁,但主要是问题的无效解决方案。这个术语最初是用于指示设计模式出现了错误。与模式类似,反模式的使用也扩展到了软件开发的各个阶段,并深入到了其他领域中。反模式记录常见的对效率有负面影响的重复解决方案。它们通常捕捉重构解决方案描述,说明如何更改反模式,以得到更为稳定的解决方案。反模式通常使用模板进行描述,在其中标识症状、结果、根本原因和可能的解决方案。尽管与模式相比,反模式的研究并不很广泛,相关文档也不多,但软件领域对其中一些具有引人瞩目的反模式(如分析停顿、Blob、意大利面条式代码和“烟囱”系统)已耳熟能详。表 2 提供了一些这些示例的概述,这些示例均摘自 Brown 等的关于反模式的书中(有关更多信息,请参阅参考资料部分)。 表 2. 已知反模式的示例
错误类别 反模式 描述 设计 Blob 一个大型类具有太多的属性,且是系统的“核心”所在 设计 Poltergeists 非必要类且抽象过多 结构 意大利面条式代码 程序代码没有结构(很多 goto 语句) 结构 “烟囱”系统 应用程序是唯一的也是孤立的 技术 Wolf ticket 声明具有开放性的技术并与标准测试不相符 技术 不断退化模式 试图使用最新的版本 重用 剪切与粘贴 软件错误被复制 重用 Golden hammer 强制所有内容适应一个选定的工具
反模式为什么重要?反模式是用于防止问题的工具,可在问题出现之前对其进行标识,并能提供关于如何防止其发生的知识。通过将错误原因正式地系统化,我们可以更轻易对其加以理解。一旦出现问题,反模式可以提供帮助,能说明如何从其进行恢复。 简要总结一下,反模式包括以下元素:
  • 关于不能工作的方案的记录
  • 常见术语表
  • 具体的修复方法
  • 环境的描述和备选解决方案
  • 可能成为将来的反模式的热门解决方案
图 1 说明了模式和反模式之间的区别。模式从试图解决的问题开始,记录针对此问题的可重复成功解决方案。此解决方案可带来一些好处、相应的结果以及可能会有一些问题。反模式说明对效率具有负面影响的常用的问题解决方案。它描述导致出现问题的原因,并说明如何防止或对解决方案进行修正。 解析SOA反模式(1) 图 1. 模式与反模式(摘自 Brown 等的“AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis”)了解不同的面向服务的体系结构 (SOA) 反模式,这些反模式对通常出现的会产生确定性负面结果的情形或解决方案进行了描述。随着越来越多的企业开始大举从 Web 服务转向 SOA,引入、采用和成功实现 SOA 方面的各种障碍变得越来越明显。其中一些障碍与导致过去的要害活动失败的因素类似;而其他障碍则是 SOA 特有的。对这些障碍和最差实践进行记录,将帮助顾问、架构师和专业人员不再犯同样的错误,并学习如何避免这些问题的发生。此处汇集和说明的反模式是由作者通过作为 IBM 架构师的个人经验、研究过去和当前的 SOA 应用案例以及通过分析那些参与客户 SOA 应用的技术先驱提供的信息而得到的。 模式与反模式 “示例不是另一种学习的方法,而是学习的唯一方法。”——阿尔贝特•爱因斯坦 模式和模式语言捕捉并正式地将良好设计和基于经验的最佳实践系统化,以供其他人员对其进行重用。它们成功而清楚地表述了常见问题及其解决方案。总的来说,常见概念、描述这些概念的词汇以及将其联系在一起的语言是所有采用这些设计和实践的学科和领域的基础。 Christopher Alexander 关于建筑物和城市设计的研究通常被认为是基于模式的思维最早的成果(请参阅参考资料)。他提出了术语“模式语言”,以此代表他认为人类进行设计的能力和使用语言的能力都是天生的这一信念。 很多学科都在使用模式和模式语言的概念,包括从生理学和流程到项目治理和软件工程等领域。在 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides(经常将他们称为 Gang of Four)的“Design Patterns: Elements of Reusable Object-Oriented Software”一书出版后,软件设计模式得到了广泛的认可和使用。 软件社区目前正使用模式来解决在软件生命周期中碰到的不断重复的问题,包括软件体系结构和设计,以及近来的软件开发流程和拓扑。这些模式全面捕捉了一个知识体系,以标识我们对可以实现设计良好的软件解决方案的结构和机制的理解。 模式经常被定义为“泛型化的、命名的问题到解决方案的映射”。它捕捉在特定环境中重复出现的问题的成功解决方案。 通常使用与表 1“模式模板”中描述的模板类似的模板来记录软件模式。 表 1. 模式模板 内容 说明 名称: 用于进行标识的名称 问题: 在领域中重复出现的问题 解决方案: 该问题的最佳实践解决方案 结果: 所建议的解决方案的优点和缺点 示例 一些已经应用了所建议的解决方案的示例 软件模式提供了一个在架构师和设计人员中捕捉知识和经验的机制。它们提供了一种公共语言,可促进对其他地方成功应用的方法的重用,从而为软件项目带来以下方面的好处:风险更低、质量更好且交付时间更短。 而在另一方面,反模式则记录出现错误的情况。对数百个软件开发项目的各种调查勿庸置疑地证实了软件开发会出现错误(实际上经常是这样)。研究表明每六个项目中就有五个会不成功:交付远远超过预期预算、严重滞后或被取消。这就表明可能(至少)值得投入精力研究一下老是失败而很少成功的原因(注重 Bitter Java 的作者 Bruce Tate 在他的 developerWorks 文章中说明了为什么反模式是设计模式的必要和互补的同伴——有关更多信息,请参阅参考资料)。
应该对这些重复失败的软件开发项目或“反解决方案”加以研究,以收集关于出现了什么问题以及为什么会这样的有用知识。很显然,只对错误的原因进行分类并不一定非常有用,而还应研究如何加以避免以及出现时如何恢复。系统化后,这个知识集合可以提供软件模型的有价值的扩展(归类为反模式)。 反模式 使用非常频繁,但主要是问题的无效解决方案。这个术语最初是用于指示设计模式出现了错误。与模式类似,反模式的使用也扩展到了软件开发的各个阶段,并深入到了其他领域中。反模式记录常见的对效率有负面影响的重复解决方案。它们通常捕捉重构解决方案描述,说明如何更改反模式,以得到更为稳定的解决方案。反模式通常使用模板进行描述,在其中标识症状、结果、根本原因和可能的解决方案。尽管与模式相比,反模式的研究并不很广泛,相关文档也不多,但软件领域对其中一些具有引人瞩目的反模式(如分析停顿、Blob、意大利面条式代码和“烟囱”系统)已耳熟能详。表 2 提供了一些这些示例的概述,这些示例均摘自 Brown 等的关于反模式的书中(有关更多信息,请参阅参考资料部分)。 表 2. 已知反模式的示例
错误类别 反模式 描述 设计 Blob 一个大型类具有太多的属性,且是系统的“核心”所在 设计 Poltergeists 非必要类且抽象过多 结构 意大利面条式代码 程序代码没有结构(很多 goto 语句) 结构 “烟囱”系统 应用程序是唯一的也是孤立的 技术 Wolf ticket 声明具有开放性的技术并与标准测试不相符 技术 不断退化模式 试图使用最新的版本 重用 剪切与粘贴 软件错误被复制 重用 Golden hammer 强制所有内容适应一个选定的工具
反模式为什么重要?反模式是用于防止问题的工具,可在问题出现之前对其进行标识,并能提供关于如何防止其发生的知识。通过将错误原因正式地系统化,我们可以更轻易对其加以理解。一旦出现问题,反模式可以提供帮助,能说明如何从其进行恢复。 简要总结一下,反模式包括以下元素:
  • 关于不能工作的方案的记录
  • 常见术语表
  • 具体的修复方法
  • 环境的描述和备选解决方案
  • 可能成为将来的反模式的热门解决方案
图 1 说明了模式和反模式之间的区别。模式从试图解决的问题开始,记录针对此问题的可重复成功解决方案。此解决方案可带来一些好处、相应的结果以及可能会有一些问题。反模式说明对效率具有负面影响的常用的问题解决方案。它描述导致出现问题的原因,并说明如何防止或对解决方案进行修正。 解析SOA反模式(1) 图 1. 模式与反模式(摘自 Brown 等的“AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis”) QQread.com 推出各大专业服务器评测 Linux服务器的安全性能 SUN服务器 HP服务器 DELL服务器 IBM服务器 联想服务器 浪潮服务器 曙光服务器 同方服务器 华硕服务器 宝德服务器 了解不同的面向服务的体系结构 (SOA) 反模式,这些反模式对通常出现的会产生确定性负面结果的情形或解决方案进行了描述。随着越来越多的企业开始大举从 Web 服务转向 SOA,引入、采用和成功实现 SOA 方面的各种障碍变得越来越明显。其中一些障碍与导致过去的要害活动失败的因素类似;而其他障碍则是 SOA 特有的。对这些障碍和最差实践进行记录,将帮助顾问、架构师和专业人员不再犯同样的错误,并学习如何避免这些问题的发生。此处汇集和说明的反模式是由作者通过作为 IBM 架构师的个人经验、研究过去和当前的 SOA 应用案例以及通过分析那些参与客户 SOA 应用的技术先驱提供的信息而得到的。 模式与反模式 “示例不是另一种学习的方法,而是学习的唯一方法。”——阿尔贝特•爱因斯坦 模式和模式语言捕捉并正式地将良好设计和基于经验的最佳实践系统化,以供其他人员对其进行重用。它们成功而清楚地表述了常见问题及其解决方案。总的来说,常见概念、描述这些概念的词汇以及将其联系在一起的语言是所有采用这些设计和实践的学科和领域的基础。 Christopher Alexander 关于建筑物和城市设计的研究通常被认为是基于模式的思维最早的成果(请参阅参考资料)。他提出了术语“模式语言”,以此代表他认为人类进行设计的能力和使用语言的能力都是天生的这一信念。 很多学科都在使用模式和模式语言的概念,包括从生理学和流程到项目治理和软件工程等领域。在 Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides(经常将他们称为 Gang of Four)的“Design Patterns: Elements of Reusable Object-Oriented Software”一书出版后,软件设计模式得到了广泛的认可和使用。 软件社区目前正使用模式来解决在软件生命周期中碰到的不断重复的问题,包括软件体系结构和设计,以及近来的软件开发流程和拓扑。这些模式全面捕捉了一个知识体系,以标识我们对可以实现设计良好的软件解决方案的结构和机制的理解。 模式经常被定义为“泛型化的、命名的问题到解决方案的映射”。它捕捉在特定环境中重复出现的问题的成功解决方案。 通常使用与表 1“模式模板”中描述的模板类似的模板来记录软件模式。 表 1. 模式模板 内容 说明 名称: 用于进行标识的名称 问题: 在领域中重复出现的问题 解决方案: 该问题的最佳实践解决方案 结果: 所建议的解决方案的优点和缺点 示例 一些已经应用了所建议的解决方案的示例
软件模式提供了一个在架构师和设计人员中捕捉知识和经验的机制。它们提供了一种公共语言,可促进对其他地方成功应用的方法的重用,从而为软件项目带来以下方面的好处:风险更低、质量更好且交付时间更短。 而在另一方面,反模式则记录出现错误的情况。对数百个软件开发项目的各种调查勿庸置疑地证实了软件开发会出现错误(实际上经常是这样)。研究表明每六个项目中就有五个会不成功:交付远远超过预期预算、严重滞后或被取消。这就表明可能(至少)值得投入精力研究一下老是失败而很少成功的原因(注重 Bitter Java 的作者 Bruce Tate 在他的 developerWorks 文章中说明了为什么反模式是设计模式的必要和互补的同伴——有关更多信息,请参阅参考资料)。 应该对这些重复失败的软件开发项目或“反解决方案”加以研究,以收集关于出现了什么问题以及为什么会这样的有用知识。很显然,只对错误的原因进行分类并不一定非常有用,而还应研究如何加以避免以及出现时如何恢复。系统化后,这个知识集合可以提供软件模型的有价值的扩展(归类为反模式)。 反模式 使用非常频繁,但主要是问题的无效解决方案。这个术语最初是用于指示设计模式出现了错误。与模式类似,反模式的使用也扩展到了软件开发的各个阶段,并深入到了其他领域中。反模式记录常见的对效率有负面影响的重复解决方案。它们通常捕捉重构解决方案描述,说明如何更改反模式,以得到更为稳定的解决方案。反模式通常使用模板进行描述,在其中标识症状、结果、根本原因和可能的解决方案。尽管与模式相比,反模式的研究并不很广泛,相关文档也不多,但软件领域对其中一些具有引人瞩目的反模式(如分析停顿、Blob、意大利面条式代码和“烟囱”系统)已耳熟能详。表 2 提供了一些这些示例的概述,这些示例均摘自 Brown 等的关于反模式的书中(有关更多信息,请参阅参考资料部分)。 表 2. 已知反模式的示例
错误类别 反模式 描述 设计 Blob 一个大型类具有太多的属性,且是系统的“核心”所在 设计 Poltergeists 非必要类且抽象过多 结构 意大利面条式代码 程序代码没有结构(很多 goto 语句) 结构 “烟囱”系统 应用程序是唯一的也是孤立的 技术 Wolf ticket 声明具有开放性的技术并与标准测试不相符 技术 不断退化模式 试图使用最新的版本 重用 剪切与粘贴 软件错误被复制 重用 Golden hammer 强制所有内容适应一个选定的工具
反模式为什么重要?反模式是用于防止问题的工具,可在问题出现之前对其进行标识,并能提供关于如何防止其发生的知识。通过将错误原因正式地系统化,我们可以更轻易对其加以理解。一旦出现问题,反模式可以提供帮助,能说明如何从其进行恢复。 简要总结一下,反模式包括以下元素:
  • 关于不能工作的方案的记录
  • 常见术语表
  • 具体的修复方法
  • 环境的描述和备选解决方案
  • 可能成为将来的反模式的热门解决方案
图 1 说明了模式和反模式之间的区别。模式从试图解决的问题开始,记录针对此问题的可重复成功解决方案。此解决方案可带来一些好处、相应的结果以及可能会有一些问题。反模式说明对效率具有负面影响的常用的问题解决方案。它描述导致出现问题的原因,并说明如何防止或对解决方案进行修正。 解析SOA反模式(1) 图 1. 模式与反模式(摘自 Brown 等的“AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis”)
上一篇:TIBCO强化专业服务以加速SOA方案提供与建置 人气:166
下一篇:BEA继续加快SOA的进程 人气:231
浏览全部软件工程的内容 Dreamweaver插件下载 常用网页广告代码全集
  最新网站源码 最新软件下载
2008-7-25 WikyBlog v1.7.0.1 多国语言版
2008-7-25 乐彼网上开店系统(56770 Eshop)
2008-7-25 赛特网站管理系统sitecms v3.6.0
2008-7-25 Modoer多功能点评系统 v1.0.1 Bu
2008-7-25 Shangducms Teamsuit! v1.1.0 开
2008-7-25 幻影动漫网视频系统(Ppdong) v1.
2008-7-25 acteecompany企业网站建设系统 v
2008-7-25 恒浪整合管理系统 ims v4.1 ACCE
2008-7-25 艺术图库系统 v1.0 beta
2008-7-19 UltraEdit 简体中文增强版 14.10
2008-7-19 CentOS 5.2 i386 LiveCD
2008-7-19 Snapture多功能相机 v1.4
2008-7-19 iAcces中文输入法 v1.0Build016
2008-7-19 Cookbook烹饪秘籍 v2.5
2008-7-19 苹果专用DVD转换工具 v1.1.59汉化
2008-7-19 Modem修复软件ZiPhone修改版04.0
2008-7-19 AgileMessenger即时通讯工具美化
2008-7-19 Sketches画图软件 v0.7b6破解版


  发表评论
姓 名: 验证码:
内 容:
[ 汉字翻译拼音 ] [ 广告代码 ] [ 符号对照表 ] [ 进制转换 ] [ 经典小工具 ] [ 个税计算 ] [ 汉字简繁转换 ] [ 普通单位换算 ] [ 公制单位换算 ]
[ 生辰老黄历 ] [ 国内电话区号 ] [ 国家代码与域名缩写 ] [ 文字加密解密 ] [ 健康查询 ] [ 万年历 ] [ 手机号码查询 ] [ ip搜索 ] [ Google PR查询 ]
业务联系 | 广告刊登 | 频道合作 | 投稿荐稿 | 联系方式 | 加入收藏 | RSS订阅
Copyright © 2000-2008 www.knowsky.com All rights reserved | 网络实名:动态网站制作指南 | 沪ICP备05001343号
ホームページ制作 不動産検索システム 求人情報
防水工事·改修工事 フットサル大会 探偵