CN115586935A - 一种数据处理方法、装置、电子设备及介质 - Google Patents
一种数据处理方法、装置、电子设备及介质 Download PDFInfo
- Publication number
- CN115586935A CN115586935A CN202211294048.9A CN202211294048A CN115586935A CN 115586935 A CN115586935 A CN 115586935A CN 202211294048 A CN202211294048 A CN 202211294048A CN 115586935 A CN115586935 A CN 115586935A
- Authority
- CN
- China
- Prior art keywords
- plug
- target
- target service
- service
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/38—Creation or generation of source code for implementing user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种数据处理方法、装置、电子设备及介质,方法包括:响应针对业务***中目标业务模块的界面生成指令,向服务器发送携带有目标业务模块的属性参数的数据获取请求,使服务器返回目标业务模块对应的插件标识数据;根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块匹配的至少一个目标业务插件;通过所述与目标业务模块匹配的每一目标业务插件,获取每一目标业务插件所需的业务数据,处理获取的业务数据生成所述目标业务模块的目标界面,从而解决了耦合问题,独立功能的插件自由组合成不同的业务场景,在各个场景中复用,减少重复代码的编写。
Description
技术领域
本申请涉及计算机领域,具体而言,涉及一种数据处理方法、装置、电子设备及介质。
背景技术
如今,计算机程序所要解决的业务需求越来越复杂,计算机程序也越来越繁复多样,一个业务***中,往往包括多个不同的业务场景,每一个业务场景都需通过一种或多种业务逻辑来解决业务需求;也就是说,计算机程序中实际上包括了多个复杂的业务模块,并在复杂的业务模块处理各种业务逻辑。现有技术中,业务模块采用组件化的技术实现,复杂的业务模块中各个功能和业务逻辑之间存在大量的依赖和耦合,这就导致相同的功能和业务逻辑无法在不同的业务模块中复用,导致代码臃肿,且在所有计算机程序的生命周期中,都会随着时间的推移产生新的业务需求,需要更新一些功能和业务逻辑,需要开发者对整个程序代码进行更新,十分繁琐。
发明内容
有鉴于此,本申请的目的在于提供一种数据处理方法、装置、电子设备及介质,通过各个具有独立功能的业务插件组合实现整个业务模块的功能,解决了耦合问题,独立功能的插件自由组合成不同的业务场景,在各个场景中复用,减少重复代码的编写。
本申请实施例提供的一种数据处理方法,包括以下步骤:
响应针对业务***中目标业务模块的界面生成指令,向服务器发送携带有目标业务模块的属性参数的数据获取请求;所述数据获取请求用于使服务器根据该数据获取请求中的属性参数,返回目标业务模块对应的插件标识数据;
根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块匹配的至少一个目标业务插件;
通过所述与目标业务模块匹配的每一目标业务插件,获取每一目标业务插件所需的业务数据,处理获取的业务数据生成所述目标业务模块的目标界面。
在一些实施例中,所述的数据处理方法中,通过所述与目标业务模块匹配的每一目标业务插件,获取每一目标业务插件所需的业务数据,处理获取的业务数据生成所述目标业务模块的目标界面,包括:
基于所述与目标业务模块匹配的每一目标业务插件内部预先配置的第一数据处理规则,获取该目标业务插件所需的业务数据;
基于该目标业务插件的第一数据处理规则处理所述业务数据,得到第一目标数据;
拼接每一目标业务插件的第一目标数据,得到第二目标数据;所述第二目标数据用于生成所述目标业务模块对应的目标界面;
基于预先配置的第二数据处理规则渲染第二目标数据,生成该目标业务模块的目标界面。
在一些实施例中,所述的数据处理方法中,所述基于所述与目标业务模块匹配的每一目标业务插件内部预先配置的第一数据处理规则,获取该目标业务插件所需的业务数据,包括:
基于每一目标业务插件内部预先配置的第一数据处理规则中封装的接口请求数据,向服务器发送该目标业务插件的接口请求;其中,所述接口请求用于使服务器查找对应的业务数据,并将业务数据发送给目标业务插件;
接收对应接口请求的业务数据。
在一些实施例中,所述的数据处理方法中,基于该目标业务插件的第一数据处理规则处理所述业务数据,得到第一目标数据,包括:
通过该目标业务插件的内部预先配置的第一数据处理规则从所述业务数据提取出目标字段;
组装提取出的目标字段,得到第一目标数据。
在一些实施例中,所述的数据处理方法中,所述目标业务模块的属性参数包括表征目标业务模块版本的版本参数;所述版本参数用于区分不同版本的目标业务插件;
根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块版本匹配的目标业务插件,以生成与目标业务模块的版本对应目标界面。
在一些实施例中,所述的数据处理方法中,所述插件标识数据中包括第一标识和第二标识;
根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块版本匹配的目标业务插件;包括:
从预先配置好的业务插件中确定出匹配第一标识的业务逻辑程序;
从预先配置好的、对应第一插件程序的多个版本的UI程序中,确定出匹配第二标识的UI程序;
组合所述匹配第一标识的业务逻辑程序、匹配第二标识的UI程序,得到与目标业务模块版本匹配的目标业务插件。
在一些实施例中,所述的数据处理方法中,通过所述与目标业务模块匹配的每一目标业务插件,获取每一目标业务插件所需的业务数据,处理获取的业务数据生成所述目标业务模块的目标界面,并展示生成的目标界面之后,所述方法还包括:
当监测到第一目标业务插件满足数据更新条件时,更新第一目标业务插件所需的业务数据,并向预先建立关联关系的第二目标业务插件发送更新信号;
基于所述第二目标业务插件接收的更新信号,更新第二目标业务插件所需的业务数据;
基于更新后的第一目标业务插件所需的业务数据、第二目标业务插件所需的业务数据,更新目标界面上第一目标业务插件和第二目标业务插件对应的内容。
在一些实施例中,还提供一种数据处理装置,所述数据处理装置包括:
发送模块,用于响应针对业务***中目标业务模块的界面生成指令,向服务器发送携带有目标业务模块的属性参数的数据获取请求;所述数据获取请求用于使服务器根据该数据获取请求中的属性参数,返回目标业务模块对应的插件标识数据;
匹配模块,用于根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块匹配的至少一个目标业务插件;
处理模块,用于通过所述与目标业务模块匹配的每一目标业务插件,获取每一目标业务插件所需的业务数据,处理获取的业务数据生成所述目标业务模块的目标界面。
在一些实施例中,还提供一种电子设备,所述电子设备包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行所述的数据处理方法的步骤。
在一些实施例中,还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行所述的数据处理方法的步骤。
本申请实施例提供一种数据处理方法、装置、电子设备及介质,业务***中复杂的业务模块由多个独立的业务插件组合得到的,在生成业务***中目标业务模块的界面时,先确定从预先配置好的业务插件中确定出与目标业务模块匹配的至少一个目标业务插件;通过所述与目标业务模块匹配的每一目标业务插件,处理以及组装每一目标业务插件所需的业务数据,通过组装后的数据生成所述目标业务模块的目标界面,并展示生成的目标界面;这里,所述单个业务插件具有独立的功能,从而拆分了业务模块中的各个业务功能,结合了业务插件中各个功能耦合的问题;单个业务插件至少对应一个业务模块,从而使得独立功能的插件可以自由组合成不同的业务场景,可以在各个场景中复用,大大减少重复代码的编写;同时,业务模块中的单个功能更新时,更新具有该独立功能的业务插件,即可实现使用该业务插件的多个业务场景的更新,进一步减少重复代码的编写。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本申请实施例所述数据处理方法的方法流程图;
图2示出了本申请实施例所述业务模块的结构示意图;
图3示出了本申请实施例所述业务***内部结构的关系示意图;
图4示出了本申请实施例所述通过所述与目标业务模块匹配的每一目标业务插件,获取每一目标业务插件所需的业务数据,处理获取的业务数据生成所述目标业务模块的目标界面的方法流程图;
图5示出了本申请实施例所述数据处理方法的时序图;
图6示出了本申请实施例所述根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块版本匹配的目标业务插件的方法流程图;
图7示出了本申请实施例所述另一种数据处理方法的方法流程图;
图8示出了本申请所实施例所述数据处理装置的结构示意图;
图9示出了本申请所实施例所述电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
如今,计算机程序所要解决的业务需求越来越复杂,计算机程序也越来越繁复多样,一个业务***中,往往包括多个不同的业务场景,每一个业务场景都需通过一种或多种业务逻辑来解决业务需求;也就是说,计算机程序中实际上包括了多个复杂的业务模块,并在复杂的业务模块处理各种业务逻辑。现有技术中,业务模块采用组件化的技术实现,复杂的业务模块中各个功能和业务逻辑之间存在大量的依赖和耦合,这就导致相同的功能和业务逻辑无法在不同的业务模块中复用,导致代码臃肿。例如在某音乐软件中,包括每日推荐业务模块和歌单业务模块;其中,每日推荐业务模块的功能包括日期、排行榜、电台、音乐节;歌单业务模块的功能包括显示日期、歌单、电台、音乐节。这里,日期、电台、音乐节这几个功能在每日推荐业务模块和歌单业务模块中的业务逻辑是相同的,但是,由于歌单业务模块和每日推荐业务模块分别采用组件,因此,歌单业务模块中的日期、排行榜、电台、音乐节相互依赖和耦合,每日推荐业务模块的功能包括日期、排行榜、电台、音乐节也相互依赖和耦合,业务逻辑相同的日期、电台、音乐节也需要分别在每日推荐业务模块和歌单业务模块中编写一套代码,也就导致了整个音乐软件代码臃肿,开发者工作量加大。
且在所有计算机程序的生命周期中,都会随着时间的推移产生新的业务需求,需要更新一些功能和业务逻辑,需要开发者对整个程序代码进行更新,十分繁琐。例如需要更新日期的业务逻辑,增加显示星座运势的逻辑,则需要分别更新每日推荐业务模块和歌单业务模块中的日期的业务逻辑,比较复杂。
基于此,本申请实施例提供一种数据处理方法、装置、电子设备及介质,业务***中复杂的业务模块由多个独立的业务插件组合得到的,在生成业务***中目标业务模块的界面时,先确定从预先配置好的业务插件中确定出与目标业务模块匹配的至少一个目标业务插件;通过所述与目标业务模块匹配的每一目标业务插件,处理以及组装每一目标业务插件所需的业务数据,通过组装后的数据生成所述目标业务模块的目标界面,并展示生成的目标界面;这里,所述单个业务插件具有独立的功能,从而拆分了业务模块中的各个业务功能,结合了业务插件中各个功能耦合的问题;单个业务插件至少对应一个业务模块,从而使得独立功能的插件可以自由组合成不同的业务场景,可以在各个场景中复用,大大减少重复代码的编写;同时,业务模块中的单个功能更新时,更新具有该独立功能的业务插件,即可实现使用该业务插件的多个业务场景的更新,进一步减少重复代码的编写。
下面对本申请实施例提供的一种数据处理方法、装置、电子设备及介质进行详细介绍。
请参照图1,图1示出了本申请实施例所述数据处理方法的方法流程图,具体的,所述数据处理方法包括以下步骤S101-S103;
S101、响应针对业务***中目标业务模块的界面生成指令,向服务器发送携带有目标业务模块的属性参数的数据获取请求;所述数据获取请求用于使服务器根据该数据获取请求中的属性参数,返回目标业务模块对应的插件标识数据;
S102、根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块匹配的至少一个目标业务插件;
S103、通过所述与目标业务模块匹配的每一目标业务插件,获取每一目标业务插件所需的业务数据,处理获取的业务数据生成所述目标业务模块的目标界面。
在本申请实施例中,所述数据处理方法可以运行于终端设备或者是服务器;其中,终端设备可以为本地终端设备,当数据处理方法运行于服务器时,该数据处理方法则可以基于云交互***来实现与执行,其中,云交互***至少包括服务器和客户端设备(也即终端设备)。
具体的,以应用于终端设备为例,当数据处理方法运行于终端设备上时,数据处理方法用于在世界坐标系下,针对业务***中目标业务模块的界面生成指令,确定该业务模块对应的业务插件,并通过功能独立的业务插件分别获取每一功能所需的数据,然后将每一功能所需的数据组装为生成目标界面所需的数据,根据组装得到的数据渲染生成目标业务模块的目标界面。
这里,所述单个业务插件具有独立的功能,从而拆分了业务模块中的各个业务功能,结合了业务插件中各个功能耦合的问题;单个业务插件至少对应一个业务模块,从而使得独立功能的插件可以自由组合成不同的业务场景,可以在各个场景中复用,大大减少重复代码的编写;同时,业务模块中的单个功能更新时,更新具有该独立功能的业务插件,即可实现使用该业务插件的多个业务场景的更新,进一步减少重复代码的编写。
在所述步骤S101中,响应针对业务***中目标业务模块的界面生成指令,向服务器发送携带有目标业务模块的属性参数的数据获取请求。
这里,所述针对业务***中目标业务模块的界面生成指令,是基于针对所述业务***的操作生成的,或者所述业务***接收到的针对目标业务模块的界面生成指令,或者所述业务***按照预设规则自动生成的。
示例性的,当打开某音乐软件APP时,音乐软件APP生成针对主页模块的界面生成指令,以生成主页界面并展示所述主页界面。当从主体切换到每日推荐业务界面时,音乐软件APP生成针对每日推荐业务模块的界面生成指令,以生成每日推荐界面并展示所述每日推荐界面。
或者,所述业务***按照预设规则自动生成的,示例性的,某音乐软件APP自动在主页界面、每日推荐界面、和歌单界面来回切换,每间隔30s切换下一个界面,则按照预设规则自动生成下一个界面的界面生成指令,以切换至下一个界面。
向服务器发送携带有目标业务模块的属性参数的数据获取请求之后,服务器接收到目标业务模块的数据获取请求,并根据该数据获取请求中的属性参数,返回目标业务模块对应的插件标识数据。
所述插件标识数据,也就是插件类型数据PluginTypeData。
这里,所述界面,又可以称之为UI。
本申请实施例中,请所述业务***的整个架构分为以下五个核心:
Context:一个业务对象。
PluginManager:插件管理器,用来管理插件Plugin,负责插件的加载、删除。
EventDispatcher:事件分发器,负责业务模块间、插件间的通信。
DataCenter:数据中心,用来管理业务模块间的共享数据。
Plugin:业务插件。
请参照图2和图3,图2示出了业务模块的结构示意图,图3示出了业务***内部结构的关系示意图。
图2中,业务模块Module201由各个业务插件plugin202组合而成。
图3中,业务***内部的业务插件301包括PluginA、PluginB,业务插件PluginA、PluginB由插件管理器PluginManager302管理调度,决定大业务对象Context303中有哪些Plugin。
也就是说,在所述步骤S101中,在一个大的业务模块Context中,通过数据获取请求,得到数据PluginTypeData。
在所述步骤S102中,根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块匹配的至少一个目标业务插件。
具体的,所述服务器返回目标业务模块对应的插件标识数据至业务***后,插件管理器PluginManager根据插件标识数据中的插件标识,从预先配置好的业务匹配与插件标识对应的目标业务插件,并加载匹配的目标业务插件。
也就是说,在所述步骤S102中,通过返回的PluginTypeData决定该目标业务模块Context中有哪些业务插件,如业务插件Plugin1、业务插件Plugin2、业务插件Plugin3。例如每日推荐业务模块匹配的业务插件为:日期插件、排行榜插件、电台插件、音乐节插件,共4个业务插件。
需要说明的是,所述预先配置好的单个业务插件至少对应一个业务模块,也就是说,多个不同的业务模块可以复用同一个业务插件;例如,每日推荐业务模块匹配的业务插件为:日期插件、排行榜插件、电台插件、音乐节插件;歌单业务模块匹配的业务插件为:日期插件、歌单插件、电台插件、音乐节插件。日期插件、电台插件、音乐节插件既可以在每日推荐业务模块中实现其功能,也可以在歌单业务模块实现其功能。这样,相同的功能和业务逻辑之间相互解耦,可以在不同的业务模块中复用,解决了代码臃肿的问题。
在所述步骤S103中,通过所述与目标业务模块匹配的每一目标业务插件,获取每一目标业务插件所需的业务数据,处理获取的业务数据生成所述目标业务模块的目标界面,并展示生成的目标界面。也就说是,当确定好目标业务模块Context中有哪些业务插件,即可通过这些功能独立的插件获取各个业务插件所需的业务数据,然后组装全部业务插件的业务数据,即可得到目标业务模块所需的全部数据。
为实现所述步骤S103所述的数据处理功能,Plugin内部包含插件视图、插件数据,并且要遵循PluginProtocol协议封装以下数据处理规则,同时,插件内部要实现pluginProtocol的三个协定的方法,另外要持有两个属性:插件视图和数据源数组。当通过fetchNetworkDataWithResponse方法请求到网络数据后,将数据存储到数据源数组中,在reloadData方法中,将该数据源数组绑定给插件视图。本申请实施例中,配置遵循插件协议的功能插件,在不同的业务场景中,可以调用这种通用协议类型的插件协议,而不是具体的插件,进一步做到去耦合的目的,可复用性更强。
第一数据处理规则,获取业务插件所需要的业务数据,在该方法中可以请求网络数据,也可以通过参数Params传入数据,然后数据被该插件持有,用于在视图上渲染显示。
在数据***件持有之后,外部容器视图获取业务插件中的视图。外部容器视图通过此方法拿到插件视图后,就可以添加到自己的视图节点上。
第二数据处理规则,将数据渲染到视图上,外部容器视图在拿到插件视图后,调用该方法,将数据渲染出来。
具体的,请参照图4,所述通过所述与目标业务模块匹配的每一目标业务插件,获取每一目标业务插件所需的业务数据,处理获取的业务数据生成所述目标业务模块的目标界面,包括以下步骤S401-S404;
S401、基于所述与目标业务模块匹配的每一目标业务插件内部预先配置的第一数据处理规则,获取该目标业务插件所需的业务数据;
S402、基于该目标业务插件的第一数据处理规则处理所述业务数据,得到第一目标数据;
S403、拼接每一目标业务插件的第一目标数据,得到第二目标数据;所述第二目标数据用于生成所述目标业务模块对应的目标界面;
S404、基于预先配置的第二数据处理规则渲染第二目标数据,生成该目标业务模块的目标界面。
这里,所述基于所述与目标业务模块匹配的每一目标业务插件内部预先配置的第一数据处理规则,获取该目标业务插件所需的业务数据,包括:
基于每一目标业务插件内部预先配置的第一数据处理规则中封装的接口请求数据,向服务器发送该目标业务插件的接口请求;其中,所述接口请求用于使服务器查找对应的业务数据,并将业务数据发送给目标业务插件;
接收对应接口请求的业务数据。
也就是说,目标业务插件内部预先配置的第一数据处理规则中封装的接口请求数据,决定了该目标业务插件需要的业务数据。
请参照图5,图5示出了本申请实施例所述数据处理方法的时序图;所述时序图表征了所述数据处理方法在业务容器视图501、业务模块502、plugin503和server504之间的处理过程。具体过程如以下步骤一到步骤六所示。
步骤一:向服务器发送请求,并根据服务器返回的数据PluginTypeData确定决定该目标业务模块Context中有哪些业务插件;如业务插件Plugin1、业务插件Plugin2、业务插件Plugin3。
步骤二:调用第一数据处理规则,组装数据:确定出目标业务插件后,触发目标业务插件的各自内部的第一数据处理规则,第一数据处理规则中封装了接口请求,去直接请求各插件所需的业务数据,或者也可以将目标业务模块中的业务数据通过第一数据处理规则的参数传入到目标业务插件中,数据请求完就保存到插件内部变量PluginDataSource持有。
获取到目标业务插件所需的业务数据后,可能数据格式不符合该目标业务插件的需求,需要对目标业务插件所需的业务进行组装。
具体的,本申请实施例所述基于该目标业务插件的第一数据处理规则处理所述业务数据,得到第一目标数据的方法流程图:基于该目标业务插件的第一数据处理规则处理所述业务数据,得到第一目标数据,包括以下步骤;
通过该目标业务插件的内部预先配置的第一数据处理规则从所述业务数据提取出目标字段;
组装提取出的目标字段,得到第一目标数据。
示例性的,例如日期插件中只有年份、月份、日期字段是需要的,因此,提取出年份、月份、日期字段进行组装,得到日期插件的第一目标数据。
步骤三:在Plugin1、plugin2、plugin3的数据确定组装完成后,发送一个完成组装数据的信号给目标业务模块Context,目标业务模块Context接收到该信号后,拼接ContentView所需的第二目标数据,该第二目标数据中包括Plugin的第一目标数据、UI渲染数据、交互操作回调Block、数据处理方法Function,数据拼接完后得到的第二目标数据被目标业务模块Context中ContextDataSource变量持有。
步骤四:发送刷新UI信号:ContextDataSource持有第二目标数据后,目标业务模块Context发送一个刷新UI信号给ContextView,并通过信号将ContextDataSource传递给ContextView。
步骤五:获取插件视图:ContextView收到刷新UI信号和ContextDataSource后,通过ContextDataSource中的Plugin调用其内部的处理规则,获取插件视图PluginView,并加到ContextView中。这里需要说明的是,第二目标数据中,各个目标业务插件的第一目标业务数据依然是独立存在的,因此,在将插件视图PluginView加到ContextView中时,依然要读取每一个插件视图PluginView。
步骤六:调用第二数据处理规则,将第二目标数据中目标业务插件Plugin内部PluginDataSource保存的数据渲染到插件视图PluginView上,生成该目标业务模块的目标界面。
且在所有计算机程序的生命周期中,经常会发生版本更迭,例如,某音乐软件包括中国版和外国版,学生版本和正常版本,2021版本和2022版本等。在不同的版本中,同一业务模块可能对应的不同的业务插件。例如:中国版本每日推荐业务模块匹配的业务插件为:日期插件、排行榜插件、电台插件、音乐节插件;外国版本每日推荐业务模块匹配的业务插件为:日期插件、电台插件、音乐节插件、圣诞节插件。同一业务模块对应的相同业务插件中,通常其业务逻辑是相同的,其UI样式不同,例如2021版本的软件UI为红色主题,2021版本的软件UI界面为黄色主题。如果针对不同版本的同一业务模块的相同功能分别配置不同的业务插件,则会导致代码臃肿。
基于此,本申请实施例中所述的数据处理方法,所述目标业务模块的属性参数包括表征目标业务模块版本的版本参数;所述版本参数用于区分不同版本的目标业务插件;
相应的,根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块版本匹配的目标业务插件,以生成与目标业务模块的版本对应目标界面。
也就是说,所述版本参数用于确定目标业务模块的版本,当目标业务模块的属性参数中包括版本参数时,生成的目标界面的版本时根据该版本参数确定的。
当所述目标业务模块的属性参数包括表征目标业务模块版本的版本参数时,服务器根据数据获取请求中的属性参数返回的插件标识数据中,包括第一标识和第二标识。
请参照图6,图6示出了本申请实施例所述根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块版本匹配的目标业务插件的方法流程图;具体的,当所述插件标识数据中包括第一标识和第二标识时,根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块版本匹配的目标业务插件;包括以下步骤S601-S603;
S601、从预先配置好的业务插件中确定出匹配第一标识的业务逻辑程序;
S602、从预先配置好的、对应第一插件程序的多个版本的UI程序中,确定出匹配第二标识的UI程序;
S603、组合所述匹配第一标识的业务逻辑程序、匹配第二标识的UI程序,得到与目标业务模块版本匹配的目标业务插件。
不同版本的目标业务插件中,业务逻辑代码是相同的,UI代码存在差异。基于此,本申请实施例所述数据处理方法,在界面的迭代中,对于相似业务,界面如果发生了变更,可以将插件对应的视图升级到相应版本,也可以满足不同业务场景的对应的不同版本的视图,达到一套业务逻辑代码复用于多个版本的视图的目的,进一步的降低了软件代码的臃肿问题。
当生成所述目标业务模块的目标界面,由于目标业务模块所需要的业务插件功能上相互独立,但是有些业务插件之间存在关联之处,例如:某音乐软件中的电台插件和音乐节插件,当音乐节插件中的音乐类型更新时,电台插件中的音乐类型也随之更新。
基于此,请参照图7,所述的数据处理方法中,通过所述与目标业务模块匹配的每一目标业务插件,获取每一目标业务插件所需的业务数据,处理获取的业务数据生成所述目标业务模块的目标界面,并展示生成的目标界面之后,所述方法还包括以下步骤S701-S703:
S701、当监测到第一目标业务插件满足数据更新条件时,更新第一目标业务插件所需的业务数据,并向预先建立关联关系的第二目标业务插件发送更新信号;
S702、基于所述第二目标业务插件接收的更新信号,更新第二目标业务插件所需的业务数据;
S703、基于更新后的第一目标业务插件所需的业务数据、第二目标业务插件所需的业务数据,更新目标界面上第一目标业务插件和第二目标业务插件对应的内容。
本申请实施例中,到第一目标业务插件想和第二目标业务插件通信,通过EventDispatcher模块,该模块采用发布-订阅模式实现,比如第二目标业务插件订阅了某事件信号,在第一目标业务插件中发布该事件信号时,第二目标业务插件就会接受到该事件,从而采取进一步处理。第一目标业务插件想和第二目标业务插件之间的全局数据共享由DataCenter负责。
这里,更新第二目标业务插件所需的业务数据时,第二目标业务插件所需的业务数据可直接从第一目标业务插件想和第二目标业务插件之间共享的全局数据中获取。或者,重新根据第二目标业务插件中封装的第一数据处理规则获取所需的业务数据。
通过预先建立第一目标业务插件和第二目标业务插件的关联关系,使得第一目标业务插件和第二目标业务插件独立实现其功能的时候,又能够同步更新。
本申请所述数据处理方法中的插件化架构非常适用于UITableView(iOS原生UI控件,用于列表显示)或UICollectionView(iOS原生UI控件,用于九宫格展示)构建的页面,采用插件化架构,整个页面的构建就像搭建积木一样,独立功能的插件自由组合成不同的业务场景,解决了业务场景中不同功能之间的耦合问题,在各个场景中复用,减少重复代码的编写。
基于同一发明构思,本申请实施例中还提供了与数据处理方法对应的数据处理装置,由于本申请实施例中的装置解决问题的原理与本申请实施例上述数据处理方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
请参照图8,图8示出了本申请实施例所述数据处理装置的结构示意图,具体的,所述数据处理结构包括:
发送模块801,用于响应针对业务***中目标业务模块的界面生成指令,向服务器发送携带有目标业务模块的属性参数的数据获取请求;所述数据获取请求用于使服务器根据该数据获取请求中的属性参数,返回目标业务模块对应的插件标识数据;
匹配模块802,用于根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块匹配的至少一个目标业务插件;
处理模块803,用于通过所述与目标业务模块匹配的每一目标业务插件,获取每一目标业务插件所需的业务数据,处理获取的业务数据生成所述目标业务模块的目标界面。
本申请实施例提供一种数据处理装置,业务***中复杂的业务模块由多个独立的业务插件组合得到的,在生成业务***中目标业务模块的界面时,先确定从预先配置好的业务插件中确定出与目标业务模块匹配的至少一个目标业务插件;通过所述与目标业务模块匹配的每一目标业务插件,处理以及组装每一目标业务插件所需的业务数据,通过组装后的数据生成所述目标业务模块的目标界面,并展示生成的目标界面;这里,所述单个业务插件具有独立的功能,从而拆分了业务模块中的各个业务功能,结合了业务插件中各个功能耦合的问题;单个业务插件至少对应一个业务模块,从而使得独立功能的插件可以自由组合成不同的业务场景,可以在各个场景中复用,大大减少重复代码的编写;同时,业务模块中的单个功能更新时,更新具有该独立功能的业务插件,即可实现使用该业务插件的多个业务场景的更新,进一步减少重复代码的编写。
在一些实施例中,所述数据处理装置的处理模块,在通过所述与目标业务模块匹配的每一目标业务插件,获取每一目标业务插件所需的业务数据,处理获取的业务数据生成所述目标业务模块的目标界面时,具体用于:
基于所述与目标业务模块匹配的每一目标业务插件内部预先配置的第一数据处理规则,获取该目标业务插件所需的业务数据;
基于该目标业务插件的第一数据处理规则处理所述业务数据,得到第一目标数据;
拼接每一目标业务插件的第一目标数据,得到第二目标数据;所述第二目标数据用于生成所述目标业务模块对应的目标界面;
基于预先配置的第二数据处理规则渲染第二目标数据,生成该目标业务模块的目标界面。
在一些实施例中,在一些实施例中,所述数据处理装置的处理模块,在基于所述与目标业务模块匹配的每一目标业务插件内部预先配置的第一数据处理规则,获取该目标业务插件所需的业务数据时,具体用于:
基于每一目标业务插件内部预先配置的第一数据处理规则中封装的接口请求数据,向服务器发送该目标业务插件的接口请求;其中,所述接口请求用于使服务器查找对应的业务数据,并将业务数据发送给目标业务插件;
接收对应接口请求的业务数据。
在一些实施例中,所述数据处理装置的处理模块,在基于该目标业务插件的第一数据处理规则处理所述业务数据,得到第一目标数据时,具体用于:
通过该目标业务插件的内部预先配置的第一数据处理规则从所述业务数据提取出目标字段;
组装提取出的目标字段,得到第一目标数据。
在一些实施例中,所述数据处理装置中,所述目标业务模块的属性参数包括表征目标业务模块版本的版本参数;所述版本参数用于区分不同版本的目标业务插件;
相应的,所述匹配模块,具体用于根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块版本匹配的目标业务插件,以生成与目标业务模块的版本对应目标界面。
在一些实施例中,所述插件标识数据中包括第一标识和第二标识;所述数据处理装置中的匹配模块,在根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块版本匹配的目标业务插件时,具体用于:
从预先配置好的业务插件中确定出匹配第一标识的业务逻辑程序;
从预先配置好的、对应第一插件程序的多个版本的UI程序中,确定出匹配第二标识的UI程序;
组合所述匹配第一标识的业务逻辑程序、匹配第二标识的UI程序,得到与目标业务模块版本匹配的目标业务插件。
在一些实施例中,所述数据处理装置还包括:
更新模块,用于当监测到第一目标业务插件满足数据更新条件时,更新第一目标业务插件所需的业务数据,并向预先建立关联关系的第二目标业务插件发送更新信号;
基于所述第二目标业务插件接收的更新信号,更新第二目标业务插件所需的业务数据;
基于更新后的第一目标业务插件所需的业务数据、第二目标业务插件所需的业务数据,更新目标界面上第一目标业务插件和第二目标业务插件对应的内容。
基于同一发明构思,本申请实施例中还提供了与数据处理方法对应的电子设备,由于本申请实施例中的电子设备解决问题的原理与本申请实施例上述数据处理方法相似,因此电子设备的实施可以参见方法的实施,重复之处不再赘述。
请参照图9,图9示出了本申请所实施例所述电子设备的结构示意图,具体的,所述电子设备900,包括:处理器901、存储器902和总线,所述存储器902存储有所述处理器901可执行的机器可读指令,当电子设备900运行时,所述处理器901与所述存储器902之间通过总线通信,所述机器可读指令被所述处理器901执行时执行所述的数据处理方法的步骤。
基于同一发明构思,本申请实施例中还提供了与数据处理方法对应的计算机可读存储介质,由于本申请实施例中的计算机可读存储介质解决问题的原理与本申请实施例上述数据处理方法相似,因此计算机可读存储介质的实施可以参见方法的实施,重复之处不再赘述。
本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行所述的数据处理方法的步骤。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个模块或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,平台服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数据处理方法,其特征在于,包括以下步骤:
响应针对业务***中目标业务模块的界面生成指令,向服务器发送携带有目标业务模块的属性参数的数据获取请求;所述数据获取请求用于使服务器根据该数据获取请求中的属性参数,返回目标业务模块对应的插件标识数据;
根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块匹配的至少一个目标业务插件;
通过所述与目标业务模块匹配的每一目标业务插件,获取每一目标业务插件所需的业务数据,处理获取的业务数据生成所述目标业务模块的目标界面。
2.根据权利要求1所述的数据处理方法,其特征在于,通过所述与目标业务模块匹配的每一目标业务插件,获取每一目标业务插件所需的业务数据,处理获取的业务数据生成所述目标业务模块的目标界面,包括:
基于所述与目标业务模块匹配的每一目标业务插件内部预先配置的第一数据处理规则,获取该目标业务插件所需的业务数据;
基于该目标业务插件的第一数据处理规则处理所述业务数据,得到第一目标数据;
拼接每一目标业务插件的第一目标数据,得到第二目标数据;所述第二目标数据用于生成所述目标业务模块对应的目标界面;
基于预先配置的第二数据处理规则渲染第二目标数据,生成该目标业务模块的目标界面。
3.根据权利要求2所述的数据处理方法,其特征在于,所述基于所述与目标业务模块匹配的每一目标业务插件内部
预先配置的第一数据处理规则,获取该目标业务插件所需的业务数据,包括:
基于每一目标业务插件内部预先配置的第一数据处理规则中封装的接口请求数据,向服务器发送该目标业务插件的接口请求;其中,所述接口请求用于使服务器查找对应的业务数据,并将业务数据发送给目标业务插件;
接收对应接口请求的业务数据。
4.根据权利要求2所述的数据处理方法,其特征在于,基于该目标业务插件的第一数据处理规则处理所述业务数据,得到第一目标数据,包括:
通过该目标业务插件的内部预先配置的第一数据处理规则从所述业务数据提取出目标字段;
组装提取出的目标字段,得到第一目标数据。
5.根据权利要求1所述的数据处理方法,其特征在于,所述目标业务模块的属性参数包括表征目标业务模块版本的版本参数;所述版本参数用于区分不同版本的目标业务插件;
根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块版本匹配的目标业务插件,以生成与目标业务模块的版本对应目标界面。
6.根据权利要求5所述的数据处理方法,其特征在于,所述插件标识数据中包括第一标识和第二标识;
根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块版本匹配的目标业务插件;包括:
从预先配置好的业务插件中确定出匹配第一标识的业务逻辑程序;
从预先配置好的、对应第一插件程序的多个版本的UI程序中,确定出匹配第二标识的UI程序;
组合所述匹配第一标识的业务逻辑程序、匹配第二标识的UI程序,得到与目标业务模块版本匹配的目标业务插件。
7.根据权利要求1所述的数据处理方法,其特征在于,通过所述与目标业务模块匹配的每一目标业务插件,获取每一目标业务插件所需的业务数据,处理获取的业务数据生成所述目标业务模块的目标界面,并展示生成的目标界面之后,所述方法还包括:
当监测到第一目标业务插件满足数据更新条件时,更新第一目标业务插件所需的业务数据,并向预先建立关联关系的第二目标业务插件发送更新信号;
基于所述第二目标业务插件接收的更新信号,更新第二目标业务插件所需的业务数据;
基于更新后的第一目标业务插件所需的业务数据、第二目标业务插件所需的业务数据,更新目标界面上第一目标业务插件和第二目标业务插件对应的内容。
8.一种数据处理装置,其特征在于,包括:
发送模块,用于响应针对业务***中目标业务模块的界面生成指令,向服务器发送携带有目标业务模块的属性参数的数据获取请求;所述数据获取请求用于使服务器根据该数据获取请求中的属性参数,返回目标业务模块对应的插件标识数据;
匹配模块,用于根据目标业务模块对应的插件标识数据,从预先配置好的业务插件中确定出与目标业务模块匹配的至少一个目标业务插件;
处理模块,用于通过所述与目标业务模块匹配的每一目标业务插件,获取每一目标业务插件所需的业务数据,处理获取的业务数据生成所述目标业务模块的目标界面。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7任意一项所述的数据处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任意一项所述的数据处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211294048.9A CN115586935A (zh) | 2022-10-21 | 2022-10-21 | 一种数据处理方法、装置、电子设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211294048.9A CN115586935A (zh) | 2022-10-21 | 2022-10-21 | 一种数据处理方法、装置、电子设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115586935A true CN115586935A (zh) | 2023-01-10 |
Family
ID=84780713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211294048.9A Pending CN115586935A (zh) | 2022-10-21 | 2022-10-21 | 一种数据处理方法、装置、电子设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115586935A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117093520A (zh) * | 2023-10-12 | 2023-11-21 | 北京集度科技有限公司 | 基于面向服务架构的服务仲裁装置、方法、车辆 |
CN117608677A (zh) * | 2023-05-22 | 2024-02-27 | 阿里云计算有限公司 | 插件的生成方法、云服务***及服务访问方法 |
-
2022
- 2022-10-21 CN CN202211294048.9A patent/CN115586935A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117608677A (zh) * | 2023-05-22 | 2024-02-27 | 阿里云计算有限公司 | 插件的生成方法、云服务***及服务访问方法 |
CN117608677B (zh) * | 2023-05-22 | 2024-07-05 | 阿里云计算有限公司 | 插件的生成方法、云服务***及服务访问方法 |
CN117093520A (zh) * | 2023-10-12 | 2023-11-21 | 北京集度科技有限公司 | 基于面向服务架构的服务仲裁装置、方法、车辆 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3399721B1 (en) | Interface data displaying method and device | |
CN110597595B (zh) | 多语言信息的提供方法、配置方法、装置、设备和介质 | |
CN106843828B (zh) | 界面显示、加载方法及装置 | |
CN115586935A (zh) | 一种数据处理方法、装置、电子设备及介质 | |
CN110990105A (zh) | 界面显示方法、装置、电子设备及存储介质 | |
CN108776587B (zh) | 数据获取方法、装置、计算机设备以及存储介质 | |
CN111026491A (zh) | 界面显示方法、装置、电子设备、服务器及存储介质 | |
CN112100552A (zh) | 页面渲染方法、装置、设备及计算机可读存储介质 | |
CN110968331A (zh) | 应用程序运行的方法和装置 | |
CN112363704A (zh) | 一种基于微服务架构的服务*** | |
CN111881209A (zh) | 异构数据库的数据同步方法、装置、电子设备及介质 | |
CN115617420A (zh) | 应用程序的生成方法、装置、设备以及存储介质 | |
CN109814915B (zh) | 基于lua的参数配置方法、装置、介质和电子设备 | |
CN110851211A (zh) | 用于显示应用信息的方法、装置、电子设备和介质 | |
CN110908629A (zh) | 电子设备操作方法、装置、电子设备和存储介质 | |
CN114222003A (zh) | 服务调用方法、***、装置、设备及存储介质 | |
CN116028331A (zh) | 用于中间件测试的配置文件生成方法以及框架构建方法 | |
CN106527979B (zh) | 数据迁移方法及装置 | |
CN117389647A (zh) | 插件生成方法、应用程序开发方法、装置、设备及介质 | |
CN109558186A (zh) | 一种页面显示方法和装置 | |
US20190121844A1 (en) | Editing program, editing device, and editing method | |
CN113626007B (zh) | 连接器模型的应用方法、装置及服务器 | |
CN115935935A (zh) | 富文本消息生成方法、装置、计算机设备及可读存储介质 | |
CN112711728B (zh) | 页面布局框架、页面加载方法、装置、设备及存储介质 | |
CN111581578B (zh) | 接口请求处理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |