对组件、模块、子系统、系统、框架、架构 定义浅析

内容总结自 极客专栏

模块与组件

模块组件两个概念在实际工作中很容易混淆,我们经常能够听到类似这样的说法:

  • MySQL 模块主要负责存储数据,而 Elasticsearch 模块主要负责数据搜索。
  • 我们有安全加密组件、有审核组件。
  • App 的下载模块使用了第三方的组件。

但是实际上只要认识到模块和组件都是系统的组成部分,只是从不同的角度拆分系统就容易理解了。
从逻辑功能的角度来拆分系统后,得到的单元就是“模块”,从物理的角度来拆分得到的单元就是“组件”。划分模块的主要目的是职责分离;划分组件的主要目的是单元复用,不要太纠结名词。

系统与子系统

系统是由一群有关联的个体组成的,没有关联的个体推在一起不能称之为一个系统,一个系统的能力不是各个个体的能力之和,而是通过这些个体的相互协作产生了新的能力。比如汽车能够载重前进,而发动机、变速器、等临件本身不具备这些能力。
子系统与系统的定义一样,只是观察的角度有差异,一个系统可能是另一个更大系统的子系统。

以微信为例:
1.微信本身是一个系统,包含聊天、朋友圈、支付等系统
2.朋友圈这个系统 又包含了 动态、评论、点赞等子系统
3.评论这个子系统 可能又包含了 发布审核、发布、存储、防刷、屏蔽等子系统
4. 评论审核子系统不再包含业务意义上的子系统,而是包括各个模块或者组件,这些模块或者组件本身也是另外一个维度上的子系统。例如Mysql、Redis是存储子系统,但不是业务子系统。

框架与架构

框架是一个组件规范,例如,MVC就是一种常见的开发规范;
框架是提供基础功能的产品,例如,Spring MVC 是 JavaWeb 常用的MVC开发框架;

框架是规范及基础,则架构是按照这个规范、基础对系统做规划设计;
规范也是约束,而架构是在约束之内设计,架构的目的是使系统更具拓展性。

总结

来自微信公众号:《代码荣耀》总结的一句话

架构是顶层设计;框架是面向编程或配置的半成品;组件是从技术维度上的复用;模块是从业务维度上职责的划分;系统是相互协同可运行的实体。

  • 15
    点赞
  • 95
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值