1.2 架构落地方法

架构落地方法指的是通过架构设计一步步实现一个系统的指导体系。业界目前已经有不少成熟的架构落地方法论,其中比较流行的有面向对象的RUP、面向领域的DDD和企业架构框架TOGAF等。下面先对它们进行简要介绍。

1. RUP

RUP(Rational Unified Process)是面向对象的软件开发方法,主要包括4个阶段和9个核心工作流,如图1-2所示。同时,它融合了现代软件开发中的许多最佳实践,例如迭代开发、需求管理、构件的使用、UML等。RUP的优势在于有一个完整的指导过程,缺点主要在于以用例作为驱动,无法解决复杂系统的开发问题。

图1-2 RUP软件开发方法

2. DDD

DDD是随微服务兴起的一个面向领域的软件开发方法,包括战略设计和战术设计两个阶段,如图1-3所示。

图1-3 DDD软件开发方法

DDD的优点在于它是以领域驱动的,可以解决复杂系统的开发难题。但是,DDD也存在以下一些缺点。

一是重设计,轻过程。DDD战略设计和战术设计过程只是通过概念串联在一起,并没有像RUP那样提供一个完整的过程指导。

二是重概念,轻规则。虽然DDD中提出了许多有用的概念,如领域、子领域、限界上下文、聚合根等,但在实践中缺乏明确的步骤或规则来推导出它们。

三是重现在,轻过往。相比DDD,面向对象不论是在需求分析方面还是编程方面,都已经是一个非常成熟的范式,并且积累了大量的最佳实践。许多人认为DDD难以掌握,其实主要原因在于没有很好地建立起DDD与面向对象之间的关联。如果可以利用好过往的面向对象的经验,学习DDD会轻松很多。

3. TOGAF

TOGAF是业界非常知名的一个企业架构框架,属于架构中的架构,它提供了一种专门用于设计企业架构的标准流程——架构开发方法ADM作为其核心,如图1-4所示。目前,国内大多数金融企业的架构方法论均源自TOGAF。它的优点在于具有一个完整全面的架构设计原则和过程,并且非常理论化,其缺点也主要在于过于理论化,直接应用会难以落地。

本书后面将要介绍的架构落地方法,并不是一个全新创造出来的方法,它是把RUP、DDD和TOGAF的内容裁剪、组合而成的。同时,读者不用担心之前是否有RUP、DDD或者TOGAF相关的学习经验,后面章节会深入介绍DDD和TOGAF,并且介绍时主要侧重于应用实践,不会涉及太多理论知识。

图1-5展示了将要介绍的架构落地方法,包括需求分析、架构设计、系统实现和系统维护四个阶段。通过这个方法,我们可以逐步设计出一个复杂的系统。

图1-4 TOGAF架构开发方法ADM的内容框架

图1-5 架构落地方法