知识卡片
RUP、DDD、TOGAF三种架构落地方法论的优缺点对比
内容
业界三种成熟的架构落地方法论各有明确的优缺点,理解这些缺点比记住优点更有实践价值。RUP(Rational Unified Process)是面向对象的软件开发方法,包含4个阶段和9个核心工作流,融合了迭代开发、需求管理、UML等最佳实践;优势是提供了一套完整的指导过程,缺点是以用例为驱动,难以解决复杂系统的开发问题。DDD是随微服务兴起的面向领域方法,分战略设计与战术设计两阶段;优点是以领域驱动、能解决复杂系统难题,但存在三个具体缺点——”重设计轻过程”(战略设计和战术设计只靠概念串联,不像RUP那样有完整过程指导)、”重概念轻规则”(提出了领域、子领域、限界上下文、聚合根等有用概念,但缺乏明确步骤或规则去推导出它们)、”重现在轻过往”(相比已经积累了大量最佳实践的面向对象范式,DDD显得难以掌握,根本原因是没有把DDD与面向对象的经验很好地关联起来——如果善用面向对象的既有经验,学习DDD会容易得多)。TOGAF是”架构中的架构”,提供专门设计企业架构的标准流程(核心是架构开发方法ADM),国内多数金融企业的架构方法论都源自它;优点是架构设计原则和过程完整全面,缺点是过于理论化,直接应用难以落地。三者缺点呈现出一种互补关系:RUP缺完整的领域驱动能力,DDD缺完整的过程指导,TOGAF缺可落地的实操细节——这解释了为什么单独学任何一个都会碰壁,也是本书后续要”裁剪、组合”三者内容、而非从零发明一套新方法论的原因。可迁移启发:评估一套方法论是否适合当前项目,不要只看它解决了什么问题,更要看它明确暴露的缺点会不会正好卡在项目最需要的那个环节上。
结构图:
flowchart TB
R["RUP<br/>优:完整过程指导(4阶段9工作流)<br/>缺:用例驱动,难解复杂系统"]
D["DDD<br/>优:领域驱动,解复杂系统难题<br/>缺:重设计轻过程/重概念轻规则/重现在轻过往"]
T["TOGAF<br/>优:架构中的架构,原则过程完整(ADM)<br/>缺:过于理论化,难落地"]
R -.缺完整领域驱动.-> D
D -.缺完整过程指导.-> R
T -.缺可落地实操细节.-> R
T -.-> D
参考来源
- 位置:《架构师启示录:知识模型、落地方法与思维模式》第1章《架构认知框架概述》之"1.2 架构落地方法"(源文件:_epub-src/EPUB/xhtml/chapter3.xhtml)
- 结论依据:原文说明"RUP的优势在于有一个完整的指导过程,缺点主要在于以用例作为驱动,无法解决复杂系统的开发问题……DDD也存在以下一些缺点。一是重设计,轻过程……二是重概念,轻规则……三是重现在,轻过往……TOGAF……它的优点在于具有一个完整全面的架构设计原则和过程,并且非常理论化,其缺点也主要在于过于理论化,直接应用会难以落地", 直接支撑本卡关于三种方法论优缺点的结构图。
- 原始内容:本书后面将要介绍的架构落地方法,并不是一个全新创造出来的方法,它是把RUP、DDD和TOGAF的内容裁剪、组合而成的。