软件架构

1 简介

一直没有系统的学过软件工程相关的内容,因此关于软件架构设计更是没有一个系统的了解。在B站刷到一个视频我觉得讲的算是深入浅出,可以理解一个大概,这里就针对这个视频进行一个学习笔记的记录,视频链接在附录中

2 软件架构设计核心

简单的理解架构:应该拆分出哪一些组件,组件和组件之间应该怎样的衔接。

从软件开发到软件架构设计的思维转变,软件架构设计的核心关键有以下两个方面:

  • 大的问题(应用)分而治之(功能性,业务的理解)

    分为哪些业务模块或者业务组件(模块的分解),满足高内聚低耦合的要求

  • 底层用什么技术支撑(非功能性,与业务无关)

    • 开发框架,包括非功能性设计要求(如消息、日志、安全等组件)(Paas技术平台)
    • 底层IT基础设置部署架构(Iaas平台)

2.1 功能性应用架构

上图中上半部分就是功能性的应用架构示意图,也分为两个方面

  • 业务组件A、B、C、D的集成关系、交互接口(业务组件)
  • 上层应用存在业务流程的实现(交互)(应用)

针对业务组件D进行细化

  • 提供接口给其他组件
  • 消费其他组件的接口
  • 消费底层接口
  • 提供上层应用接口

附录: