MMN实用架构过程概览

简介:

MMN(Macro-Micro-Nano,即宏观-微观-纳米)实用架构过程初步体现了我的架构观:即以实用主义态度把握架构原则与本质思想,从系统的各个层次剖析架构,提供一个具有指导意义和实施价值的架构过程,采取简略、敏捷而又全面的方式,对软件系统进行架构与设计。架构的步骤必须是清晰可见,每一步都有明确的目标与实际的指导意义。MMN实用架构过程既有大局观的思考与基本原则指导,又要着眼于细处,突出强调宏观、微观与纳米粒度在架构视图中的合力,既关注宏观的体系架构,又重视层、模块、组件之间的协作方式与公开的接口,同时还极度重视编码质量,并将这种细节的编码风格与重构模式纳入到架构体系中来。

对于MMN架构而言,因其关注的粒度和视角的区别,存在自上而下的层次模型,如下图所示:

mmn-level01

每个层次的关注点是不相同的。

宏观架构更多地是关注系统的质量属性,例如可伸缩性、安全、性能、可扩展性。而从功能需求的角度而言,则需要对业务进行建模,分解子系统、层次以及包与模块。宏观架构涉及到架构风格、应用类型、技术选型、总体设计原则等诸多架构因素。宏观架构还必须明确架构目标与关键的用例场景,识别系统的热点与架构风险,确定影响架构质量的因素,并制定对应的架构策略。

微观架构更多地需要关注宏观架构的实现,但不仅限于此。它需要考虑功能的重用性与可扩展性,考虑服务接口的定义。微观架构会根据架构风格、应用类型以及部署方式来确定对资源的处理方式、对数据的处理方式以及对消息的传递方式。从逻辑架构来看,微观架构将深入进行领域分析,完成领域的建模,以获得业务模块的分解。同时还需要针对应用架构进行模块和组件的分解,并定义公开接口,考虑模块(组件)之间的依赖关系和接口的调用方式。微观架构还需要考虑物理模型,定义物理部署模型,确定资源的分配,以及通信机制与运行时的执行视图。整体而言,微观架构是模块级与组件级的视图,至于适当引入的分析与设计,则针对主要的用例场景以及核心类。

纳米架构可以说是代码级的架构,体现在代码的清晰度、健壮性以及可读性。纳米架构极为重视方法与类的粒度,以及类与类之间的协作。纳米架构与编码风格有关,重视代码结构的改善与重构。纳米架构需要考虑对象职责的分配与协作,寻找功能的变化点,准确地运用设计模式和面向对象设计思想。在纳米架构中,还需要考虑配置管理与持续集成的方式。

MMN架构不仅仅是自上而下的过程,不同的视图之间还存在交集。这些交集主要体现在原则、模式和方法学之间的交叉,如下图所示:

mmn-level02

无论架构处于哪个层面下,均存在统一的原则需要遵循,例如SRP、DRY以及关注点分离原则。这些原则既体现了一种整体的核心思想,同时又适合各种粒度(层级、模块级、组件级、对象级)的设计。模式同样如此。例如架构模式中,分层模式、管道-过滤器模式、微核模式等都是在宏观层面上提出了成熟的解决方案,但架构模式中的MVC模式、代理模式、PAC模式等,又都可以运用在层或者模块内,指导对象之间的协作、职责的分离与抽象。对于方法学而言,我们既可以运用EA的方法学,例如Zachman框架,也可以运用DDD(领域驱动设计)或者TDD(测试驱动开发),以及ICONIX。甚至于采用CRC卡来帮助我们明确组件或对象之间的职责协作。

实用架构过程以宏观、微观与纳米架构作为关注的视点,指导架构师完成软件系统架构的构建,形成统一而又层次分明的过程体系。实用架构过程包括定义架构概图、架构全局分析、构建概念模型、创建物理视图与逻辑视图,以及代码视图与设计模型。 以下是整个架构过程的概要流程图:

mmn








本文转自wayfarer51CTO博客,原文链接:http://blog.51cto.com/wayfarer/523616,如需转载请自行联系原作者

相关文章
|
1月前
|
存储 SQL 分布式计算
TiDB整体架构概览:构建高效分布式数据库的关键设计
【2月更文挑战第26天】本文旨在全面概述TiDB的整体架构,深入剖析其关键组件和功能,从而帮助读者理解TiDB如何构建高效、稳定的分布式数据库。我们将探讨TiDB的计算层、存储层以及其他核心组件,并解释这些组件是如何协同工作以实现卓越的性能和扩展性的。通过本文,读者将能够深入了解TiDB的整体架构,为后续的学习和实践奠定坚实基础。
|
8月前
|
供应链 监控 数据可视化
|
8月前
|
供应链 架构师 双11
|
10月前
|
前端开发 定位技术 项目管理
【架构设计 领域驱动开发 二】基本概念概览
【架构设计 领域驱动开发 二】基本概念概览
61 0
|
11月前
|
架构师
「TOGAF架构框架」ArchiMate视图指南(1):基本视图概览
「TOGAF架构框架」ArchiMate视图指南(1):基本视图概览
|
11月前
|
存储 设计模式 缓存
【云应用架构】Azure 云设计模式概览
【云应用架构】Azure 云设计模式概览
|
11月前
|
架构师
「架构框架」ArchiMate视图指南(1):基本视图概览
「架构框架」ArchiMate视图指南(1):基本视图概览
|
11月前
|
负载均衡 网络协议 NoSQL
【服务网格架构】Envoy架构概览(10):热启动,动态配置,初始化,排水,脚本
【服务网格架构】Envoy架构概览(10):热启动,动态配置,初始化,排水,脚本
|
11月前
|
JSON 缓存 负载均衡
【服务网格架构】Envoy架构概览(9):访问日志,MongoDB,DynamoDB,Redis
【服务网格架构】Envoy架构概览(9):访问日志,MongoDB,DynamoDB,Redis
|
11月前
|
网络协议 数据可视化 NoSQL
【服务网格架构】Envoy架构概览(8):统计,运行时配置,追踪和TCP代理
【服务网格架构】Envoy架构概览(8):统计,运行时配置,追踪和TCP代理