软件架构(software architecture)

初识软件架构设计

chemex

凡见诸相非相,即见如来~《金刚经》
凡事不拘泥于具体的形式,而是要理解表相背后的设计原理和思想

什么是软件架构

软件架构(software architecture)就是软件的基本结构。 图片来自维基百科。

Software Architecture

软件架构

  • 架构元素:软件系统的组成部分,子系统/组件/模块等。
  • 元素关系:

    • 静态关系:组合/关联/泛化等
    • 动态关系:架构元素如何依赖交互

软件架构是软件系统的基本结构,也是软件设计最核心的部分。软件架构包含架构元素和元素间关系,架构文档是最终交付的产物。 不同相关方的关注点不同,针对不同相关方在不同的阶段架构师会输出不同的架构视图。

四种核心架构思维

架构的本质是管理复杂度。抽象、分层、分治和演化是应对和管理复杂度的四种最基本武器。

如何成为架构师

什么是架构师

架构师是做架构设计、对系统架构负责的那个人。 架构师是一顶帽子,而不是一把椅子;架构师是一个角色而不是一个职位。

架构师应该有的重要思维

  • 分析思维(analytical thinking)
  • 批判性思维(critical thinking)
  • 不教条
  • 机构化思维
  • 工具化思维

如何成为架构师

  • 打好基本功,找准方向,砥砺前行。
  • 承担架构职责。

框架

框架是用来实现某一类应用的结构性的程序,是对某一类架构方案可复用的设计与实现。

框架设计时应遵循设计原则,定义好接口、规范,是架构师约束开发的主要手段。

框架 VS 类库

框架调用应用程序代码

应用程序代码调用类库的工具代码

架构师用框架保证架构的落地
架构师用工具提高开发效率