构建目标的构建方法和项目解耦方法、装置及电子设备与流程

文档序号:33035399发布日期:2023-01-24 19:32阅读:25来源:国知局
构建目标的构建方法和项目解耦方法、装置及电子设备与流程

1.本发明涉及应用程序技术领域,特别是涉及一种构建目标的构建方法、一种构建目标的构建装置、一种项目解耦方法、一种项目解耦装置、一种电子设备和一种计算机可读存储介质。


背景技术:

2.现有的基于vue2(第2代vue)的应用程序的结构只适用于简单项目,但是,面对日益复杂的前端工程,非通用组件和通用组件变得难以割舍,各个组件之间也没有严格的界限约定,最终都会变为支撑业务的视图组件,使得应用程序中耦合的组件越来越多,运行效率越来越低,用户体验较差。
3.同时,这种方式也会造成应用程序的代码越来越多,导致应用程序的可维护性越来越低,迭代成本越来越高。


技术实现要素:

4.鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的构建目标的构建方法、构建目标的构建装置、电子设备以及计算机可读存储介质。
5.为了解决上述问题,本发明实施例公开了一种构建目标的构建方法,包括:
6.响应于针对任一构建目标的构建指令,获取所述构建目标的配置文件;
7.根据所述配置文件,获取所述构建目标对应的目标通用组件和目标非通用组件,以及每个所述目标通用组件对应的业务逻辑数据;所述目标通用组件包括公用组件、插件组件中的至少一种;
8.基于所述目标非通用组件、所述目标通用组件和所述业务逻辑数据构建所述构建目标;
9.其中,所述公用组件和所述插件组件为预先根据每个初始通用组件的业务相关度、组成元素、与不同项目的适配度中的至少一项,对每个所述初始通用组件进行划分后得到,所述初始通用组件为与所述构建目标的耦合度低于预设数值的组件。
10.在一个或多个实施例中,在所述根据所述配置文件,获取所述构建目标对应的目标通用组件步骤之前,还包括:
11.针对任一项目下的每一初始通用组件,获取所述初始通用组件的分类属性;所述分类属性包括所述初始通用组件的业务相关度、组成元素、与不同项目的适配度中的至少一项;
12.根据每个所述初始通用组件的所述分类属性,对每个所述初始通用组件进行划分,以确定所述初始通用组件对应的公用组件、插件组件。
13.在一个或多个实施例中,获取每个所述目标通用组件对应的业务逻辑数据的步骤,包括:
14.在所述目标通用组件中包括公用组件的情况下,针对每个所述公用组件,根据所述构建目标对应的业务需要确定所述公用组件的接入参数;
15.在所述目标通用组件中包括插件组件的情况下,针对每个所述插件组件,根据所述插件组件的自身逻辑确定所述插件组件的接入参数。
16.在一个或多个实施例中,所述构建目标包括页面,且在所述构建目标为页面的情况下,所述目标非通用组件包括页面组件。
17.在一个或多个实施例中,在所述根据所述配置文件,获取所述构建目标对应的目标通用组件步骤之前,还包括:
18.响应于对所述初始通用组件中任一未测试组件进行测试的测试指令,对所述任一未测试组件进行测试;
19.若测试通过,则将所述任一未测试组件标记为已测试。
20.本发明实施例还公开了一种项目解耦方法,包括:
21.针对任一项目下的任一初始通用组件,获取所述初始通用组件的分类属性;所述分类属性包括所述初始通用组件的业务相关度、组成元素、与不同项目的适配度中的至少一项,所述初始通用组件为耦合度低于预设数值的组件;
22.根据每个所述初始通用组件的所述分类属性,对每个所述初始通用组件进行划分,以得到所述初始通用组件对应的公用组件、插件组件。
23.相应的,本发明实施例公开了一种构建目标的构建装置,包括:
24.第一获取模块,用于响应于针对任一构建目标的构建指令,获取所述构建目标的配置文件;
25.第二获取模块,用于根据所述配置文件,获取所述构建目标对应的目标通用组件和目标非通用组件,以及每个所述目标通用组件对应的业务逻辑数据;所述目标通用组件包括公用组件、插件组件中的至少一种;
26.构建模块,用于基于所述目标非通用组件、所述目标通用组件和所述业务逻辑数据构建所述构建目标;
27.其中,所述公用组件和所述插件组件为预先根据每个初始通用组件的业务相关度、组成元素、与不同项目的适配度中的至少一项,对每个所述初始通用组件进行划分后得到,所述初始通用组件为与所述构建目标的耦合度低于预设数值的组件。
28.在一个或多个实施例中,所述装置还包括:
29.第三获取模块,用于在所述根据所述配置文件,获取所述构建目标对应的目标通用组件步骤之前,针对任一项目下的每一初始通用组件,获取所述初始通用组件的分类属性;所述分类属性包括所述初始通用组件的业务相关度、组成元素、与不同项目的适配度中的至少一项;
30.第一划分模块,用于根据每个所述初始通用组件的所述分类属性,对每个所述初始通用组件进行划分,以确定所述初始通用组件对应的公用组件、插件组件。
31.在一个或多个实施例中,所述第二获取模块,具体用于:
32.在所述目标通用组件中包括公用组件的情况下,针对每个所述公用组件,根据所述构建目标对应的业务需要确定所述公用组件的接入参数;
33.在所述目标通用组件中包括插件组件的情况下,针对每个所述插件组件,根据所
述插件组件的自身逻辑确定所述插件组件的接入参数。
34.在一个或多个实施例中,所述构建目标包括页面,且在所述构建目标为页面的情况下,所述目标非通用组件包括页面组件。
35.在一个或多个实施例中,所述装置还包括:
36.在所述根据所述配置文件,获取所述构建目标对应的目标通用组件步骤之前,响应于对所述初始通用组件中任一未测试组件进行测试的测试指令,对所述任一未测试组件进行测试;
37.若测试通过,则将所述任一未测试组件标记为已测试。
38.相应的,本发明实施例还公开了一种项目解耦装置,包括:
39.第四获取模块,用于针对任一项目下的任一初始通用组件,获取所述初始通用组件的分类属性;所述分类属性包括所述初始通用组件的业务相关度、组成元素、与不同项目的适配度中的至少一项,所述初始通用组件为耦合度低于预设数值的组件;
40.第二划分模块,用于根据每个所述初始通用组件的所述分类属性,对每个所述初始通用组件进行划分,以得到所述初始通用组件对应的公用组件、插件组件
41.相应的,本发明实施例公开了一种电子设备,包括:处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现上述构建目标的构建方法和项目解耦方法实施例的各个步骤。
42.相应的,本发明实施例公开了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现上述构建目标的构建方法和项目解耦方法实施例的各个步骤。
43.本发明实施例包括以下优点:
44.应用程序响应于针对任一构建目标的构建指令,获取所述构建目标的配置文件,并根据所述配置文件,获取所述构建目标对应的目标通用组件和目标非通用组件,以及每个所述目标通用组件对应的业务逻辑数据;所述目标通用组件包括公用组件、插件组件中的至少一种;然后基于所述目标非通用组件、所述目标通用组件和所述业务逻辑数据构建所述构建目标;其中,所述公用组件和所述插件组件为预先根据每个初始通用组件的业务相关度、组成元素、与不同项目的适配度中的至少一项,对每个所述初始通用组件进行划分后得到,所述初始通用组件为与所述构建目标的耦合度低于预设数值的组件。这样,通过将目标非通用组件、公用组件和插件组件拆分的方式使得组件与构建目标的耦合度变得极低,不仅提升了具体业务流程上的代码的耦合问题,让代码整体的质量变得可控,保证了应用程序的运行效率,提高了用户体验。而且,由于每一部分组件都有了其需要处理的内容,使得整体项目的迭代变的轻松而有条理,保证了应用程序的可维护性。
附图说明
45.图1是本发明的一种构建目标的构建方法实施例的步骤流程图;
46.图2是本发明的一种构建目标的构建方法实施例的应用程序逻辑架构示意图;
47.图3是本发明的一种项目解耦方法实施例的步骤流程图;
48.图4是本发明的一种构建目标的构建装置实施例的结构框图;
49.图5是本发明的一种项目解耦装置实施例的结构框图。
具体实施方式
50.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
51.本发明实施例的核心构思之一在于,应用程序响应于针对任一构建目标的构建指令,获取所述构建目标的配置文件,并根据所述配置文件,获取所述构建目标对应的目标通用组件和目标非通用组件,以及每个所述目标通用组件对应的业务逻辑数据;所述目标通用组件包括公用组件、插件组件中的至少一种;然后基于所述目标非通用组件、所述目标通用组件和所述业务逻辑数据构建所述构建目标;其中,所述公用组件和所述插件组件为预先根据每个初始通用组件的业务相关度、组成元素、与不同项目的适配度中的至少一项,对每个所述初始通用组件进行划分后得到,所述初始通用组件为与所述构建目标的耦合度低于预设数值的组件。这样,通过将目标非通用组件、公用组件和插件组件拆分的方式使得组件与构建目标的耦合度变得极低,不仅提升了具体业务流程上的代码的耦合问题,让代码整体的质量变得可控,保证了应用程序的运行效率,提高了用户体验。而且,由于每一部分组件都有了其需要处理的内容,使得整体项目的迭代变的轻松而有条理,保证了应用程序的可维护性。
52.参照图1,示出了本发明的一种构建目标的构建方法实施例的步骤流程图,该方法可以应用于基于vue2的应用程序,构建目标为该应用程序中的任一项目,包括但不限于:页面、弹窗。
53.在本发明实施例中,当构建目标为页面时,对应的目标非通用组件包括页面组件;当构建目标为弹窗时,对应的目标非通用组件包括弹窗组件。相应的,当构建目标为其它对象时,对应的目标非通用组件也就包括对象组件,在此就不赘述了。
54.在对构建方法进行说明之前,先对构建目标采用的架构进行说明,以页面为例,参照图2,示出了应用程序的任一页面中各组件的架构。其中,任一页面都有一一对应的业务,该业务包括组件入口(app.vue),组件入口具有一一对应的入口文件(main.js),入口文件用来承载业务的入口。
55.应用程序可以安装在终端中,在安装的过程中,应用程序会在本地创建一个文件夹(一级文件夹),并在该文件夹中创建页面组件文件夹(二级文件夹)和通用组件文件夹(二级文件夹)。其中,页面组件文件夹用于存储页面组件,通用组件文件夹用于存储通用组件;页面组件文件夹可以采用vue2创建,通用组件文件夹可以采用framework创建。
56.在页面组件文件夹中,可以包括独立的页面组件,如图2中的page a.vue,也可以包括页面组件子文件夹(三级文件夹)。其中,当页面组件包括不超过数量阈值的子组件时,页面组件文件夹中可以包括各个子组件和入口文件(index.vue),如图2中的page b;当页面组件包括超过数量阈值的子组件时,还可以在页面组件子文件夹中创建components文件夹(四级文件夹)用于存储各个子组件和入口文件(index.vue),如图2中的page c。其中,入口文件用来承载页面组件的入口。
57.在通用组件文件夹中,可以包括公用组件文件夹(三级文件夹)和插件组件文件夹(三级文件夹)。
58.其中,在公用组件文件夹中,可以包括独立的公用组件,如图2中的公用组件a;也可以包括公用组件子文件夹(四级文件夹),包括各个子组件和入口文件(index.vue),如图
2中的公用组件b。其中,入口文件用来承载公用组件的入口。
59.在插件组件文件夹中,可以包括ui(user interface,用户界面)插件组件文件夹(四级文件夹),其中,包括各个ui插件组件和入口文件(index.js);还可以包括vue插件组件文件夹(四级文件夹)和入口文件(index.js)。其中,入口文件用来承载插件组件的入口。
60.在每个vue插件组件文件夹中,可以包括独立的vue插件组件,如图2中的vue插件组件1;也可以包括src文件夹(五级文件夹)和入口文件(index.js),src文件夹中包括各个子组件和入口文件(index.vue),如图2中的vue插件组件2。
61.进一步,在公用组件文件夹中,还可以包括公用组件测试文件夹(四级文件夹),其中存储有对任一公用组件进行测试的公用测试组件。相应的,在插件组件文件夹中,还可以包括插件组件测试文件夹(四级文件夹),其中存储有对任一插件组件(包括ui插件组件和vue插件组件)进行测试的插件测试组件。
62.也就是说,应用程序中的任一页面可以基于页面组件、公用组件和插件组件生成。其中,页面组件负责具体的业务处理,所有的接口也都在这一层处理。主要为业务主体ui布局、接口交互和整体逻辑流转的处理;公用组件负责与业务有耦合度的多次复用组件的处理。这部分内容有一定的业务熟悉,处理数据渲染和回填即可,不负责具体的接口调用;组件插件负责与业务相关但是可以完全脱离当前项目使用的ui和业务处理。具体来说,这一层的组件与项目完全隔离,为项目使用中的基础ui与逻辑处理层。比如,弹窗搜索组件、引导指令组件、埋点组件等。这部分组件后续可以通过vue2中npm(node package manager,node包管理器)包的方式单独打包和引入项目,与项目完全无耦合。
63.进一步,目标通用组件对应的业务逻辑数据是独立存储的,在获取到各个目标通用组件后,调用各个目标通用组件对应的业务逻辑数据即可。
64.需要说明的是,在实际应用中,当某个页面中的内容比较少时,可能出现不需要通用组件,或者不需要公用组件、插件组件的情况,本发明实施例仅仅以页面基于页面组件、公用组件和插件组件为例进行详细说明。
65.本发明实施例的构建目标的构建方法具体可以包括如下步骤:
66.步骤101,响应于针对任一构建目标的构建指令,获取所述构建目标的配置文件。
67.具体而言,应用程序在运行的过程中,需要向用户展示某个构建目标;其中,构建目标包括但不限于:页面、弹窗。
68.比如,以页面为例,当用户启动应用程序时,会展示应用程序的默认页面,或者,当用户点击了默认页面中的某个图标时,会进一步展示该图标对应的页面。那么,需要向用户展示的页面就是待展示页面,比如,默认页面,或者与图标对应的页面。
69.当应用程序检测到构建指令后,即可获取与该构建目标对应的配置文件,其中,配置文件用于构建该构建目标。
70.需要说明的是,构建指令可以是用户触发的,也可以是应用程序触发的。比如,接上例,当用户启动应用程序时,应用程序就会触发构建默认页面的构建指令;当用户点击某个图标时,也就是用户触发了构建对应的页面的构建指令。在实际应用中,构建指令的触发方式可以根据实际需求进行设置,本发明实施例对此不作限制。
71.步骤102,根据所述配置文件,获取所述构建目标对应的目标通用组件和目标非通用组件,以及每个所述目标通用组件对应的业务逻辑数据;所述目标通用组件包括公用组
件、插件组件中的至少一种;其中,所述公用组件和所述插件组件为预先根据每个初始通用组件的业务相关度、组成元素、与不同项目的适配度中的至少一项,对每个所述初始通用组件进行划分后得到,所述初始通用组件为与所述构建目标的耦合度低于预设数值的组件。
72.具体而言,在获取到构建目标的配置文件后,即可根据配置文件来获取该构建目标所需要的目标通用组件、目标非通用组件,以及每个目标通用组件对应的业务逻辑数据。
73.进一步,目标通用组件包括公用组件、插件组件中的至少一种。公用组件和插件组件可以通过对多个初始通用组件划分得到,划分的依据可以是每个初始通用组件的分类属性中的至少一项,分类属性包括但不限于:与不同业务的业务相关度、组成元素,以及与不同项目的适配度。其中,初始通用组件与该构建目标的耦合度低于预设数值。
74.需要说明的是,配置文件是预先设置完成并存储在本地的,配置文件中会记录每个构建目标对应的各个组件。当应用程序在终端中安装时,配置文件就可以存储在本地,后续可以通过线下或线上的方式对配置文件进行更新。
75.在本发明实施例中,在所述根据所述配置文件,获取所述构建目标对应的目标通用组件步骤之前,还包括:
76.针对任一项目下的每一初始通用组件,获取所述初始通用组件的分类属性;所述分类属性包括所述初始通用组件的业务相关度、组成元素、与不同项目的适配度中的至少一项;
77.根据每个所述初始通用组件的所述分类属性,对每个所述初始通用组件进行划分,以确定所述初始通用组件对应的公用组件、插件组件。
78.具体而言,在实际应用中,可以预先设置多个初始通用组件,并且设置每个初始通用组件对应的分类属性。这样,在获取目标通用组件之前,可以获取构建目标对应的每个初始通用组件的分类属性中的至少一项,分类属性包括但不限于:与不同业务的业务相关度、组成元素,以及与不同项目的适配度。
79.其中,组成元素表示组件是否可以拆分。具体的,公用组件是由原子组件组合而成,即,公用组件是原子组件的整合,那么公用组件的组成元素可以表示为原子组件的整合;插件组件即为原子组件,那么插件组件的组成元素可以表示为原子组件。需要说明的是,原子组件是组件的最小单位。
80.在获取到每个初始通用组件的分类属性后,即可根据业务相关度、组成元素、与不同项目的适配度中的至少一项对各个初始通用组件进行划分,从而确定出初始通用组件中的公用组件和插件组件。
81.其中,公用组件和插件组件中对应所需满得条件可以根据具体需求进行自定义设置,对此本发明实施例不加以限定。而且插件组件、通用组件的具体类型也可以根据需求进行自定义设置,对此本发明实施例也不加以限定。例如,插件组件可以为vue插件。
82.示例性地,公用组件的识别方式可以包括以下中的至少一条:
83.1、一定和业务强相关,也即和业务的相关度大于或等于一定阈值;
84.2、不具备多项目使用的条件,也就是具有逻辑的特殊性和项目唯一性;
85.3、由原子组件(不可再拆分组件)组合而成,是原子组件的整合;
86.插件组件的识别方式可以包括以下中的至少一条:
87.1、为原子组件(不可再拆分组件);
88.2、为现有ui组件库(例如github开源的通用组件库)的相似组件,也就是类似但是又不一样,可以理解为与现有组件的相似度在指定阈值范围内的组件;
89.公用组件的依赖方式可以为:根据业务需要提供对应的接入参数,属于被动方式接收参数;插件组件的依赖方式可以为:根据自身逻辑诉求决定外界需要传人的参数,属于主动方式设置接收参数。
90.其中,如果初始通用组件不可划分,那么目标通用组件就是初始通用组件,也就是公用组件或插件组件中的一种;如果初始通用组件可划分,那么就可以根据分类属性对初始通用组件进行划分,得到公用组件和插件组件,或者,将公用组件划分为插件组件,或者,将插件组件划分为公用组件。
91.需要说明的是,在实际应用中,当构建目标中的内容比较少时,可能会出现不需要通用组件,或者不需要目标通用组件,或者目标通用组件中不需要公用组件、插件组件中的至少一种的情况,那么此时获取构建目标需要的组件即可。
92.在本发明实施例中,获取每个所述目标通用组件对应的业务逻辑数据的步骤,包括:
93.在所述目标通用组件中包括公用组件的情况下,针对每个所述公用组件,根据所述构建目标对应的业务需要确定所述公用组件的接入参数;
94.在所述目标通用组件中包括插件组件的情况下,针对每个所述插件组件,根据所述插件组件的自身逻辑确定所述插件组件的接入参数。
95.具体而言,在实际应用中,可以预先设置公用组件的接入参数和插件组件的接入参数,这样,在获取业务逻辑数据时,如果目标通用组件中包括公用组件,那么就可以根据构建目标对应的业务需要获取公用组件的接入参数,也就是被动获取接入参数,然后采用该接入参数获取对应的业务逻辑数据;如果目标通用组件中包括插件组件,那么就可以根据插件组件的自身逻辑获取插件组件的接入参数,也就是主动获取接入参数,然后然后采用该接入参数获取对应的业务逻辑数据。
96.在本发明实施例中,在所述根据所述配置文件,获取所述构建目标对应的目标通用组件步骤之前,还包括:
97.响应于对所述初始通用组件中任一未测试组件进行测试的测试指令,对所述任一未测试组件进行测试;
98.若测试通过,则将所述任一未测试组件标记为已测试。
99.具体而言,在获取目标通用组件之前,如果检测到对初始通用组件中任一未测试组件进行测试的测试指令,那么就可以对该组件进行可用性测试,如果测试通过,那么就可以将该组件标记为已测试。这样,就可以保证初始通用组件的可用性。
100.需要说明的是,可以对初始通用组件进行测试,也可以将初始通用组件划分为公用组件和插件组件,再对公用组件和插件组件分别进行测试,在实际应用中可以根据实际需求进行设置,本发明实施例对此不作限制。
101.步骤103,基于所述目标非通用组件、所述目标通用组件和所述业务逻辑数据构建所述构建目标。
102.在获取到目标通用组件、目标非通用组件和业务逻辑数据后,即可采用目标通用组件、目标非通用组件和业务逻辑数据构建对应的构建目标。
103.为方便理解,还是以构建目标为页面进行举例说明。
104.基于页面组件和通用组件生成待展示页面,包括:
105.从配置文件中确定用于存储页面组件的页面组件文件夹,并引入页面组件文件夹中的页面组件;
106.从配置文件中确定用于存储通用组件的通用组件文件夹,并引入通用组件文件夹中的通用组件;
107.采用页面组件和通用组件生成待展示页面。
108.具体而言,配置文件中可以记载待展示页面在展示时所需要的各个组件,以及每个组件所在的文件夹,所以,可以从配置文件中确定出页面组件文件夹的地址,并从该地址引入页面组件,相应的,也可以从配置文件中确定出通用组件文件夹的地址,并从该地址引入通用组件,从而采用页面组件和通用组件生成待展示页面。
109.在本发明实施例中,当页面组件不包括页面子组件时,从配置文件中确定用于存储页面组件的页面组件文件夹,并引入页面组件文件夹中的页面组件,包括:
110.从配置文件中确定页面组件文件夹的第一地址,并从第一地址引入页面组件;
111.当页面组件包括页面子组件时,从配置文件中确定用于存储页面组件的页面组件文件夹,并引入页面组件文件夹中的页面组件,包括:
112.从配置文件中确定页面子组件的第一子地址,并从第一子地址引入页面子组件;第一子地址为第一地址的下级地址。
113.具体而言,如果引入的页面组件不包括页面子组件,也就是独立的页面组件,那么就可以从配置文件中确定出该页面组件所在的页面组件文件夹的地址(记为“第一地址”),然后从第一地址引入该页面组件。
114.如果引入的页面组件包括至少一个页面子组件,那么就可以从配置文件中确定出每个页面子组件所在的components文件夹的地址(记为“第一子地址”),然后从第一子地址引入各个页面子组件。其中,第一子地址为第一地址的下级地址。
115.比如,如图2所示,可以确定page a.vue所在的页面组件文件夹的第一地址,然后从第一地址引入page a.vue;也可以确定第一地址中page b的第一子地址,然后从第一子地址引入page b的各个子组件。
116.在本发明实施例中,通用组件文件夹包括公用组件文件夹和插件组件文件夹;
117.从配置文件中确定用于存储通用组件的通用组件文件夹,并引入通用组件文件夹中的通用组件,包括:
118.从配置文件中确定公用组件文件夹,并引入公用组件文件夹中的公用组件;
119.从配置文件中确定插件组件文件夹,并引入插件组件文件夹中的插件组件。
120.如前,由于通用组件包括公用组件和插件组件,所以,通用组件文件夹相应的就包括公用组件文件夹和插件组件文件夹。那么,在引入通用组件时,可以从配置文件中确定出公用组件文件夹的地址,并从该地址引入公用组件,以及,从配置文件中确定出插件组件文件夹的地址,并从该地址引入插件组件。
121.在本发明实施例中,当公用组件不包括公用子组件时,从配置文件中确定公用组件文件夹,并引入公用组件文件夹中的公用组件,包括:
122.从配置文件中确定页面组件文件夹的第二地址,并从第二地址引入公用组件;
123.当公用组件包括公用子组件时,从配置文件中确定公用组件文件夹,并引入公用组件文件夹中的公用组件,包括:
124.从配置文件中确定公用子组件的第二子地址,并从第二子地址引入公用子组件;第二子地址为第二地址的下级地址。
125.具体而言,如果引入的公用组件不包括公用子组件,也就是独立的公用组件,那么就可以从配置文件中确定出该公用组件所在的公用组件文件夹的地址(记为“第二地址”),然后从第二地址引入该公用组件。
126.如果引入的公用组件包括至少一个公用子组件,那么就可以从配置文件中确定出每个公用子组件所在的公用组件子文件夹的地址(记为“第二子地址”),然后从第二子地址引入各个公用子组件。其中,第二子地址为第二地址的下级地址。
127.比如,如图2所示,可以确定公用组件a所在的公用组件文件夹的第二地址,然后从第二地址引入公用组件a;也可以确定第二地址中公用组件b的第二子地址,然后从第二子地址引入公用组件b的各个子组件。
128.在本发明实施例中,当插件组件不包括插件子组件时,从配置文件中确定插件组件文件夹,并引入插件组件文件夹中的插件组件,包括:
129.从配置文件中确定插件组件文件夹的第三地址,并从第三地址引入插件组件;
130.当插件组件包括插件子组件时,从配置文件中确定插件组件文件夹,并引入插件组件文件夹中的插件组件,包括:
131.从配置文件中确定子组件的第三子地址,并从第三子地址引入插件子组件;第三子地址为第三地址的下级地址。
132.具体而言,如果引入的插件组件不包括插件子组件,也就是独立的插件组件,那么就可以从配置文件中确定出该插件组件所在的插件组件文件夹的地址(记为“第三地址”),然后从第三地址引入该插件组件。
133.如果引入的插件组件包括至少一个插件子组件,那么就可以从配置文件中确定出每个插件子组件所在的插件组件子文件夹的地址(记为“第三子地址”),然后从第三子地址引入各个插件子组件。其中,第三子地址为第三地址的下级地址。
134.比如,如图2所示,可以确定vue插件组件1所在的插件组件文件夹的第三地址,然后从第三地址引入vue插件组件1;也可以确定第三地址中插件组件2和3的第三子地址,然后从第三子地址引入vue插件组件2和3的各个子组件。
135.或者,可以确定ui插件组件文件夹的地址,然后从该地址中引入各个ui插件组件。
136.在本发明实施例中,公用组件文件夹还包括公用组件测试文件夹,用于存储测试公用组件的公用测试组件;方法还包括:
137.响应于对目标公用组件进行测试的测试指令,引入公用组件测试文件夹中的公用测试组件,对目标公用组件进行测试;目标公用组件为公用组件文件夹中未测试的公用组件;
138.若测试通过,则将目标公用组件标记为已测试。
139.具体而言,由于公用组件文件夹中还包括公用组件测试文件夹,所以,当检测到对目标公用组件进行测试的测试指令时,可以从公用组件测试文件夹中引入公用测试组件对目标公用组件进行测试,其中,目标公用组件为公用组件文件夹中未测试的公用组件。
140.如果测试通过,那么就可以将目标公用组件标记为已测试;如果测试不通过,那么就可以将目标公用组件标记为测试不通过,这样,后续可以对测试不通过的公用组件进行处理。
141.在本发明实施例中,插件组件文件夹还包括插件组件测试文件夹,用于存储测试插件组件的插件测试组件;方法还包括:
142.响应于对目标插件组件进行测试的测试指令,引入插件组件测试文件夹中的插件测试组件,对未测试的插件组件进行测试;目标插件组件为插件组件文件夹中测试的插件组件;
143.若测试通过,则将未测试的插件组件标记为已测试。
144.具体而言,由于插件组件文件夹中还包括插件组件测试文件夹,所以,当检测到对目标插件组件进行测试的测试指令时,可以从插件组件测试文件夹中引入插件测试组件对目标插件组件进行测试,其中,目标插件组件为插件组件文件夹中未测试的插件组件。
145.如果测试通过,那么就可以将目标插件组件标记为已测试;如果测试不通过,那么就可以将目标插件组件标记为测试不通过,这样,后续可以对测试不通过的插件组件进行处理。
146.需要说明的是,测试指令可以是人为触发的,也可以是应用程序触发的,还可以是其它方式触发的。在实际应用中,测试指令的触发方式可以根据实际需求进行设置,本发明实施例对此不作限制。
147.在构建得到构建目标后,在应用程序中展示该构建目标即可。
148.在本发明实施例中,应用程序响应于针对任一构建目标的构建指令,获取所述构建目标的配置文件,并根据所述配置文件,获取所述构建目标对应的目标通用组件和目标非通用组件,以及每个所述目标通用组件对应的业务逻辑数据;所述目标通用组件包括公用组件、插件组件中的至少一种;然后基于所述目标非通用组件、所述目标通用组件和所述业务逻辑数据构建所述构建目标;其中,所述公用组件和所述插件组件为预先根据每个初始通用组件的业务相关度、组成元素、与不同项目的适配度中的至少一项,对每个所述初始通用组件进行划分后得到,所述初始通用组件为与所述构建目标的耦合度低于预设数值的组件。这样,通过将目标非通用组件、公用组件和插件组件拆分的方式使得组件与构建目标的耦合度变得极低,不仅提升了具体业务流程上的代码的耦合问题,让代码整体的质量变得可控,保证了应用程序的运行效率,提高了用户体验。而且,由于每一部分组件都有了其需要处理的内容,使得整体项目的迭代变的轻松而有条理,保证了应用程序的可维护性。
149.参照图3,示出了本发明的一种项目解耦方法实施例的步骤流程图,该方法可以应用于基于vue2的应用程序,构建目标为该应用程序中的任一项目,包括但不限于:页面、弹窗一种方法,具体可以包括如下步骤:
150.步骤301,针对任一项目下的任一初始通用组件,获取所述初始通用组件的分类属性;所述分类属性包括所述初始通用组件的业务相关度、组成元素、与不同项目的适配度中的至少一项,所述初始通用组件为耦合度低于预设数值的组件;
151.步骤302,根据每个所述初始通用组件的所述分类属性,对每个所述初始通用组件进行划分,以得到所述初始通用组件对应的公用组件、插件组件。
152.具体而言,在实际应用中,可以预先设置多个初始通用组件,并且设置每个初始通
用组件对应的分类属性。这样,在获取目标通用组件之前,可以获取构建目标对应的每个初始通用组件的分类属性中的至少一项,分类属性包括但不限于:与不同业务的业务相关度、组成元素,以及与不同项目的适配度。
153.其中,组成元素表示组件是否可以拆分。具体的,公用组件是由原子组件组合而成,即,公用组件是原子组件的整合,那么公用组件的组成元素可以表示为原子组件的整合;插件组件即为原子组件,那么插件组件的组成元素可以表示为原子组件。需要说明的是,原子组件是组件的最小单位。
154.在获取到每个初始通用组件的分类属性后,即可根据业务相关度、组成元素、与不同项目的适配度中的至少一项对各个初始通用组件进行划分,从而确定出初始通用组件中的公用组件和插件组件。
155.其中,如果初始通用组件不可划分,那么目标通用组件就是初始通用组件,也就是公用组件或插件组件中的一种;如果初始通用组件可划分,那么就可以根据分类属性对初始通用组件进行划分,得到公用组件和插件组件,或者,将公用组件划分为插件组件,或者,将插件组件划分为公用组件。
156.需要说明的是,在实际应用中,当构建目标中的内容比较少时,可能会出现不需要通用组件,或者不需要目标通用组件,或者目标通用组件中不需要公用组件、插件组件中的至少一种的情况,那么此时获取构建目标需要的组件即可。
157.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
158.参照图4,示出了本发明的一种构建目标的构建装置实施例的结构框图,具体可以包括如下模块:
159.第一获取模块401,用于响应于针对任一构建目标的构建指令,获取所述构建目标的配置文件;
160.第二获取模块402,用于根据所述配置文件,获取所述构建目标对应的目标通用组件和目标非通用组件,以及每个所述目标通用组件对应的业务逻辑数据;所述目标通用组件包括公用组件、插件组件中的至少一种;
161.构建模块403,用于基于所述目标非通用组件、所述目标通用组件和所述业务逻辑数据构建所述构建目标;
162.其中,所述公用组件和所述插件组件为预先根据每个初始通用组件的业务相关度、组成元素、与不同项目的适配度中的至少一项,对每个所述初始通用组件进行划分后得到,所述初始通用组件为与所述构建目标的耦合度低于预设数值的组件。
163.在本发明实施例中,所述装置还包括:
164.第三获取模块,用于在所述根据所述配置文件,获取所述构建目标对应的目标通用组件步骤之前,针对任一项目下的每一初始通用组件,获取所述初始通用组件的分类属性;所述分类属性包括所述初始通用组件的业务相关度、组成元素、与不同项目的适配度中的至少一项;
165.第一划分模块,用于根据每个所述初始通用组件的所述分类属性,对每个所述初始通用组件进行划分,以确定所述初始通用组件对应的公用组件、插件组件。
166.在本发明实施例中,所述第二获取模块,具体用于:
167.在所述目标通用组件中包括公用组件的情况下,针对每个所述公用组件,根据所述构建目标对应的业务需要确定所述公用组件的接入参数;
168.在所述目标通用组件中包括插件组件的情况下,针对每个所述插件组件,根据所述插件组件的自身逻辑确定所述插件组件的接入参数。
169.在本发明实施例中,所述构建目标包括页面,且在所述构建目标为页面的情况下,所述目标非通用组件包括页面组件。
170.在本发明实施例中,所述装置还包括:
171.在所述根据所述配置文件,获取所述构建目标对应的目标通用组件步骤之前,响应于对所述初始通用组件中任一未测试组件进行测试的测试指令,对所述任一未测试组件进行测试;
172.若测试通过,则将所述任一未测试组件标记为已测试。
173.参照图5,示出了本发明的一种项目解耦装置实施例的结构框图,具体可以包括如下模块:
174.第四获取模块501,用于针对任一项目下的任一初始通用组件,获取所述初始通用组件的分类属性;所述分类属性包括所述初始通用组件的业务相关度、组成元素、与不同项目的适配度中的至少一项,所述初始通用组件为耦合度低于预设数值的组件;
175.第二划分模块502,用于根据每个所述初始通用组件的所述分类属性,对每个所述初始通用组件进行划分,以得到所述初始通用组件对应的公用组件、插件组件。
176.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
177.本发明实施例还提供了一种电子设备,包括:
178.包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述构建目标的构建方法和项目解耦方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
179.本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储计算机程序,计算机程序被处理器执行时实现上述构建目标的构建方法和项目解耦方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
180.本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
181.本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
182.本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图
中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
183.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
184.这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
185.尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
186.最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
187.以上对本发明所提供的一种构建目标的构建方法和项目解耦方法、一种构建目标的构建装置和项目解耦装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1