当前位置:首页 > 天道酬勤 > 正文内容

模块间耦合(建筑b证继续教育教育)

张世龙2021年12月21日 22:43天道酬勤760

编辑指南: b端教育产品的设计往往经过很多过程,涉及到教育行业的方方面面。 设计更复杂的功能模块时,应该如何减少模块之间的耦合,进行低耦合的设计呢? 作者结合经验进行了整理和分析,总结了如何才能达到简单优雅的设计的方法论。

作为教育机构的b端产品经理,您经常需要设计整个教育行业的所有流程。 当然,大多是针对学生相关模块、教师相关模块、考试相关模块等各个模块进行设计。

这些模块、功能、过程或复杂或简单的过程自不必说,在设计复杂的功能模块时,模块之间的强逻辑联系、高数据依赖性使整个过程非常头疼

那么,如何首先通过整理和分析,实现简单优雅的设计呢,这个问题就摆在我们面前。

一、降低模块之间耦合度必要性

的复杂功能模块除了自身过程复杂外,最重要的是基于其他相对完善的模块过程,类似的模块过程本身的输出又是另一个模块完善的前提。

这样交织在一起的模块关系,将整个系统复杂地交织在一起,具有很强的耦合度,在进行功能扩展时,可以一劳永逸地全身运转。 降低模块之间的耦合度是非常重要的,其优点如下。

模块间的耦合程度越低,相互影响越小,在修正异常发生后发生连锁反应的概率越低的模块时,低耦合的系统可以将修正范围尽可能抑制在最小的范围内; 维护一个模块时,对其他模块的内部程序的正常动作没有很大影响。 那么,如何降低系统模块之间的耦合度呢?

我想可以从以下得到:

二、降低耦合度的方法

软件工程中,降低耦合度也被称为“去耦”,模块之间如果有依赖关系,必然存在耦合,理论上不能绝对的零耦合,但是可以通过一定的方法将耦合度抑制到最小。 b端系统在设计时解除耦合的方法必须从逻辑、研发两方面考虑。

作为产品经理对产品线的发展规律、管理差异化、系统平台的支撑面进行逻辑梳理。 当然技术方面也要进行模块化微服务,实现顾客、合同、支付、服务、服务评价五个维度的数据闭环。

模块间数据传输,模块内部逻辑判断。 开发者应尽量使用数据绑定,减少控制绑定,限制公共绑定的使用范围,同时坚决避免使用内容绑定。

言归正传,产品经理如何在最初设计时降低各APP模块之间的耦合度是本文讨论的重点。 从一开始就实现最佳解耦并不容易。 这是一个从混沌到明确的渐进详细过程。 我个人认为可以从以下几点开始。

1. 明晰并理解需求,了解现有的系统

1)业务流程图

b端以业务流程为中心,业务流程图首先需要明确,并且需要充分的总结、抽象化。 由此,可以将业务流程按作用进行分类,各作用还可以根据在什么样的状况下需要做什么、有什么样的权限、什么样的模块和数据有关系等,来定义作用权限。

2 )整理过程的状态

根据业务流程的不同,有什么样的状态,切换各个状态的条件是什么,到底有多少条路径,一般需要模拟各种情况的数据。

3 )系统体系结构图

整体系统架构是由不同过程、不同状态构成的通用集合,在设计系统架构图时,明确相关的前端业务、下级系统、各系统模块,明确业务范围,在变更涉及到其他系统时具有通用性

通过这些步骤,我们从业务流转换为抽象的系统架构图。 当然,这是产品自己整理的1.0版,需要采访影响整个系统的利益相关者。

2 .对上下游系统相关人员进行采访,根据采访结果综合分析后,更新相关流程图、结构图

现有系统的研发人员:看代码一定会知道系统能实现什么,什么不能实现。 在整理相关逻辑时,可以分主题与研究开发人员进行讨论,必须加以控制,以免脱轨。 熟悉相关业务的产品或项目经理:熟悉历史经验和组织流程资产,往往会降低后续项目风险,哪些像设计,哪些是遗留问题,相关产品的同事多少都知道。 运营、最终用户和测试人员:运营人员和最终用户是使用最多系统的相关人员,运营人员和测试人员通常可以提出许多有助于组织产品同事的绝妙优化建议。

3. 配合营销指标及技术指标进行优化,虽然这是后期的事儿

在大多数情况下,当系统业务量和用户数量达到一定程度时,就会遇到瓶颈,市场同事在销售时也一定有相关的数据指标。 产品的设计、模块的解除连接也大多与这些需求一起考虑。

技术优化:业务延迟的耐心、流程的长短、数据的归档周期等营销指标:线索和商机的获取周期、用户的使用体验等。

三、具体实现步骤

在具体操作时,我们可以采用以下思路。

整理负责

1. 梳理原子服务

业务的系统所需的模块,将这些模块分割为一个个功能点,将相似的功能点整合为一个独立的服务,提供一种能力。 集成服务必须保证各服务能够单独对外提供服务,各服务提供的能力不一致。 这叫做原子服务。

这一步完成的好坏如下

你对业务的理解能力,可以从0-1开始参考其他教育行业的友商竞品,否则可以参考现有的系统你对业务行业发展的想法,这个很大

程度决定你服务的拓展性和合理性,这个可以结合行业发展史和你自己的知识认知,比较抽象;边界一定要清晰,要明晰所做功能的边界和现实中技术的局限性,既要天马行空、又要明确系统边界。

2. 找出这些服务里面的共用项,做成最底层的配置规则,然后让他服务来调用

举个例子:设施设备管理及相关数据采集,经常涉及多硬件、多变成语言,那么每个模块的框架语言包就是一个共用项,这样做的目的是保证各维度数据的一致性。

3. 有时候一个业务闭环其实需要多个服务一起提供服务,这时需要再加一层服务聚合,保证原子服务的独立性

总之,一般应该采用:梳理出独立原子服务(保证独立不耦合)——找出公共底层配置项(保证维度数据统一)——聚合服务支持业务(保证原子服务解耦)这样的流程。

四、总结

充分的降低各个模块的耦合性,是复杂的教育系统必须解决的问题,系统的解耦要从逻辑,研发两方面结构。将产品线的发展规律,管理差异化,系统平台支撑方面进行逻辑梳理。技术方面要进行模块化微服务。

这样对后期产品功能的扩展、系统的演进都会有很大的帮助。

本文由 @Cloudzhang 原创发布于人人都是产品经理,未经许可,禁止转载

题图来自 Unsplash,基于 CC0 协议

扫描二维码推送至手机访问。

版权声明:本文由花开半夏のブログ发布,如需转载请注明出处。

本文链接:https://www.zhangshilong.cn/work/26624.html

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。