知识卡片
组件是软件的最小独立部署单元
内容
组件是整个软件系统在部署过程中能够独立完成部署的最小实体——在Java里是jar文件,在Ruby里是gem文件,在.Net里是DLL文件;编译运行语言的组件本质是一组二进制文件的集合,解释运行语言的组件则是一组源代码文件的集合,但无论具体形式如何,组件都是该语言体系下软件部署的最小单位。这些组件可以被链接成一个独立可执行文件,也可以汇总成.war这样的部署单元,还可以打包成.jar/.dll/.exe以可动态加载插件的形式独立部署——不管采用哪种部署形态,设计良好的组件都应该始终保持可被独立部署的特性,而这也就意味着这些组件应该可以被单独开发。发散:这条定义把”组件”从一个模糊的架构术语,收窄成一个可操作的判定标准——判断某个代码单元算不算一个好的组件,直接看它能不能脱离系统其余部分被单独编译、单独部署、单独交给不同团队开发,而不是看它在架构图上画了几个框。
参考来源
- 位置:《架构整洁之道》第12章《组件》引言(源文件:_epub-src/text/part0013_split_001.html)
- 结论依据:原文定义组件为软件部署过程中能独立完成部署的最小实体,列举Java/Ruby/.Net各自的组件形式,并明确指出设计良好的组件应始终保持可被独立部署、进而可被单独开发的特性,直接支撑本卡片结论。
- 原始内容:组件是软件的部署单元,是整个软件系统在部署过程中可以独立完成部署的最小实体……设计良好的组件都应该永远保持可被独立部署的特性,这同时也意味着这些组件应该可以被单独开发。