高内聚、低耦合是什么?

g随着PMTalk版本的不断迭代,到如今咱们已经迭代到5.0了,上线了3年班,在这漫长的时间里,一个产品会在研发中、产品设计有什么问题呢?前端

这里的问题主要是包含三类react

1.技术人员不断变换,代码规范层次不齐小程序

不管是在大厂仍是在小团队,项目早期以快、业务实现为要求,好比高并发、数据仓库、风控控制都不会接入。后端

而互联网团队的开发人员、产品经理通常在职时间1-2年会正常生命周期,在系统尚未变现下、或探索期人员经历大量的变更。数组

因此代码的可维护性就愈来愈差,好比在PMalk咱们早期采用的JS、后续才使用react框架。微信

在项目早期团队为了快,使用开源系统作二次开发,但却为后面的迭代、优化埋下了定时炸弹。markdown

以致于如今的前端开发同窗找到我,常常会说需求能够先放下,咱们优先作重构吧,如今的代码看着太费时间了,先别说改。数据结构

2.业务发展的不明确,产品结构的混论架构

在早期PMTalk还只是一个提问发布的论坛,咱们也没有想到最终会作成一个视频、兼职工做、体验报告于一体的互联网社区。并发

但其实中间咱们至少花了半年的时间作新功能探索、业务的定型、以及数据验证。

关注个人朋友应该知道,我一直敲强调产品是业务的承载形态,而业务没有定型天然就会致使产品框架乱改。

好比曾经咱们定位本身不作活动报名系统,只作第三方活动跳转。在产品框架上就只容许运营、用户经过平台跳转到第三方进行报名。

后续由于活动人数与用户可控性等方面缘由,本身作活动报名系统就要求作用户管理、活动管理的升级。

3.业务逐渐定型,产品规划逐渐倾向于T型发展

一个互联网产品在3年之后,其实算得上“高龄”了。所以此时产品框架已经造成了用户主要使用的路径,在此时的版本重构上会要求严格保留前期核心功能,针对边缘化优

在用户体验要素里,就提到最底层、抽象的战略层其实就是T型发展的依据。针对肯定的业务不大改

**
产品上线时间越久,越要高内聚、低耦合**

回答开篇提到的问题:

“若是一个产品上线了3年,须要解决什么问题?”

其方向就是不断的内聚核型功能作成通功能,将个性化的业务进行边缘化拆解,作成非通用的能力。

同时一个产品正常运营3年,首先他的业务也在不断发展、内部员工也在增加,在高增加的背后天然就会出现开头前面2类的问题。

互联网产品也属于软件工程,在其高内聚、低耦合是咱们开发过程当中要求紧密遵照的。

每一个模块相互联系越紧密,则耦合性越高,模块的独立性就越差,反之同理;

再举个案例:

一个项目中有20个方法调用良好,可是要修改了其中一个,另外的19个都要进行修改,这就是高耦合。若是修改了其中一个,只须要再改2个,则属于低耦合。

从这个案例能够看出,保持这样的软件方法能够大大减小时间成本。

3年时间,产品不断迭代,也会从一个小应用演变到高级阶段就是一个大工程,从头至尾由一我的实现是不可能的,因而就要分工模块化完成。

好比PMTalk早期经过后端服务端渲染,如今变成了先后端分离就是逐步演变分工。

即便是由一人完成的程序,内部按照MVC模式的话,也会由subroutine来完成各项功能。因而,对于模块化的开发,就有了这样的要求:高内聚低耦合。

MVC 模式(Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller)。

**
软件设计的耦合的8种状态**

在这里我收集到了经常使用的耦合关系,包含数据、功能、业务等3个维度。能够以此判断是否为耦合

1.无直接耦合

指的是两个模块之间没有直接关系,它们之间的联系彻底是经过主模块的控制和调用来实现的。

2.数据耦合:

指两个模块之间有函数调用关系,传递简单的数据值,至关于高级语言的值传递;

3 标记耦合:

指两个模块之间传递是数据结构,如数组名、记录名、文件名等这些名字即标记,其实传递的是这个数据结构的地址;

4.控制耦合:

指一个模块调用另外一个模块时,传递的是控制变量(如开关、标志等),被调模块经过该变量的值有选择地执行块内一功能;

5,外部耦合:

一组模块都访问同一全局简单变量,并且不经过参数表传递该全局变量的信息,则称之为外部耦合,外部耦合和公共耦合很像,区别就是一个是简单变量,一个是复杂数据结构。

6.公共耦合:

指经过一个公共数据环境相互做用的那些模块间的耦合。公共耦合的复杂程序随耦合模块的个数增长而增长。

7 内容耦合:

这是最高程度的耦合,也是最差的耦合。当一个模块直接使用另外一个模块的内部数据,或经过非正常入口而转入另外一个模块内部。

或许在年夜前还能在保持原创作内容,实际上已经不是一种任务了。而是变成一了一种定时输出。

趁着春节假期,咱们团队也在发布弱小版本,尤为是移动端的小程序预计在春节也会上线。

关注个人我的微信:574319420,多交流

相关文章
相关标签/搜索