知识卡片
模块与组件的区分标准
内容
模块和组件都是拆分系统后的组成部分,区别在拆分角度——逻辑角度拆分得到”模块”,目的是职责分离;物理角度拆分得到”组件”,目的是单元复用、可替换。学生管理系统逻辑上拆成登录、成绩模块,物理上拆成 Nginx、Web服务器、MySQL 这些可替换单元。发散:这解释了”组件化”常伴随”可独立部署”诉求,而”模块化”更关注代码职责边界——两者常被混用,本质回答不同问题(谁负责什么 vs 什么能换掉)。
参考来源
- 位置:《从0开始学架构》第3章《01|架构到底是指什么?》"模块与组件"一节(源文件:_epub-src/OEBPS/Text/part0002_split_002.html)
- 结论依据:原文明确"从逻辑的角度来拆分系统后,得到的单元就是'模块';从物理的角度来拆分系统后,得到的单元就是'组件'。划分模块的主要目的是职责分离;划分组件的主要目的是单元复用",并以学生信息管理系统的逻辑/物理两种拆分方式举例,直接支撑本卡片结论。
- 原始内容:从逻辑的角度来拆分系统后,得到的单元就是"模块";从物理的角度来拆分系统后,得到的单元就是"组件"。划分模块的主要目的是职责分离;划分组件的主要目的是单元复用……这个系统从逻辑的角度来拆分,可以分为"登录注册模块""个人信息模块""个人成绩模块";从物理的角度来拆分,可以拆分为Nginx、Web服务器、MySQL。