演化架构和紧急设计: 演化架构2011-08-18 IBM Neal Ford简介: 这一期的 演化架构和紧急设计 将会解决演化架构相关的各种主题,包括设计和架构之间的重 要区别(以及如何区分两者),您在创建企业级架构时遇到的某些问题,以及面向服务的架构中静态类型 和动态类型的区别。在 本系列的第一期 中,我推荐了软件世界中的一些架构定义。无论如何,如果您已经阅读过本系列 ,您会注意到我花费了大部分时间在设计上。我之所以这么做是基于以下几个原因:首先,在当前紧急设 计尚未被广泛关注时,软件世界里存在很多架构定义(良莠不齐);其次,在设计方面很多问题都有具体 的、不受环境限制的解决方案。架构往往还涉及到很多组织内的物理和逻辑基础设施,使其难以独立谈起 。关于本系列本 系列 旨在从全新的视角来介绍经常讨论但是又难以理解的软件架构和设计概念。通过具体示例, Neal Ford 将帮助您在演化架构 和紧急设计 的灵活实践中打下坚实的基础。通过将重要的架构和设计决 定推迟到最后责任时刻,您可以防止不必要的复杂度降低软件项目的质量。这一期填补了敏捷构架材料缺失的空白。在此我讨论的是如何分辨架构和设计,涵盖了一些广泛的架 构考虑,然后通过讨论版本控制端点,浅谈敏捷的面向服务架构(SOA)。分辨架构和设计Martin Fowler 对架构的定义(来自和他的对话中)是我认为最好的:架构就是完成之后很难更改的东西。所以这种东西应该尽可能越少越好。您可以想象一下架构和设计之间的交互,如图 1 中所示的关系:图 1. 架构和设计的关系