如何实现idl及tlb中描述的接口_如何做架构设计?六视图法介绍

什么是架构设计

架构设计的定义很多,没有一个权威的说法,个人对此有两种理解

  • 针对应用主题,进行系统建模,实现,部署的技术和行为指导
  • 在经验的基础上提炼出普遍有效的技术框架和规范

架构设计要能落地,夸夸其谈,高谈阔论,生造一大堆概念,最后不能落实就成了 PPT 架构师

一言以蔽之:架构设计不是一种方法论,而是一种实践性的工作

架构设计和系统设计有什么不同

在成为架构师之前,应该已经有了足够的系统设计经验,那么这两者有什么区别呢?

  • 系统设计是架构设计的一部分
  • 系统设计指导程序员的开发
  • 架构设计的范围更广,对需求建模,软件开发,系统测试,运维部署都具有指导性

如何进行架构设计

怎么样做架构设计?这里分 3 个主题来展开

  • 指导原则
  • 方法论
  • 工具

架构设计的指导原则

  • 分而治之:无论多么复杂的系统,细分以后都是由简单的部分组成的
    • 横向切分
    • 纵向切分
  • 抓关键
    • 关键需求
    • 关键技术

横向切分

  • 按软件过程的生命周期进行切分
    • 需求分析
    • 系统设计
    • 测试验收
    • 部署实施
  • 按功能进行切分
    • 功能性需求
    • 非功能性需求
      • 性能
      • 扩展性
      • 移植性

纵向切分

  • 建立软件系统的依赖层次
  • 避免双向依赖和跨层次依赖
  • 高内聚,低耦合

架构设计方法论:六视图法

这是我在多年架构设计的实践中总结出来的六视图法,针对具体的项目是可以裁剪的,不一定每个项目都需要六个视图

  • 概念视图
  • 物理视图
  • 网络视图
  • 数据视图
  • 设计视图
  • 运行视图

概念视图

  • 描述整个软件系统的组成部件及其相互依赖关系,数据流向
  • 侧重于业务主题
  • 面向目标用户

物理视图

  • 描述软件系统的物理环境
  • 指导部署和运维

网络视图

  • 描述进程间如何交互
  • 私有协议
    • 协议栈
    • 连接方式
    • 编码字符集
    • 同步与异步
    • 超时与异常
    • 接口规范
  • 消息中间件
  • 数据库

数据视图

  • 实体关系模型
    • 识别实体
    • 数据库设计范式
  • 持久化框架
  • 缓存的应用
  • Nosql数据库

设计视图

  • 描述系统实现
  • 面向对象的设计
    • 单一职责原则:一个类仅有一个职责
    • 开闭原则:对扩展开放,对修改关闭
    • 里氏替换原则:能使用父类的地方也可以使用子类
    • 依赖倒置原则:依赖接口而不是具体的类
    • 接口分隔原则:设计多个专门的接口好于设计一个大而全的接口
  • 活动图、状态图和序列图
  • 设计模式

运行视图

描述系统的运行状态

  • 交互与顺序
    • 模块之间
    • 进程之间
  • 单线程与多线程
  • 状态变迁与场景恢复
    • 系统崩溃后恢复到崩溃时的场景

架构设计工具

  • 一图抵万言
  • UML统一建模语言
  • 架构设计模板
a8e59e9119530e4edf5492eb8951c1ca.png

架构设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值