方法论:失落的一角 可能大多数EA框架都有一个共同的问题,EA框架的规定性不强——它们为你提供了工具,但是并没有告诉你工具的使用方法。要想成功地创建并实施一个架构,架构小组必须遵循一个流程,这个流程不仅仅是一个框架,而是方法论。你可以把任何一种方法论看成是一个食谱,更确切点是很多食谱,一个机构可以根据这些食谱实现自己的特殊目的。 架构作为一种实践,并适用于软件开发这样的方法论。
要想建成好的架构,没有简单的方法。我们在ZapThink架构课程上曾经说过,要是有“SOA向导”,只要按一下就万事俱备了!但是这种愿望永远无法实现,因为根本没有这样的良方。在现实中,你必须根据不同机构的不同情况,……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
方法论:失落的一角
可能大多数EA框架都有一个共同的问题,EA框架的规定性不强——它们为你提供了工具,但是并没有告诉你工具的使用方法。要想成功地创建并实施一个架构,架构小组必须遵循一个流程,这个流程不仅仅是一个框架,而是方法论。你可以把任何一种方法论看成是一个食谱,更确切点是很多食谱,一个机构可以根据这些食谱实现自己的特殊目的。
架构作为一种实践,并适用于软件开发这样的方法论。要想建成好的架构,没有简单的方法。我们在ZapThink架构课程上曾经说过,要是有“SOA向导”,只要按一下就万事俱备了!但是这种愿望永远无法实现,因为根本没有这样的良方。在现实中,你必须根据不同机构的不同情况,恰当地设计并实施SOA,因为具体的步骤取决于具体的业务问题,现有的技术环境以及企业中的文化和政治问题。
因为在实施SOA的过程中,没有像向导这样的良方,或者其它类似的架构模式。但是这并不意味着没有更为有效的架构方法。毕竟,架构包含了许多最佳实施,所以一个详细描述最佳实施的资源可以被看做是一种方法论。问题是,架构最佳实施并不是绝对的,它取决于身边的具体问题——为你的工作选择正确的工具。
这又把我们引回了先前的那个问题。事实上,架构包含了很多依赖问题的最佳实施。这是实施架构过程中不可避免的问题。记住,一个EA框架就是一套工具,但是对于复杂的任务来说,工具本身无法完成这个任务;只有使用工具的人,知道如何完成任务。一个方法论可能是包含一系列食谱,但是没有一本食谱可以让你变成一名厨艺高手,作为一种架构模式,SOA影响到框架和方法论,以便提供具体的技术——食谱中的调料。成功的架构依靠的是所有的这一切:工具、食谱、调料,最主要的是技能娴熟的设计师,这些设计师通常拥有丰富的知识、经验以及常识,足以灵活运用所有这些要素。
ZapThink采取的措施
有些设计师更多关注理论而不是实践,总是停留在很成功实施高的水平。这样的设计师通常醉心于对EA框架的研究,但是缺少实战经验或者不具备预言SOA的能力。与此完全相反的是,其他的设计师却对技术的细枝末节更为感兴趣。这些专业人士通常是开发商或者是最近转行到设计师领域的集成专家,但是和EA框架工具相比,这些集成专家似乎对ESB和行代码更为在行。大多数成功的SOA设计师都是将理论和实践结合在一起。那些搞理论研究的人选择能够解决当前问题的工具,并在SOA最佳实施的环境下使用这些工具。
我们提出的建议可能并不新颖,但是早在2006,我们在讨论如何在SOA中实施Zachman框架这一问题时就提出过这个建议。今天我们将这个建议推广到了整个EA框架,至少现在的设计师在设计架构时都会考虑到SOA。未来还有很多工作等着我们去做,但是将EA框架和SOA联系到一起为成功实施架构提供了一种方法论。敬请继续关注我们的栏目——这个领域也是ZapThink重点关注的话题。
相关推荐
-
华为软件开发云平台:“一多二全三高”能否满足企业的需求?
在2017年3月22日,华为青岛软件开发云上线大会上,华为也表示,中国的软件与信息服务业,2016年总收入达到4.9万亿,软件从业人员是570万。
-
成为Java开发禅师的7个技巧
在旧金山举行的JavaOne 2015上,Martijn Verburg抛开了他Diabolical Developer(魔鬼开发者)的身份,以禅师的面目出现,用比喻的方式向Java开发者介绍了相关的注意事项。
-
软件开发者:适应性决定你的前途
作为有15年经验的软件工程师的Bernard Mesa,加入了TCI,担当据库管理员和中间件工程师的职位,角色转变,对于Bernard Mesa是好是坏?
-
敏捷技术不仅仅应用于软件开发
如果有能够衡量敏捷是否成功的终极因素,那就是敏捷方式持续改进软件开发的外围系统。