前言
为解决软件的高耦合、低内聚、无重用的3大问题,现如今,组件化与模块化的开发方式已经成为开发者必备技能。
什么是组件化
- 最初的目的是代码重用,功能相对单一或者独立。在整个系统的代码层次上位于最底层,被其他代码所依赖,所以说组件化是纵向分层。
- 就是"基础库"或者“基础组件",意思是把代码重复的部分提炼出一个个组件供给功能使用。
- 使用场景 :组件是对一些重复代码块进行封装(例如:按钮、输入框、选择框)。
什么是模块化
- 最初的目的是将同一类型的代码整合在一起,所以模块的功能相对复杂,但都同属于一个业务。不同模块之间也会存在依赖关系,但大部分都是业务性的互相跳转,从地位上来说它们都是平级的。
- 就是"业务框架"或者“业务模块",也可以理解为“框架”,意思是把功能进行划分,将同一类型的代码整合在一起,所以模块的功能相对复杂,但都同属于一个业务。
- 使用场景:按照项目功能需求划分成不同类型的业务框架(例如:注册、登录、外卖、直播…)
组件和模块的区别
-
组件:就像一个个小的单位,多个组件可以组合成组件库,方便调用和复用,组件间也可以嵌套,小组件组合成大组件。
-
模块:就像是独立的功能和项目(如淘宝:注册、登录、购物、直播…),可以调用组件来组成模块,多个模块可以组合成业务框架。
为什么要使用组件化和模块化?
-
开发和调试效率高:随着功能越来越多,代码结构会越发复杂,要修改某一个小功能,可能要重新翻阅整个项目的代码,把所有相同的地方都修改一遍,重复劳动浪费时间和人力,效率低;使用组件化,每个相同的功能结构都调用同一个组件,只需要修改这个组件,即可全局修改。
-
可维护性强:便于后期代码查找和维护。
-
避免阻断:模块化是可以独立运行的,如果一个模块产生了bug,不会影响其他模块的调用。
-
版本管理更容易:如果由多人协作开发,可以避免代码覆盖和冲突。
总结
- 其实组件相当于库,把一些能在项目里或者不同类型项目中可复用的代码进行工具性的封装。
- 而模块相应于业务逻辑模块,把同一类型项目里的功能逻辑进行进行需求性的封装。