演化架构与紧急设计:研究架构和设计 - 编程入门网
UP 把架构定义为 ‘环境中最高级别的系统概念。软件 系统的架构(在特定时间点上)是通过接****互的重要组件的组织或结构,这些 组件由越来越小的组件和接口组成。’”
如上所述,此定义在应用程序架构领域内非常恰当。虽然有些含糊,但是它捕 捉到了架构职责的本质:最高级别的概念。 Fowler 随后引用了 Ralph Johnson 的话,Ralph Johnson 在此邮件列表的回 复中对前面的定义提出了争议 : “更好的定义是:‘在大多数成功的软件项目中,从事该项目的专家开发人员 对设计系统的设计存在共识。这种共识被称为 “架构”。这种共识包括如何将系 统分为组件以及组件如何通过接口进行交互。’” Johnson 提出了一个很好的观点,强调软件开发对通信的依赖要多于对技术的 依赖,而该架构实际上代表关于系统的共识,而不是特定于语言、框架和其他短 暂存在的技术。 演化架构与紧急设计:研究架构和设计(2)时间:2011-05-18 IBM Neal Ford在前述论文中,Fowler 自己提供了一个我最喜欢的架构定义: “架构是重要的事物,无论它是什么。” 这个定义有一点含糊,但同时也是描述性的。关于架构和设计的许多争论都反 复思考对于重点的误解。对于业务分析师和企业架构师来说,他们所认为的重要 内容是有差别的。此定义很好地概况了这样一个概念:您必须在自己的环境中 定 义术语,然后才可以尝试定义其他内容。 Fowler 的定义还强调了定义像架构一样微妙的内容的另一个重要方面。“重 要内容” 不仅因个人和团体而异;这些差别实际上可能互相排斥。例如,实际上 所有 SOA 都在灵活性与速度之间实现了一种平衡。现在使用的旧客户机/服务器 系统的速度几乎肯定比取代它的基于 Web 的、portlet 式引擎、基于服务的版本 快。除非新应用程序是由很糟的开发人员编写的,否则提供灵活性的附加层意味 着用户的响应时间将增加,使响应变得更慢。架构师可能会对用户说,“顺便说 一句,我们正在安装的新 SOA 内容将为我们提供更多好处,但是您的工作现在将 花费更多时间,抱歉”。可能那就是架构师比开发人员工资高的原因。 然后就剩下我特别喜欢的架构定义: “以后很难更改的内容。” 此定义最符合演化架构的概念。演化架构中的核心理念之一是尽可能晚地推迟 决定,这将允许您替换在最近的体验中表现更好的其他方法。许多此样式的架构 的构建块出现在整个系列文章中并且推动了本系列的创作。 在停止讨论架构之前,如果我不讨论 “架构师” 这个职位,就是不负责任。 令人力资源部门苦恼的是这个行业中有这样一个定义糟糕的职位。许多组织都希 望提拔它们最好的开发人员 — 对于以后很难更改的内容作出重要决定的人员 — 但是除了 “架构师” 之外都没有一个恰当的行业术语,也没有通用的职位描述 ,因此每家公司都定义此角色的含义。某些架构师类似于电影黑客帝国第二部结 束时的 Architect(Fowler 将其归类为 Architectus Reloadus)。这些架构师 最后一次编写代码是在十多年以前,而现在他们为您的公司作出重要决定。他们 使用的惟一一个软件开发工具是 Visio。 另一种架构师角色是 Fowler 称为 Architectus Oryzus(以我的一个同事 David Rice 命名)的角色。这些架构师与处理最困难部分的其他开发人员合作, 积极地向项目贡献代码。他们的职责还包括与其他项目相关人员交流以确保每个 人都具有相同的看法、使用相同的定义并且理解他们需要理解的系统的各部分。 很明显,这种活跃的角色对于实现演化架构目标至关重要,并因此将在本系列中 反复出现。 定义设计 大多数开发人员都已经有非常好的设计感觉,因 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |