演化架构与紧急设计: 研究架构和设计
2009-11-05 00:00:00 来源:WEB开发网然后就剩下我特别喜欢的架构定义:
“以后很难更改的内容。”
此定义最符合演化架构的概念。演化架构中的核心理念之一是尽可能晚地推迟决定,这将允许您替换在最近的体验中表现更好的其他方法。许多此样式的架构的构建块出现在整个系列文章中并且推动了本系列的创作。
在停止讨论架构之前,如果我不讨论 “架构师” 这个职位,就是不负责任。令人力资源部门苦恼的是这个行业中有这样一个定义糟糕的职位。许多组织都希望提拔它们最好的开发人员 — 对于以后很难更改的内容作出重要决定的人员 — 但是除了 “架构师” 之外都没有一个恰当的行业术语,也没有通用的职位描述,因此每家公司都定义此角色的含义。某些架构师类似于电影黑客帝国第二部结束时的 Architect(Fowler 将其归类为 Architectus Reloadus)。这些架构师最后一次编写代码是在十多年以前,而现在他们为您的公司作出重要决定。他们使用的惟一一个软件开发工具是 Visio。
另一种架构师角色是 Fowler 称为 Architectus Oryzus(以我的一个同事 David Rice 命名)的角色。这些架构师与处理最困难部分的其他开发人员合作,积极地向项目贡献代码。他们的职责还包括与其他项目相关人员交流以确保每个人都具有相同的看法、使用相同的定义并且理解他们需要理解的系统的各部分。很明显,这种活跃的角色对于实现演化架构目标至关重要,并因此将在本系列中反复出现。
定义设计
大多数开发人员都已经有非常好的设计感觉,因此我不会花大量时间来定义它。它表示如何整合一款软件的具体细节。它包括常见的设计模式、重构、框架和开发人员的其他日常关注点。设计大致包括 BDUF(Big Design Up Front)与 Cowboy Hacking 之间的内容,如图 1 所示:
更多精彩
赞助商链接