运维自学-4-什么叫模块及“高内聚低耦合”

前言

开发常用术语之一,动不动就说“你把你的模块函数给我调用一下”,那啥叫“模块”呀?

又经常听别人说模块设计最好是“高内聚低耦合”,又懵!!

哎,开发之路漫长呀~~~

什么叫模块

在技术里面,模块其实是对某一种类型需求的抽象。举个例子来说,一个博客系统,博客的帖子是一个模块,评论是一个模块,用户是一个模块,帖子和评论又可以进一步抽象成内容模块。

简单的理解就是,把一类功能集中在一起,我们给它起一个专业术语叫“模块”。比如上面的博客系统是一个大模块,那么我再细分又成一个个模块,有帖子、评论、用户等。那是不是实现一个类的功能 ,只不过是一个大类和一个小类。

就像一个积木弄一个车,如果宏观看它就是一个积木车,细看就是一块一块小积木组成。

为什么要弄成模块,方便呀,维护方便,查找也方便,就图书馆分类那样,我把同一类的分一起是不是找出来容易。

像台式电脑组装一样,一个大零件是不是可以看成一个模块,哪个坏了换哪个就行,其它不受影响。

模块分类:

模块的分类看你是从架构层面看还是从业务层面看。

比如说从架构层面看,一个普通的博客网站可以看成三层:

UI层(简单说就是前端看得见的东西)

业务逻辑层(简单来说就是实现一些功能的代码)

数据访问层(就是对数据库进行操作的代码)

其中UI层包含帖子列表模块和博客文章阅读模块;业务逻辑层则是帖子业务模块、用户业务模块。

如果从业务层面看,包含博客阅读模块和后台模块,更偏向功能的分类。

什么是高内聚低耦合

高内聚低耦合是架构里面的概念。因为架构设计,需要把大的系统拆分成小的模块,拆分后,还要通过约定的协议通信。典型的有前后端分离然后通过REST API通信,还有像类库之间直接通过公开的方法调用。

低耦合意思是项目没有什么依赖,改动互相不受影响。比如说前端和后端之间通过API通信,只要API不变,无论你后端用什么语言,跟前端都没关系。

高内聚指的是一个模块都是关系很紧密的代码,比如用户模块,所有用户操作的功能都在用户模块里面,关系紧密,也不需要依赖于其他模块。

什么叫REST API我将在后面会讲

举个例子也是PC电脑组装,你一块一块零件,怎么把零件连在一起,还得加块主板不就OK了吗。主板就像公开的方法,你需要的时间,拿到权限就可以使用。

你可能感兴趣的:(运维自学-4-什么叫模块及“高内聚低耦合”)