563 字
3 分钟
软件架构/框架/中间件/构件

复习#

核心问题:

  • 架构
  • 框架
  • 中间件
  • 构件

Q&A#

说出以上各概念的定义和差别

核心概念#

概念精确定义例子关键区分
软件架构系统的高层结构设计:有哪些部分、各自职责、如何交互、用什么技术前后端分离 + 微服务 + Redis 缓存是蓝图,不是代码;决定”怎么搭”
软件框架半成品代码骨架,规定程序结构,框架调用你的代码,你填业务逻辑Spring Boot、Vue、Flask在你的进程内;控制反转(IoC)
中间件独立部署的公共服务软件,位于应用与系统/应用之间,提供通用能力Redis、Kafka、Nginx、Tomcat在你的进程外;通过网络调用
构件可独立部署、有明确接口、可替换的软件单元用户服务、支付服务、Redis、Nginx是部署单元;模块不是
Spring 框架Java 后端框架,核心是 IOC 和 AOP@Autowired、@Transactional用反射管理 Bean,用动态代理实现 AOP

*最容易混淆的区分#

1. 架构 vs 框架#

  • 架构 = 设计图:决定”房子几层、什么风格”
  • 框架 = 预制钢架:决定”墙怎么砌、线怎么走”
  • 例子:架构说”前后端分离”,框架用 Vue + Spring Boot 实现。

2. 框架 vs 库#

  • 库:你调用它(工具箱)
  • 框架:它调用你(流水线)
  • 例子:jQuery 是库,Vue 是框架。

3. 中间件 vs 框架/库#

  • 框架/库:嵌入你的应用进程
  • 中间件:独立进程,独立部署
  • 例子:Spring Boot 在你的进程里;Redis 是独立进程,你的程序通过网络连它。

4. 构件 vs 模块#

  • 模块:代码内的组织单位,不能独立部署,如 utils.py
  • 构件:可独立部署的软件单元,如”用户服务”
一句话总结

模块是代码内的组织,构件是部署时的单元。

5. 构件 vs 中间件#

  • 中间件是一种提供通用能力的构件
  • 构件更宽泛:服务、中间件、数据库都可叫构件

终极总结

架构是蓝图,框架是骨架,中间件是水电煤,构件是积木。
Spring 用反射和动态代理,把骨架和积木组装起来。

软件架构/框架/中间件/构件
https://entropy.lighterever.com/posts/软件架构:框架:中间件:构件/
作者
Lighterever
发布于
2026-09-13
许可协议
CC BY-NC-SA 4.0