软件设计的高内聚、低耦合

随着PMTalk版本的不断迭代,到现在我们已经迭代到5.0了,上线了3年班,在这漫长的时间里,一个产品会在研发中、产品设计有什么问题呢?这里的问题主要是包含三类1.技术人员不断变换,代码规范层次不齐无论是在大厂还是在小团队,项目早期以快、业务实现为要求,比如高并发、数据仓库、风控控制都不会接入。而互联网团队的开发人员、产品经理一般在职时间1-2年会正…

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

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

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

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

而互联网团队的开发人员、产品经理一般在职时间1-2年会正常生命周期,在系统还没有变现下、或探索期人员经历大量的变动。

所以代码的可维护性就越来越差,比如在PMalk我们早期采用的JS、后续才使用react框架。

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

以至于现在的前端开发同学找到我,经常会说需求可以先放下,我们优先做重构吧,现在的代码看着太费时间了,先别说改。

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 内容耦合:

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

软件设计的高内聚、低耦合

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/13465.html

(0)
nan
上一篇 2021-08-16
下一篇 2021-08-16

相关推荐

  • 银行扣房款是从主贷人那里扣吧(要看还款卡是谁办理的)

    如今大家买房都是向银行申请贷款,之后每个月必须还款。如果夫妻结婚后申请房贷,就会区分主贷人和次贷人,那么银行扣房款是从主贷人那里扣吧?其实这个是不一定的,跟小编一起去看看吧。保险公司理赔价格过低怎么办,被保险人如何做很多人以为购买了汽车保险,当汽车发生交通事故时,就可以向保险公司全额索赔,事实上并…

    2021-12-21
    0
  • 对冲是什么意思(对冲基金通俗解释)

    对冲是什么意思?对冲基金通俗解释,爱惜日带你了解相关信息。有个婆婆,她的大女婿是卖雨伞的,小女婿是卖布鞋的,下雨天的时候大女婿的伞卖的特别好,小女婿的布鞋就卖不出去,而晴天的时候,小女婿的布鞋卖的特别好,而大女婿的伞又卖不出去。现在有个懂对冲的商人,他和大女婿签了个合约,合约规定,如果今年雨水比较多,那么大女婿卖伞肯定生意好,那么他就要给商人一笔钱,如果今年晴天比较多,大女

    2021-08-14
    0
  • foxmail绑定qq邮箱提示密码错误(qq邮箱登录foxmail设置方法)

    各版本企业邮箱客户,可以设置到Foxmail或Outlook登陆管理企业邮箱,更为便捷,下面是如何使用Foxmail的设置方法。一、靠前次使用Foxmail1.登陆网站的商务平台-企业邮箱-邮箱设置,查询到您的邮箱pop3服务器和smtp服务

    2021-10-07 用户投稿
    0
  • 七不买三不卖什么意思(股票七不买三不卖)

    七不买三不卖什么意思?股票七不买三不卖,久久派带你了解相关信息。股市当中流行着一个非常经典的七不买,三不卖口诀,散户亏钱的部分原因可能就在里面三不卖:1、三军会师,看好后市。“三军会师”,就是指5日,10日,20日,三条移动平均线,从高位向下运动到低位后,抬头向上,而且回合在一起。2、双管齐下,持股不怕。双管齐下指的是两根长下影线的K线,K线实体较小,且下影线低点基本持平。3

    2021-11-03
    0
  • NvidiaGeForceGTXTitanX评测

    导读当下关于NvidiaGeForceGTXTitanX评测,相信很多小伙伴都不是很了解吧那么下面小编也收集到了关于相关信息,希望大家看了会有所帮助。Nvidia当下关于NvidiaGeForceGTXTitanX评测,相信很多小伙伴都不是很了解

    2021-12-28
    0
  • 德特里克堡是新冠病毒源头?美国心虚开始狡辩

    新冠病毒的源头终于找到了,据欧洲调查,美国德特里克堡就是病毒源头,如果这是真的那就太可怕了,尽管有不少国家都对美国的德特里克堡实验室持有

    2021-07-30
    0

发表回复

登录后才能评论