【技术实现步骤摘要】
本申请涉及计算机,尤其涉及一种共享方法及装置。
技术介绍
1、现代程序开发基本都需要依赖集成开发环境(integrated developmentenvironment,ide)架构实现,当前业界ide种类繁多,功能侧重点也各有不同,业界主流的ide技术架构都做到了架构分离,即将内核(core)与插件(plugin)相分离,内核主要负责完成对操作系统的隔离,插件负责完成对功能的隔离。
2、ide架构中包括多个代码分析类的插件,比如代码跳转、代码补全和代码生成等多个语言服务类插件。ide架构中多个插件之间互相隔离,存在多个插件可能需要具备某个相同能力,甚至需要执行某项相同操作,导致资源浪费的问题。
技术实现思路
1、本申请提供一种共享方法及装置,用于解决ide架构中资源浪费的问题。
2、第一方面,本申请提供一种共享方法,该共享方法适用于ide架构,ide架构包括共享装置、第一插件和第二插件,共享方法由共享装置执行。
3、其中,共享装置中存储有第一插件提供的m个知识数据,m为正整数。方法包括:共享装置接收第二插件的数据获取请求;共享装置根据数据获取请求,从m个知识数据中查找目标知识数据;共享装置向第二插件发送目标知识数据。
4、上述技术方案中,共享装置中存储有第一插件提供的m个知识数据,当第二插件需要使用m个知识数据中的某个知识数据(即目标知识数据)时,第二插件可直接向共享装置请求该目标知识数据,而无需再对代码文件进行分析得到,有助于节省
5、在一种可能的实现方式中,共享装置接收第二插件的数据获取请求之前,还包括:共享装置接收第一插件的数据注册请求,数据注册请求中包括m个知识数据的标识;共享装置记录m个知识数据的标识。
6、上述技术方案中,第一插件可以先向共享装置注册m个知识数据的标识,从而共享装置能够确定当前共享装置中是否存在数据获取请求所要请求的目标知识数据。
7、在一种可能的实现方式中,共享装置记录m个知识数据的标识之后,还从第一插件中获取m个知识数据,并存储该m个知识数据;其中,m个知识数据是第一插件对工作空间中的代码文件进行分析得到的;或者,m个知识数据是第一插件对基础数据分析得到的,基础数据是共享装置对工作空间中的代码文件进行分析得到的;第一插件和第二插件共同作用于该工作空间中;基础数据是抽象语法树、令牌(token)序列中一项或多项;m个知识数据包括代码索引、静态单赋值、控制流图、程序依赖图中一项或多项。
8、上述技术方案中,共享装置从第一插件中同步m个知识数据,从而共享装置能够从其存储的m个知识数据中,查找到数据获取请求所要请求的目标知识数据。
9、在一种可能的实现方式中,共享装置存储m个知识数据之后,共享装置还从第一插件中获取m'个知识数据的变更信息;共享装置根据m'个知识数据的变更信息,更新m个知识数据中的m'个知识数据;其中,m'个知识数据的变更信息是第一插件根据工作空间中的代码文件的变更信息,进行增量分析得到的;或者,m'个知识数据的变更信息是第一插件根据基础数据的变更信息,进行增量分析得到的,基础数据的变更信息是共享装置根据工作空间中的代码文件的变更信息,进行增量分析得到的。
10、上述技术方案中,共享装置还能从第一插件中获取知识数据的变更信息,并根据知识数据的变更信息更新本地对应的知识数据,从而保障共享装置中存储的知识数据与第一插件分析得到的知识数据相同,即保障共享装置中存储的知识数据为最新的知识数据。
11、在一种可能的实现方式中,共享装置向第二插件发送目标知识数据之后,还接收第二插件对目标知识数据的订阅请求,其中,订阅请求用于获取目标知识数据的变更信息;共享装置在从第一插件中接收目标知识数据的变更信息之后,还向第二插件发送目标知识数据的变更信息。
12、上述技术方案中,共享装置在确定目标知识数据发生变更时,还向第二插件发送目标知识数据的变更信息,从而保障第二插件获取到的目标知识数据为最新的知识数据。
13、在一种可能的实现方式中,共享装置中存储有生产插件提供的m个知识数据,生产插件包括第一插件,m为正整数;在用户开发第三插件的过程中,共享装置还向前端模块发送m个知识数据的描述信息,以使得用户根据前端模块中显示的、m个知识数据的描述信息,从m个知识数据中选择第三插件能够从共享装置中获取的知识数据。
14、上述技术方案中,共享装置将其存储的m个知识数据的描述信息展示在前端模块中,用户在开发第三插件的过程中,可以得知哪些知识数据能够直接从共享装置中获取,所以设置第三插件从共享装置中请求该知识数据,而无需再次对代码文件进行分析,即避免多个插件重复分析代码文件,有助于节省计算资源。
15、第二方面,本申请提供一种共享方法,适用于ide架构,ide架构包括共享装置、第一插件和第二插件,共享方法由共享装置执行。
16、其中,共享装置中注册有第一插件提供的n个服务,n为正整数。方法包括:共享装置接收第二插件的服务调用请求;共享装置根据服务调用请求,调用n个服务中的目标服务;共享装置接收第一插件提供目标服务得到的操作结果,向第二插件发送操作结果。
17、上述技术方案中,共享装置中注册有第一插件提供的n个服务,当第二插件需要使用n个服务中的某个服务(即目标服务)时,第二插件可直接向共享装置请求调用该目标服务,而无需在第二插件中实现该目标服务,有助于节省计算资源。
18、在一种可能的实现方式中,第一插件和第二插件作用于同一个工作空间,操作结果是第一插件对工作空间提供目标服务到的。
19、在一种可能的实现方式中,共享装置接收第二插件的服务调用请求之前,还接收第一插件的服务注册请求,服务注册请求中包括n个服务的第一接口地址,服务的第一接口地址用于共享装置调用服务;共享装置根据n个服务的第一接口地址,生成n个服务的第二接口地址,服务的第二接口地址用于第二插件调用服务;共享装置记录n个服务的第一接口地址和第二接口地址。
20、上述技术方案中,第一插件可以先向共享装置注册n个服务的第一接口地址,从而共享装置能够确定当前共享装置中是否提供服务调用请求所要请求的目标服务。
21、在一种可能的实现方式中,共享装置记录n个服务的第一接口地址和第二接口地址之后,还接收第二插件的服务查询请求,服务查询请求中包括目标服务的标识,n个服务中包括目标服务;共享装置向第二插件发送目标服务的第二接口地址。相应的,共享装置根据服务调用请求,调用n个服务中的目标服务,具体可以是,共享装置根据服务调用请求中的目标服务的第二接口地址,确定目标服务的第一接口地址;共享装置根据目标服务的第一接口地址,调用目标服务。
22、上述技术方案中,共享装置将向第二插件发送目标服务的第二接口地址,从而第二插件在需要请求调用目标服务时,向共享装置发送包含有目标服务的第二接口地址的服务调用请求本文档来自技高网...
【技术保护点】
1.一种共享方法,其特征在于,适用于集成开发环境IDE架构,所述IDE架构包括共享装置、第一插件和第二插件;
2.如权利要求1所述的方法,其特征在于,所述共享装置接收所述第二插件的数据获取请求之前,还包括:
3.如权利要求2所述的方法,其特征在于,所述共享装置记录所述M个知识数据的标识之后,还包括:
4.如权利要求3所述的方法,其特征在于,所述共享装置存储所述M个知识数据之后,还包括:
5.如权利要求1所述的方法,其特征在于,所述共享装置向所述第二插件发送所述目标知识数据之后,还包括:
6.如权利要求1-5中任一项所述的方法,其特征在于,所述共享装置中存储有生产插件提供的m个知识数据,所述生产插件包括所述第一插件,m为正整数;
7.一种共享方法,其特征在于,适用于集成开发环境IDE架构,所述IDE架构包括共享装置、第一插件和第二插件;
8.如权利要求7所述的方法,其特征在于,所述第一插件和所述第二插件作用于同一个工作空间,所述操作结果是所述第一插件对所述工作空间提供所述目标服务到的。
10.如权利要求9所述的方法,其特征在于,所述共享装置记录所述N个服务的第一接口地址和第二接口地址之后,还包括:
11.如权利要求9所述的方法,其特征在于,所述共享装置根据所述服务调用请求,调用所述N个服务中的目标服务,包括:
12.如权利要求7-11中任一项所述的方法,其特征在于,所述共享装置中注册有生产插件提供的n个服务,所述生产插件包括所述第一插件,n为正整数;
13.一种共享装置,其特征在于,适用于集成开发环境IDE架构,所述IDE架构包括所述装置、第一插件和第二插件;
14.如权利要求13所述的装置,其特征在于,所述装置还包括:数据注册模块;
15.如权利要求14所述的装置,其特征在于,所述装置还包括:数据上传模块;
16.如权利要求15所述的装置,其特征在于,所述数据上传模块存储所述M个知识数据之后,还用于:
17.如权利要求13所述的装置,其特征在于,所述数据下载模块向所述第二插件发送所述目标知识数据之后,还用于:
18.如权利要求13-17中任一项所述的装置,其特征在于,所述装置中存储有生产插件提供的m个知识数据,所述生产插件包括所述第一插件,m为正整数;
19.一种共享装置,其特征在于,适用于集成开发环境IDE架构,所述IDE架构包括所述装置、第一插件和第二插件;
20.如权利要求19所述的装置,其特征在于,所述第一插件和所述第二插件作用于同一个工作空间,所述操作结果是所述第一插件对所述工作空间提供所述目标服务到的。
21.如权利要求19所述的装置,其特征在于,在所述服务调用模块接收所述第二插件的服务调用请求之前,所述服务注册模块用于:
22.如权利要求21所述的装置,其特征在于,还包括:服务发现模块;
23.如权利要求21所述的装置,其特征在于,在所述服务调用模块在根据所述服务调用请求,调用所述N个服务中目标服务时,具体用于:
24.如权利要求19-23中任一项所述的装置,其特征在于,所述服务注册模块中注册有生产插件提供的n个服务,所述生产插件包括所述第一插件,n为正整数;
25.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
26.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求1-6中任一项所述的方法,或者,以使得所述计算设备集群执行如权利要求7-12中任一项所述的方法。
27.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1-6中任一项所述的方法,或者,以使得所述计算设备集群执行如权利要求7-12中任一项所述的方法。
28.一种共享系统,其特征在于,所述系统包括:如权利要求13-18中任一项所述的装置,以及如权利要求19-24中任一项所述的装置。
...【技术特征摘要】
1.一种共享方法,其特征在于,适用于集成开发环境ide架构,所述ide架构包括共享装置、第一插件和第二插件;
2.如权利要求1所述的方法,其特征在于,所述共享装置接收所述第二插件的数据获取请求之前,还包括:
3.如权利要求2所述的方法,其特征在于,所述共享装置记录所述m个知识数据的标识之后,还包括:
4.如权利要求3所述的方法,其特征在于,所述共享装置存储所述m个知识数据之后,还包括:
5.如权利要求1所述的方法,其特征在于,所述共享装置向所述第二插件发送所述目标知识数据之后,还包括:
6.如权利要求1-5中任一项所述的方法,其特征在于,所述共享装置中存储有生产插件提供的m个知识数据,所述生产插件包括所述第一插件,m为正整数;
7.一种共享方法,其特征在于,适用于集成开发环境ide架构,所述ide架构包括共享装置、第一插件和第二插件;
8.如权利要求7所述的方法,其特征在于,所述第一插件和所述第二插件作用于同一个工作空间,所述操作结果是所述第一插件对所述工作空间提供所述目标服务到的。
9.如权利要求7所述的方法,其特征在于,所述共享装置接收所述第二插件的服务调用请求之前,还包括:
10.如权利要求9所述的方法,其特征在于,所述共享装置记录所述n个服务的第一接口地址和第二接口地址之后,还包括:
11.如权利要求9所述的方法,其特征在于,所述共享装置根据所述服务调用请求,调用所述n个服务中的目标服务,包括:
12.如权利要求7-11中任一项所述的方法,其特征在于,所述共享装置中注册有生产插件提供的n个服务,所述生产插件包括所述第一插件,n为正整数;
13.一种共享装置,其特征在于,适用于集成开发环境ide架构,所述ide架构包括所述装置、第一插件和第二插件;
14.如权利要求13所述的装置,其特征在于,所述装置还包括:数据注册模块;
15.如权利要求14所述的装置,其特征在于,所述装置还包括:数据上传模块;
16.如权利要求15所述的装置,其特征在于,...
【专利技术属性】
技术研发人员:王一凡,梁广泰,
申请(专利权)人:华为云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。