CN114995830A - 一种代码编译方法及装置 - Google Patents

一种代码编译方法及装置 Download PDF

Info

Publication number
CN114995830A
CN114995830A CN202210926381.0A CN202210926381A CN114995830A CN 114995830 A CN114995830 A CN 114995830A CN 202210926381 A CN202210926381 A CN 202210926381A CN 114995830 A CN114995830 A CN 114995830A
Authority
CN
China
Prior art keywords
function
code
atomic
compiled
service
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.)
Granted
Application number
CN202210926381.0A
Other languages
English (en)
Other versions
CN114995830B (zh
Inventor
卢深镇
黄海锋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Koubei Network Technology Co Ltd
Original Assignee
Zhejiang Koubei Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Koubei Network Technology Co Ltd filed Critical Zhejiang Koubei Network Technology Co Ltd
Priority to CN202210926381.0A priority Critical patent/CN114995830B/zh
Publication of CN114995830A publication Critical patent/CN114995830A/zh
Application granted granted Critical
Publication of CN114995830B publication Critical patent/CN114995830B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation

Abstract

本申请实施例提供一种代码编译方法及装置,该方法包括:提供服务端侧的上层设置适用于多端侧的统一的第一待编译代码,第一待编译代码是为完成第一服务逻辑的标准化逻辑代码,其包括实现第一服务逻辑中多个不同服务功能的标准化原子函数的封装信息。需要实现第一服务逻辑的端侧通过统一的上层逻辑接口获取第一待编译代码,根据第一待编译代码中标准化的原子函数的封装信息,获得适用于端侧在实现第一服务逻辑时所需的函数集合,形成端侧第一函数包。因此,此方法使得开发人员开发逻辑代码时,无需考虑各端侧之间的差异设置不同的逻辑代码,针对多个端侧设置统一的标准化的逻辑代码,提升代码开发效率,有利于代码可复用性,降低代码开发成本。

Description

一种代码编译方法及装置
技术领域
本申请涉及计算机技术领域,具体涉及一种代码编译方法。本申请还涉及一种代码编译装置、电子设备及计算机存储介质,一种代码运行方法、装置、电子设备及计算机存储介质,一种代码生成方法、装置、电子设备及计算机存储介质。
背景技术
目前,线上服务存在于多个端侧中,针对于相同的服务逻辑,不同端侧所采用的逻辑代码不同。为了完成每个端侧中实现该服务逻辑的逻辑代码,在开发逻辑代码的过程中,需针对每个端侧设置其对应的逻辑代码,以完成该服务逻辑。然而,由于多个端侧对于相同的服务逻辑的实现方式及标准不统一,导致开发人员在开发逻辑代码的过程中,针对各端侧分别设置的逻辑代码中存在设置重复性的相同代码以及部分差异性代码,极大降低了代码开发效率及可维护性。
发明内容
本申请实施例提供一种代码编译方法,在多个端侧需要实现同一个服务逻辑的条件下,可提升多端侧上层开发逻辑代码时的代码开发效率及可维护性。本申请实施例还提供一种代码编译装置、电子设备及计算机存储介质,一种代码运行方法、装置、电子设备及计算机存储介质,一种代码生成方法、装置、电子设备及计算机存储介质。
本申请实施例提供一种代码编译方法,包括:获得第一待编译代码,所述第一待编译代码是为完成第一服务逻辑的逻辑代码,所述第一待编译代码包括为完成所述第一服务逻辑所需的原子函数的封装信息,所述原子函数是为实现所有服务逻辑中的相同服务功能的标准化函数;从所述第一待编译代码中获得所述第一待编译代码包括的所有原子函数的封装信息;根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,所述端侧第一函数包是提供服务的端侧在实现所述第一服务逻辑时所需的函数集合。
可选的,所述根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,包括:确定需要实现所述第一服务逻辑的所有端侧;针对所述所有端侧中的任意一个端侧,根据所述第一待编译代码中所有原子函数的封装信息,获得所述所有原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息;根据所述所有原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息,生成适用于所述任意一个端侧的端侧第一函数包。
可选的,还包括:获得第二待编译代码,所述第二待编译代码是为完成第二服务逻辑的逻辑代码,所述第二待编译代码包括为完成所述第二服务逻辑所需的原子函数的封装信息;从所述第二待编译代码中获得所述第二待编译代码包括的所有原子函数的封装信息;所述针对所述所有端侧中的任意一个端侧,根据所述第一待编译代码中所有原子函数的封装信息,获得所述所有原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息,包括:根据所述第一待编译代码中所有原子函数的封装信息和所述第二待编译代码中所述原子函数的封装信息,判断所述第一待编译代码和所述第二待编译代码是否包括相同的原子函数的封装信息;如果是,则针对所述所有端侧中的任意一个端侧,获取所述第一待编译代码中的一部分原子函数的封装信息,所述一部分原子函数的封装信息是指所述第一待编译代码包括的所有原子函数的封装信息中除所述相同的原子函数的封装信息之外的封装信息集合;根据所述第一待编译代码中的一部分原子函数的封装信息,获得所述一部分原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息。
可选的,所述根据所述所有原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息,生成适用于所述任意一个端侧的端侧第一函数包,包括:根据所述一部分原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息,生成适用于所述任意一个端侧的端侧第一函数包。
可选的,还包括:获得第二待编译代码,所述第二待编译代码是为完成第二服务逻辑的逻辑代码,所述第二待编译代码包括为完成所述第二服务逻辑所需的原子函数的封装信息;从所述第二待编译代码中获得所述第二待编译代码包括的所有原子函数的封装信息;所述根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,包括:根据所述第一待编译代码中所有原子函数的封装信息和所述第二待编译代码中所有原子函数的封装信息,判断所述第一待编译代码和所述第二待编译代码是否包括相同的原子函数的封装信息;如果是,则获取所述第一待编译代码中的一部分原子函数的封装信息,所述一部分原子函数的封装信息是指所述第一待编译代码包括的所有原子函数的封装信息中除所述相同的原子函数的封装信息之外的封装信息集合;根据所述第一待编译代码中的一部分原子函数的封装信息,生成所述端侧第一函数包。
可选的,所述根据所述第一待编译代码中的一部分原子函数的封装信息,生成所述端侧第一函数包,包括:确定需要实现所述第一服务逻辑的所有端侧;针对所述所有端侧中的任意一个端侧,根据所述第一待编译代码中的一部分原子函数的封装信息,获得所述一部分原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息;根据所述一部分原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息,生成适用于所述任意一个端侧的端侧第一函数包。
可选的,还包括:根据所述第二待编译代码中所有原子函数的封装信息,生成端侧第二函数包,所述端侧第二函数包是提供服务的端侧在实现所述第二服务逻辑时所需的函数集合。
可选的,所述根据所述第二待编译代码中所有原子函数的封装信息,生成端侧第二函数包,包括:确定需要实现所述第二服务逻辑的所有端侧;针对所述所有端侧中的任意一个端侧,根据所述第二待编译代码中所有原子函数的封装信息,获得所述所有原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息;根据所述所有原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息,生成适用于所述任意一个端侧的端侧第二函数包。
可选的,所述第一待编译代码包括所述第一待编译代码中每个原子函数的执行顺序;所述根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,包括:根据所述第一待编译代码中所有原子函数的封装信息,结合所述第一待编译代码中每个原子函数的执行顺序,生成端侧第一函数包。
可选的,所述根据所述第一待编译代码中所有原子函数的封装信息,结合所述第一待编译代码中每个原子函数的执行顺序,生成端侧第一函数包,包括:根据所述第一待编译代码中所有原子函数的封装信息,获得所述所有原子函数中的每个原子函数对应于端侧的端侧函数的封装信息;根据所述第一待编译代码中每个原子函数的执行顺序,获得所述每个原子函数对应于端侧的端侧函数的执行顺序;根据所述所有原子函数中的每个原子函数对应于端侧的端侧函数的封装信息,结合所述每个原子函数对应于端侧的端侧函数的执行顺序,生成端侧第一函数包。
可选的,还包括:获得所述第一待编译代码中每个原子函数之间的逻辑关系;根据所述第一待编译代码中每个原子函数之间的逻辑关系,生成所述每个原子对应于端侧的端侧函数之间的逻辑关系;将所述第一待编译代码中每个原子函数对应于端侧的端侧函数之间的逻辑关系,存储于端侧函数关系库中。
本申请实施例还提供一种代码编译装置,包括:第一待编译代码获得单元,用于获得第一待编译代码,所述第一待编译代码是为完成第一服务逻辑的逻辑代码,所述第一待编译代码包括为完成所述第一服务逻辑所需的原子函数的封装信息,所述原子函数是为实现所有服务逻辑中的相同服务功能的标准化函数;原子函数获得子单元,用于从所述第一待编译代码中获得所述第一待编译代码包括的所有原子函数的封装信息;端侧第一函数包生成单元,用于根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,所述端侧第一函数包是提供服务的端侧在实现所述第一服务逻辑时所需的函数集合。
本申请实施例还提供一种代码运行方法,包括:获得适用于本端的端侧第一函数包,所述端侧第一函数包是为完成第一服务逻辑所需的适用于本端的端侧函数的封装信息集合;从所述端侧第一函数包中获得适用于本端的端侧函数的封装信息;根据所述端侧函数的封装信息,获得所述端侧函数的本端运行代码;运行所述端侧函数的本端运行代码,以在本端完成所述第一服务逻辑。
可选的,所述根据所述端侧函数的封装信息,获得所述端侧函数的本端运行代码,包括:根据所述端侧函数的封装信息,从本端函数代码库中获得所述端侧函数的本端运行代码,所述本端函数代码库中具有可在本端运行的实现服务功能的函数代码。
可选的,所述端侧第一函数包中包括提供服务的端侧实现所述第一服务逻辑时所需的一部分端侧函数的封装信息;所述从所述端侧第一函数包中获得适用于本端的端侧函数的封装信息,包括:从所述端侧第一函数包中获得用于运行所述第一服务逻辑时适用于本端的一部分端侧函数的封装信息;所述方法还包括:确定本端侧运行所述第一服务逻辑时还需要的其它端侧函数的封装信息,所述其它端侧函数的封装信息是指所述本端侧实现所述第一服务逻辑时所需的所有端侧函数中除所述一部分端侧函数之外的端侧函数的封装信息;从适用于本端的其它端侧函数包中获得用于运行所述第一服务逻辑时适用于本端的其它端侧函数的封装信息。
可选的,所述确定本端侧运行所述第一服务逻辑时还需要的其它端侧函数的封装信息,包括:获取本端侧运行所述第一服务逻辑时所需的各个端侧函数之间的逻辑关系;根据所述各个端侧函数之间的逻辑关系,确定本端侧运行所述第一服务逻辑时所需的所有端侧函数的封装信息;根据本端侧运行所述第一服务逻辑时所需的所有端侧函数的封装信息,以及所述端侧第一函数包中的所述一部分端侧函数的封装信息,确定本端侧运行所述第一服务逻辑时还需要的其它端侧函数的封装信息。
可选的,还包括:获得适用于本端的端侧第二函数包,所述端侧第二函数包是为完成第二服务逻辑所需的适用于本端的端侧函数的封装信息集合;从所述端侧第二函数包中获得适用于本端的端侧函数的封装信息;所述从适用于本端的其它端侧函数包中获得用于运行所述第一服务逻辑时适用于本端的其它端侧函数的封装信息,包括:判断所述端侧第二函数包中是否包括所述其它端侧函数的封装信息;如果是,则从所述端侧第二函数包中获得用于运行所述第一服务逻辑时适用于本端的其它端侧函数的封装信息。
可选的,所述根据所述端侧函数的封装信息,获得所述端侧函数的本端运行代码,包括:根据所述端侧第一函数包中所述一部分端侧函数的封装信息,从本端函数代码库中获得所述一部分端侧函数的本端运行代码,以及根据所述其它端侧函数包中所述其它端侧函数的封装信息,从本端函数代码库中获得所述其它端侧函数的本端运行代码。
可选的,还包括:获得所述端侧第一函数包中每个端侧函数对应的执行顺序;所述运行所述端侧函数的本端运行代码,以在本端完成所述第一服务逻辑,包括:根据所述端侧第一函数包中每个端侧函数对应的执行顺序,依次运行所述每个端侧函数的本端运行代码,以在本端完成所述第一服务逻辑。
可选的,所述端侧第一函数包中包括完成所述第一服务逻辑所需的适用于本端的所有端侧函数之间的调用关系;所述获得所述端侧第一函数包中每个端侧函数对应的执行顺序,包括:根据所述端侧第一函数包中所有端侧函数之间的调用关系,获得所述端侧第一函数包中每个端侧函数对应的执行顺序。
可选的,所述端侧第一函数包中包括为完成所述第一服务逻辑所需的所有原子函数之间的调用关系,所述原子函数是为实现所有服务逻辑中的相同服务功能的标准化函数;所述获得所述端侧第一函数包中每个端侧函数对应的执行顺序,包括:根据所述所有原子函数之间的调用关系,确定所述所有原子函数中每个原子函数对应的执行顺序;根据所述每个原子函数对应的执行顺序,确定所述每个原子函数对应于所述端侧第一函数包中的每个端侧函数的执行顺序。
本申请实施例还提供一种代码运行装置,包括:端侧第一函数包获得单元,用于获得适用于本端的端侧第一函数包,所述端侧第一函数包是为完成第一服务逻辑所需的适用于本端的端侧函数的封装信息集合;端侧函数获得子单元,用于从所述端侧第一函数包中获得适用于本端的端侧函数的封装信息;本端运行代码获得单元,用于根据所述端侧函数的封装信息,获得所述端侧函数的本端运行代码;运行单元,用于运行所述端侧函数的本端运行代码,以在本端完成所述第一服务逻辑。
本申请实施例还提供一种代码生成方法,包括:在生成为完成第一服务逻辑的逻辑代码的过程中,获得用于获取实现所述第一服务逻辑中的第一服务功能的函数的请求指令;针对所述请求指令,获得实现所述第一服务功能的第一原子函数的封装信息,所述第一原子函数是为实现所有服务逻辑中的所述第一服务功能的标准化函数;将所述第一原子函数的封装信息作为所述逻辑代码的代码片段,加入到用于生成所述逻辑代码的代码片段集合中;根据所述用于生成所述逻辑代码的代码片段集合,生成所述逻辑代码。
可选的,所述获得用于获取实现所述第一服务逻辑中的第一服务功能的函数的请求指令,包括:响应于检测到在目标页面针对填充区域的编辑操作, 获得用于获取实现所述第一服务逻辑中的第一服务功能的函数的请求指令,所述填充区域用于填充实现第一服务功能的函数。
可选的,还包括:针对所述请求指令,获取所述编辑操作的编辑信息;所述针对所述请求指令,获得实现所述第一服务功能的第一原子函数的封装信息,包括:针对所述请求指令,从用于实现第一服务功能的多个原子函数的封装信息选项表中查询与所述编辑信息匹配的封装信息选项,获得实现所述第一服务功能的第一原子函数的封装信息。
可选的,所述针对所述请求指令,获得实现所述第一服务功能的第一原子函数的封装信息,包括:针对所述请求指令,获取所述编辑操作的编辑信息;展示与所述编辑信息相关联的用于实现第一服务功能的至少一个候选原子函数的封装信息;响应于检测到针对所述至少一个候选原子函数的封装信息的选择操作,将被选中的候选原子函数的封装信息作为实现所述第一服务功能的第一原子函数的封装信息。
可选的,还包括:获得与所述编辑信息相关联的用于实现第一服务功能的至少一个候选原子函数的封装信息。
可选的,还包括:向服务端发送用于请求获取与所述编译信息相关联的用于实现第一服务功能的至少一个候选原子函数的封装信息的第一获取请求消息;所述获得与所述编辑信息相关联的用于实现第一服务功能的至少一个候选原子函数的封装信息,包括:获得服务端返回的与所述编辑信息相关联的用于实现第一服务功能的至少一个候选原子函数的封装信息。
可选的,还包括:预先获得服务端发送的包含用于实现服务功能的多个原子函数的封装信息库;所述获得与所述编辑信息相关联的用于实现第一服务功能的至少一个候选原子函数的封装信息,包括:从所述封装信息库中查询获得与所述编辑信息相关联的用于实现第一服务功能的至少一个候选原子函数的封装信息。
可选的,还包括:获得所述代码片段集合中的每个代码片段的运行顺序;所述根据所述用于生成所述逻辑代码的代码片段集合,生成所述逻辑代码,包括:根据所述用于生成所述逻辑代码的代码片段集合,结合所述代码片段集合中每个代码片段对应的运行顺序,生成所述逻辑代码。
可选的,所述获得所述代码片段集合中的每个代码片段的运行顺序,包括:获得所述代码片段集合中的每个代码片段之间的调用关系;根据所述代码片段集合中的每个代码片段之间的调用关系,确定所述代码片段集合中的每个代码片段的运行顺序。
本申请实施例还提供一种代码生成装置,包括:请求指令获得单元,用于在生成为完成第一服务逻辑的逻辑代码的过程中,获得用于获取实现所述第一服务逻辑中的第一服务功能的函数的请求指令;第一获得单元,用于针对所述请求指令,获得实现所述第一服务功能的第一原子函数的封装信息,所述第一原子函数是为实现所有服务逻辑中的所述第一服务功能的标准化函数;代码片段集合生成单元,用于将所述第一原子函数的封装信息作为所述逻辑代码的代码片段,加入到用于生成所述逻辑代码的代码片段集合中;逻辑代码生成单元,用于根据所述用于生成所述逻辑代码的代码片段集合,生成所述逻辑代码。
本申请实施例还提供一种电子设备,包括:处理器;以及存储器,用于存储计算机程序,所述电子设备通电并通过所述处理器运行所述计算机程序后,执行上述方法。
本申请实施例还提供一种存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器运行,执行上述方法。
与现有技术相比,本申请具有以下优点:
本申请实施例提供一种代码编译方法,包括:获得第一待编译代码,所述第一待编译代码是为完成第一服务逻辑的逻辑代码,所述第一待编译代码包括为完成所述第一服务逻辑所需的原子函数的封装信息,所述原子函数是为实现所有服务逻辑中的相同服务功能的标准化函数;从所述第一待编译代码中获得所述第一待编译代码包括的所有原子函数的封装信息;根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,所述端侧第一函数包是提供服务的端侧在实现所述第一服务逻辑时所需的函数集合。
上述方法中,提供服务端侧的上层设置适用于多端侧的统一的第一待编译代码,第一待编译代码是为完成第一服务逻辑的标准化逻辑代码,第一待编译代码包括实现第一服务逻辑中多个不同服务功能的标准化原子函数的封装信息。需要实现第一服务逻辑的端侧通过统一的上层逻辑接口获取第一待编译代码,根据第一待编译代码中标准化的原子函数的封装信息,获得适用于提供服务的端侧在实现第一服务逻辑时所需的函数集合,形成端侧第一函数包。因此,此方法使得提供服务端侧的上层在设置实现服务逻辑的待编译代码时,无需考虑各端侧之间的差异设置不同的待编译代码,针对需要实现相同服务逻辑的多个端侧设置统一的标准化的待编译代码,提升代码开发效率。而且,标准化的待编译代码中包括的实现具体服务功能的标准化的原子函数,各端侧根据待编译代码中原子函数的封装信息,生成原子函数适用于端侧的端侧函数的封装信息。因此,设置标准的待编译代码以及待编译代码中标准化的原子函数,有利于代码可复用性,降低代码开发成本。
附图说明
图1为本申请实施例提供的代码编译方法的第一应用场景图。
图2为本申请实施例提供的代码编译方法的第二应用场景图。
图3为本申请实施例提供的代码编译方法的第三应用场景图。
图4为本申请第一实施例中提供的一种代码编译方法的流程图。
图5为本申请第二实施例中提供的一种代码运行方法的流程图。
图6为本申请第三实施例中提供的一种代码生成方法的流程图。
图7为本申请第四实施例中提供的一种代码编译装置的示意图。
图8为本申请第五实施例中提供的一种代码运行装置的示意图。
图9为本申请第六实施例中提供的一种代码生成装置的示意图。
图10为本申请第七实施例中提供的一种电子设备的示意图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
本申请中使用的术语是仅仅出于对特定实施例描述的目的,而非旨在限制本申请。在本申请中和所附权利要求书中所使用的描述方式例如:“一种”、“第一”、和“第二”等,并非对数量上的限定或先后顺序上的限定,而是用来将同一类型的信息彼此区分。
目前,线上服务存在于多个端侧中,针对于相同的服务逻辑,不同端侧所采用的逻辑代码不同。为了完成每个端侧中实现该服务逻辑的逻辑代码,在开发逻辑代码的过程中,需针对每个端侧设置其对应的逻辑代码,以完成该服务逻辑。然而,由于多个端侧对于相同的服务逻辑的实现方式及标准不统一,导致开发人员在开发逻辑代码的过程中,针对各端侧分别设置的逻辑代码中存在设置重复性的相同代码以及部分差异性代码,极大降低了代码开发效率及可维护性。
为了解决上述问题,本申请提供了多个实施例。下面分别介绍本申请提供的各个实施例。
请参照图1,其为本申请实施例提供的代码编译方法的第一应用场景图。
在本场景实施例中,为了提升代码开发效率以及代码可复用性,本申请实施例采用如下方法实现服务逻辑。
代码开发阶段101:由提供服务端侧的上层开发统一的标准化待编译代码,待编译代码是为完成目标服务逻辑的标准化逻辑代码,待编译代码包括为完成目标服务逻辑所需的标准化原子函数的封装信息。
代码编译阶段102:对于任意一个需要实现目标服务逻辑的端侧,通过统一的端侧上层逻辑接口获取需要的待编译代码,根据待编译代码中标准化原子函数的封装信息,生成端侧函数包。
具体的,根据待编译代码中标准化原子函数的封装信息,获得每个标准化原子函数对应于端侧的端侧函数的封装信息,根据每个标准化原子函数对应于端侧的端侧函数的封装信息,生成端侧函数包。该端侧函数包用于提供服务的端侧实现目标服务逻辑。
代码运行阶段103:获得适用于本端的端侧函数包,从端侧函数包中获得适用于本端的端侧函数的封装信息;根据端侧函数的封装信息,从本端函数代码库中获得端侧函数的本端运行代码;运行端侧函数的本端运行代码,以在本端完成目标服务逻辑。
下面以用户在线上服务平台点餐的服务为例进行说明。例如,将用户在线上服务平台点餐作为第一服务逻辑为例进行说明,为了完成第一服务逻辑,本申请实施例采用如下方法完成该第一服务逻辑。
代码开发阶段101:开发者开发第一待编译代码,第一待编译代码是为完成第一服务逻辑的逻辑代码,第一待编译代码包括为完成第一服务逻辑所需的原子函数的封装信息,其中,原子函数是为实现所有服务逻辑中的相同服务功能的标准化函数。
例如,第一服务逻辑以用户在线上服务平台点餐为例,第二服务逻辑以用户在线上服务平台搜索影片信息为例,第三服务逻辑以用户在线上服务平台搜索旅游景点信息为例。上述三种服务逻辑中均需要获取用户位置信息这个原子函数,此处,开发者开发的获取用户位置信息的原子函数属于标准化函数,适用于上述三种服务逻辑中的获取用户位置信息这个相同的服务功能。
开发者开发第一待编译代码,用于完成第一服务逻辑。之后,开发者将第一待编译代码提供给编译器,进入代码编译阶段。
代码编译阶段102:对于需要实现第一服务逻辑的所有端侧来说,每个端侧按照自身需求从端侧上层获取第一待编译代码,以第一待编译代码为源代码,根据第一待编译代码包括的所有原子函数的封装信息,生成适用于该端侧的端侧第一函数包。其中,实现第一服务逻辑的所有端侧,通过端侧上层的统一逻辑接口获取标准化的第一待编译代码,根据获取的标准化第一待编译代码,结合提供服务的端侧的需求,获取第一待编译代码中的原子函数对应于端侧的端侧函数的封装信息。
请参照图2,其为本申请实施例提供的代码编译方法的第二应用场景图。
例如,第一应用,第二应用,第三应用均包含用户在线上服务平台点餐的服务,每个应用作为一个端侧。因此,针对于上述三个端侧中的任意一个端侧来说,以第一待编译代码为基础,根据第一待编译代码中所有原子函数的封装信息,生成适用于任意一个端侧的端侧第一函数包。如图2所示,以第一服务逻辑为用户在线上服务平台点餐的服务,第一待编译代码为完成第一服务逻辑的逻辑代码,第一应用,第二应用和第三应用都可以实现第一服务逻辑。因此,根据第一待编译代码中所有原子函数的封装信息,分别生成适用于第一应用的端侧第一函数包,适用于第二应用的端侧第一函数包,以及适用于第三应用的端侧第一函数包。
具体是,提供服务的端侧从端侧上层的统一逻辑接口获取的第一待编译代码是为完成第一服务逻辑的标准化逻辑代码,第一待编译代码中包括实现第一服务逻辑所需的多个标准化原子函数的封装信息。针对于每个提供服务的端侧来说,根据第一待编译代码中所有原子函数的封装信息,获得所有原子函数中的每个原子函数对于该端侧的端侧函数的封装信息。根据所有原子函数中的每个原子函数对于该端侧的端侧函数的封装信息,生成适用于该端侧的端侧第一函数包。
例如,以上述用户在线上服务平台点餐为第一服务逻辑,第一待编译代码是为完成用户在线上服务平台点餐的逻辑代码。其中,用户在线上服务平台点餐的过程至少包括用户搜索餐品信息,餐饮平台展示与用户的搜索词相关的候选商户信息,用户针对搜索结果选择目标商户及订购目标餐品,完成下单。
为了实现上述用户在线上服务平台点餐的过程,第一待编译代码中至少包括如下原子函数:第一原子函数(用于实现获取用户位置信息),第二原子函数(用于实现获取商户位置信息),第三原子函数(用于实现获取与用户相关的候选商户信息),第四原子函数(用于实现展示餐品详情信息),第五原子函数,(用于实现用户针对目标餐品的下单过程)。
因为第一待编译代码是开发者在开发阶段形成的实现第一服务逻辑的逻辑代码,开发者针对于多个实现第一服务逻辑的端侧,设置统一的标准化第一待编译代码,所以,第一待编译代码包括的第一原子函数,第二原子函数,第三原子函数,第四原子函数以及第五原子函数均是用于实现对应服务功能的标准化函数。
在编译阶段,以适用于第一待编译代码的第一应用为例,首先,获得第一待编译代码中每个原子函数对应于第一应用的端侧函数的封装信息。例如,获得第一原子函数对应于第一应用的第一端侧函数的封装信息,获得第二原子函数对应于第一应用的第二端侧函数的封装信息,获得第三原子函数对应于第一应用的第三端侧函数的封装信息,获得第四原子函数对应于第一应用的第四端侧函数的封装信息,获得第五原子函数对应于第一应用的第五端侧函数的封装信息。
其次,根据每个原子函数对于第一应用的端侧函数的封装信息,生成适用于第一应用的端侧第一函数包。例如,根据第一端侧函数的封装信息,第二端侧函数的封装信息,第三端侧函数的封装信息,第四端侧函数的封装信息和第五端侧函数的封装信息,生成适用于第一应用的端侧第一函数包。
以上描述的是,在第一应用中,根据第一待编译代码包括的所有原子函数中每个原子函数对应于第一应用的端侧函数的封装信息,获得适用于第一应用的端侧第一函数包。
此外,在同一个应用中,实现相同服务功能的端侧函数的封装信息是相同的。因此,对于同一个应用同时运行两个服务逻辑时,其完成第一服务逻辑的第一待编译代码和完成第二服务逻辑的第二待编译代码中存在可以实现相同服务功能的原子函数。因此,在生成实现第一服务逻辑的端侧第一函数包或者实现第二服务逻辑的端侧第二函数包时,对两个端侧函数包中相同端侧函数的封装信息执行去重步骤。请参照图3,其为本申请实施例提供的代码编译方法的第三应用场景图。
例如,继续以第一应用为例,还包括:获得第二待编译代码,第二待编译代码是为完成第二服务逻辑的逻辑代码,第二待编译代码包括为完成第二服务逻辑所需的原子函数的封装信息。从第二待编译代码中获得第二待编译代码包括的所有原子函数的封装信息。
根据第一待编译代码中所有原子函数的封装信息和第二待编译代码中所有原子函数的封装信息,判断第一待编译代码和第二待编译代码是否包括相同的原子函数的封装信息,如果是,则将第一待编译代码中的所述相同的原子函数的封装信息去除掉,获得第一待编译代码的所有原子函数中除相同的原子函数之外的一部分原子函数的封装信息。根据第一待编译代码中的一部分原子函数的封装信息,生成端侧第一函数包301。此时,第二待编译代码中保留所述相同的原子函数的封装信息,根据第二待编译代码中的所有原子函数的封装信息,生成端侧第二函数包302。
例如,以第一待编译代码是为完成用户在线上服务平台点餐的逻辑代码为例,第二待编译代码是为完成用户在线上服务平台搜索影片信息的逻辑代码为例,假如第一应用中同时包含用户在线上服务平台点餐的第一服务,以及用户在线上服务平台搜索影片信息的第二服务。
其中,实现第一服务和实现第二服务的过程中均包括获取用户位置信息的第一原子函数,因此,对第一应用中的端侧第一函数包或者端侧第二函数包进行去重处理,使得端侧第一函数包或者端侧第二函数包包括一个第一原子函数对应于第一应用的第一端侧函数的封装信息。因为,在第一应用中,实现所有服务逻辑的相同服务功能的端侧函数是相同的,因此,为了节省函数存储空间,对第一应用中的各个端侧函数包执行去重处理。
代码运行阶段103:
获得适用于本端的端侧第一函数包,从端侧第一函数包中获得适用于本端的端侧函数的封装信息,根据端侧函数的封装信息,从如图3所示的本端函数代码库303中获得端侧函数的本端运行代码,运行端侧函数的本端运行代码,以在本端完成第一服务逻辑。
其中,端侧第一函数包是提供服务的端侧在实现第一服务逻辑时所需的端侧函数的封装信息集合。本端函数代码库中包括本端侧实现所有服务逻辑所需要的所有端侧函数的本端运行代码。
因此,在本端完成第一服务逻辑,就是将端侧第一函数包中的所有端侧函数的封装信息,获得每个端侧函数的本端运行代码。根据每个端侧函数之间的调用关系,确定每个端侧函数对应执行顺序,依次运行每个端侧函数的本端运行代码。
如果本端侧同时运行第一服务逻辑和第二服务逻辑,端侧上层设置的实现第一服务逻辑的第一待编译代码中包括实现第一服务逻辑所需的所有原子函数的封装信息。端侧上层设置的实现第二服务逻辑的第二待编译代码中包括实现第二服务逻辑所需的所有原子函数的封装信息。
如果第一待编译代码和第二待编译代码中包括相同的原子函数的封装信息,则本端侧根据第一待编译代码中除相同原子函数之外的一部分原子函数的封装信息,生成一部分原子函数对应于端侧的端侧第一函数包。本端侧根据第二待编译代码中所有原子函数的封装信息,生成所有原子函数对应于端侧的端侧第二函数包。
也就是说,端侧第一函数包中包括实现第一服务逻辑所需的一部分端侧函数的封装信息。端侧第二函数包中包括实现第二服务逻辑所需的所有端侧函数的封装信息。位于本端的端侧第一函数包和端侧第二函数包实现了代码去重,使得端侧函数包中的代码体积减小。
因此,在本端完成第一服务逻辑,端侧第一函数包中包括一部分端侧函数的封装信息,根据端侧第一函数包的一部分端侧函数的封装信息,从本端函数代码库中获得端侧函数对应的本端运行代码。
然后,从端侧第一函数包中确定实现第一服务逻辑所需原子函数之间的逻辑关系,确定还需要获取实现第一服务逻辑所需的其它端侧函数的封装信息,可以从端侧第二函数包中获取所述其它端侧函数的封装信息。根据所述其它端侧函数的封装信息,从本端运行代码库中获得该端侧函数对应的本端运行代码。
本申请实施例提供一种代码编译方法,包括:获得第一待编译代码,所述第一待编译代码是为完成第一服务逻辑的逻辑代码,所述第一待编译代码包括为完成所述第一服务逻辑所需的原子函数的封装信息,所述原子函数是为实现所有服务逻辑中的相同服务功能的标准化函数;从所述第一待编译代码中获得所述第一待编译代码包括的所有原子函数的封装信息;根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,所述端侧第一函数包是提供服务的端侧在实现所述第一服务逻辑时所需的函数集合。
上述方法中,提供服务端侧的上层设置适用于多端侧的统一的第一待编译代码,第一待编译代码是为完成第一服务逻辑的标准化逻辑代码,第一待编译代码包括实现第一服务逻辑中多个不同服务功能的标准化原子函数的封装信息。需要实现第一服务逻辑的端侧通过统一的上层逻辑接口获取第一待编译代码,根据第一待编译代码中标准化的原子函数的封装信息,获得适用于提供服务的端侧在实现第一服务逻辑时所需的函数集合,形成端侧第一函数包。因此,此方法使得提供服务端侧的上层在设置实现服务逻辑的待编译代码时,无需考虑各端侧之间的差异设置不同的待编译代码,针对需要实现相同服务逻辑的多个端侧设置统一的标准化的待编译代码,提升代码开发效率。而且,标准化的待编译代码中包括的实现具体服务功能的标准化的原子函数,各端侧根据待编译代码中原子函数的封装信息,生成原子函数适用于端侧的端侧函数的封装信息。因此,设置标准的待编译代码以及待编译代码中标准化的原子函数,有利于代码可复用性,降低代码开发成本。
第一实施例
请参考图4,其为本申请第一实施例中提供的一种代码编译方法的流程图。
如图4所示,在步骤S401中,获得第一待编译代码,所述第一待编译代码是为完成第一服务逻辑的逻辑代码,所述第一待编译代码包括为完成所述第一服务逻辑所需的原子函数的封装信息,所述原子函数是为实现所有服务逻辑中的相同服务功能的标准化函数。
本步骤用于获得第一待编译代码,其中,第一待编译代码是代码开发阶段,由提供服务端侧的上层开发的用于完成第一服务逻辑的统一标准化逻辑代码。
此处需要说明的是,第一待编译代码包括完成第一服务逻辑所需的原子函数的封装信息,其中,原子函数是为实现所有服务逻辑中的相同服务功能的标准化函数。
例如,以第一服务逻辑为用户在线上服务平台点餐举例,在实现第一服务逻辑的第一待编译代码中,包括获取用户位置信息的第一原子函数的封装信息。再例如,以第二服务逻辑为用户在线上服务平台搜索影片信息举例,在实现第一服务逻辑的第二待编译代码中,也包括获取用户位置信息的第一原子函数的封装信息。其中,第一原子函数在实现上述第一服务逻辑和第二服务逻辑中具有相同的服务功能,其属于标准化函数。
所述获得第一待编译代码,是提供服务的端侧通过统一的端侧上层逻辑接口获取的第一待编译代码。
此外,针对于具体提供服务的端侧来说,根据第一待编译代码,编译适用于端侧的端侧第一函数包,以使得提供服务的端侧实现所述第一服务逻辑。
如图4所示,在步骤S402中,从所述第一待编译代码中获得所述第一待编译代码包括的所有原子函数的封装信息。
上述步骤S401用于获得第一待编译代码,对于具体提供服务的端侧来说,为了获得提供服务的端侧用于实现第一服务逻辑的端侧第一函数包,是指将第一待编译代码中所有原子函数的封装信息转换为每个原子函数对应于端侧的端侧函数的封装信息,然后,根据端侧函数的封装信息,生成端侧第一函数包。
因此,本步骤S402用户获得第一待编译代码中所有原子函数的封装信息,为后续步骤S403生成端侧第一函数包提供数据基础。
如图4所示,在步骤S403中,根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,所述端侧第一函数包是提供服务的端侧在实现所述第一服务逻辑时所需的函数集合。
本步骤用于生成提供服务的端侧实现第一服务逻辑时所需要的端侧第一函数包。其中,所述根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,包括如下第一种方法:
确定需要实现所述第一服务逻辑的所有端侧;针对所述所有端侧中的任意一个端侧,根据所述第一待编译代码中所有原子函数的封装信息,获得所述所有原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息;根据所述所有原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息,生成适用于所述任意一个端侧的端侧第一函数包。
如图2所示,第一应用,第二应用,第三应用均包含用户在线上服务平台点餐的服务,每个应用作为一个端侧。因此,针对于上述三个端侧中的任意一个端侧来说,以第一待编译代码为基础,根据第一待编译代码中所有原子函数的封装信息,生成适用于任意一个端侧的端侧第一函数包。
以第一服务逻辑为用户在线上服务平台点餐的服务,第一待编译代码为完成第一服务逻辑的逻辑代码,第一应用,第二应用和第三应用都可以实现第一服务逻辑,因此,根据第一待编译代码中所有原子函数的封装信息,分别生成适用于第一应用的端侧第一函数包,适用于第二应用的端侧第一函数包,以及适用于第三应用的端侧第一函数包。
以上描述的生成端侧第一函数包的第一种方法,是针对于端侧第一函数包中包括实现所述第一服务逻辑所需的所有端侧函数的封装信息。在本端侧中,端侧第一函数包中的端侧函数的封装信息与其它端侧函数包中的端侧函数的封装信息相比,端侧第一函数包中不存在与其它端侧函数包相同的端侧函数的封装信息。
以第一应用为例,如果第一应用中不仅包括用于实现第一服务逻辑的端侧第一函数包,还包括用于实现第二服务逻辑的端侧第二函数包时,此处还包括将端侧第一函数包和端侧第二函数包中存在的相同的端侧函数的封装信息进行去重处理的过程。因为,在第一应用中,实现所有服务逻辑的相同服务功能的端侧函数是相同的,因此,为了节省函数存储空间,对第一应用中的各个端侧函数包进行去重处理。
具体包括:获得第二待编译代码,所述第二待编译代码是为完成第二服务逻辑的逻辑代码,所述第二待编译代码包括为完成所述第二服务逻辑所需的原子函数的封装信息;从所述第二待编译代码中获得所述第二待编译代码包括的所有原子函数的封装信息。
所述针对所述所有端侧中的任意一个端侧,根据所述第一待编译代码中所有原子函数的封装信息,获得所述所有原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息,包括:
根据所述第一待编译代码中所有原子函数的封装信息和所述第二待编译代码中所述原子函数的封装信息,判断所述第一待编译代码和所述第二待编译代码是否包括相同的原子函数的封装信息;如果是,则针对所述所有端侧中的任意一个端侧,获取所述第一待编译代码中的一部分原子函数的封装信息,所述一部分原子函数的封装信息是指所述第一待编译代码包括的所有原子函数的封装信息中除所述相同的原子函数的封装信息之外的封装信息集合;根据所述第一待编译代码中的一部分原子函数的封装信息,获得所述一部分原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息。
其中,所述根据所述所有原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息,生成适用于所述任意一个端侧的端侧第一函数包,包括:根据所述一部分原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息,生成适用于所述任意一个端侧的端侧第一函数包。
以上描述的是,针对需要实现第一服务逻辑的任意一端侧来说,根据第一待编译代码的原子函数的封装信息,生成端侧第一函数包的第一种方法。
以下描述根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包的第二种方法,具体包括:
获得第二待编译代码,所述第二待编译代码是为完成第二服务逻辑的逻辑代码,所述第二待编译代码包括为完成所述第二服务逻辑所需的原子函数的封装信息;从所述第二待编译代码中获得所述第二待编译代码包括的所有原子函数的封装信息。
所述根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,包括:根据所述第一待编译代码中所有原子函数的封装信息和所述第二待编译代码中所有原子函数的封装信息,判断所述第一待编译代码和所述第二待编译代码是否包括相同的原子函数的封装信息;如果是,则获取所述第一待编译代码中的一部分原子函数的封装信息,所述一部分原子函数的封装信息是指所述第一待编译代码包括的所有原子函数的封装信息中除所述相同的原子函数的封装信息之外的封装信息集合;根据所述第一待编译代码中的一部分原子函数的封装信息,生成所述端侧第一函数包。
此处需要说明的是,所述根据所述第一待编译代码中的一部分原子函数的封装信息,生成所述端侧第一函数包,包括:确定需要实现所述第一服务逻辑的所有端侧;针对所述所有端侧中的任意一个端侧,根据所述第一待编译代码中的一部分原子函数的封装信息,获得所述一部分原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息;根据所述一部分原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息,生成适用于所述任意一个端侧的端侧第一函数包。
相应的,还包括:根据所述第二待编译代码中所有原子函数的封装信息,生成端侧第二函数包,所述端侧第二函数包是提供服务的端侧在实现所述第二服务逻辑时所需的函数集合。
此外,所述根据所述第二待编译代码中所有原子函数的封装信息,生成端侧第二函数包,包括:确定需要实现所述第二服务逻辑的所有端侧;针对所述所有端侧中的任意一个端侧,根据所述第二待编译代码中所有原子函数的封装信息,获得所述所有原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息;根据所述所有原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息,生成适用于所述任意一个端侧的端侧第二函数包。
其中,所述第一待编译代码包括所述第一待编译代码中每个原子函数的执行顺序;所述根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,包括:根据所述第一待编译代码中所有原子函数的封装信息,结合所述第一待编译代码中每个原子函数的执行顺序,生成端侧第一函数包。
所述根据所述第一待编译代码中所有原子函数的封装信息,结合所述第一待编译代码中每个原子函数的执行顺序,生成端侧第一函数包,包括如下第一种方法:
根据所述第一待编译代码中所有原子函数的封装信息,获得所述所有原子函数中的每个原子函数对应于端侧的端侧函数的封装信息;根据所述第一待编译代码中每个原子函数的执行顺序,获得所述每个原子函数对应于端侧的端侧函数的执行顺序;根据所述所有原子函数中的每个原子函数对应于端侧的端侧函数的封装信息,结合所述每个原子函数对应于端侧的端侧函数的执行顺序,生成端侧第一函数包。
此外,还包括:获得所述第一待编译代码中每个原子函数之间的逻辑关系;根据所述第一待编译代码中每个原子函数之间的逻辑关系,生成所述每个原子对应于端侧的端侧函数之间的逻辑关系;将所述第一待编译代码中每个原子函数对应于端侧的端侧函数之间的逻辑关系,存储于端侧函数关系库中。
本申请实施例提供一种代码编译方法,包括:获得第一待编译代码,所述第一待编译代码是为完成第一服务逻辑的逻辑代码,所述第一待编译代码包括为完成所述第一服务逻辑所需的原子函数的封装信息,所述原子函数是为实现所有服务逻辑中的相同服务功能的标准化函数;从所述第一待编译代码中获得所述第一待编译代码包括的所有原子函数的封装信息;根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,所述端侧第一函数包是提供服务的端侧在实现所述第一服务逻辑时所需的函数集合。
上述方法中,提供服务端侧的上层设置适用于多端侧的统一的第一待编译代码,第一待编译代码是为完成第一服务逻辑的标准化逻辑代码,第一待编译代码包括实现第一服务逻辑中多个不同服务功能的标准化原子函数的封装信息。需要实现第一服务逻辑的端侧通过统一的上层逻辑接口获取第一待编译代码,根据第一待编译代码中标准化的原子函数的封装信息,获得适用于提供服务的端侧在实现第一服务逻辑时所需的函数集合,形成端侧第一函数包。因此,此方法使得提供服务端侧的上层在设置实现服务逻辑的待编译代码时,无需考虑各端侧之间的差异设置不同的待编译代码,针对需要实现相同服务逻辑的多个端侧设置统一的标准化的待编译代码,提升代码开发效率。而且,标准化的待编译代码中包括的实现具体服务功能的标准化的原子函数,各端侧根据待编译代码中原子函数的封装信息,生成原子函数适用于端侧的端侧函数的封装信息。因此,设置标准的待编译代码以及待编译代码中标准化的原子函数,有利于代码可复用性,降低代码开发成本。
第二实施例
与本申请提供的一种代码编译方法的应用场景对应的实施例以及第一实施例提供的一种代码编译方法相对应的,本申请第二实施例提供一种代码运行方法,具体流程如图5所示,其为本申请第二实施例中提供的一种代码运行方法的流程图。图5所示的代码运行方法,包括:步骤S501至步骤S503。
如图5所示,在步骤S501中,获得适用于本端的端侧第一函数包,所述端侧第一函数包是为完成第一服务逻辑所需的适用于本端的端侧函数的封装信息集合。
本步骤用于获得适用于本端的端侧第一函数包,用于为在本端代码数据库中获得端侧第一函数包中的端侧函数对应的本端运行代码。
如图5所示,在步骤S502中,从所述端侧第一函数包中获得适用于本端的端侧函数的封装信息。
本步骤中,如果所述端侧第一函数包中包括提供服务的端侧实现所述第一服务逻辑时所需的一部分端侧函数的封装信息;则所述从所述端侧第一函数包中获得适用于本端的端侧函数的封装信息,包括:从所述端侧第一函数包中获得用于运行所述第一服务逻辑时适用于本端的一部分端侧函数的封装信息;
所述方法还包括:确定本端侧运行所述第一服务逻辑时还需要的其它端侧函数的封装信息,所述其它端侧函数的封装信息是指所述本端侧实现所述第一服务逻辑时所需的所有端侧函数中除所述一部分端侧函数之外的端侧函数的封装信息;从适用于本端的其它端侧函数包中获得用于运行所述第一服务逻辑时适用于本端的其它端侧函数的封装信息。
其中,所述确定本端侧运行所述第一服务逻辑时还需要的其它端侧函数的封装信息,包括:获取本端侧运行所述第一服务逻辑时所需的各个端侧函数之间的逻辑关系;根据所述各个端侧函数之间的逻辑关系,确定本端侧运行所述第一服务逻辑时所需的所有端侧函数的封装信息;根据本端侧运行所述第一服务逻辑时所需的所有端侧函数的封装信息,以及所述端侧第一函数包中的所述一部分端侧函数的封装信息,确定本端侧运行所述第一服务逻辑时还需要的其它端侧函数的封装信息。
另外,还包括:获得适用于本端的端侧第二函数包,所述端侧第二函数包是为完成第二服务逻辑所需的适用于本端的端侧函数的封装信息集合;从所述端侧第二函数包中获得适用于本端的端侧函数的封装信息;所述从适用于本端的其它端侧函数包中获得用于运行所述第一服务逻辑时适用于本端的其它端侧函数的封装信息,包括:判断所述端侧第二函数包中是否包括所述其它端侧函数的封装信息;如果是,则从所述端侧第二函数包中获得用于运行所述第一服务逻辑时适用于本端的其它端侧函数的封装信息。
如图5所示,在步骤S503中,根据所述端侧函数的封装信息,获得所述端侧函数的本端运行代码。
本步骤用于获取本端的端侧函数对应的本端运行代码。其中,所述根据所述端侧函数的封装信息,获得所述端侧函数的本端运行代码,包括:根据所述端侧函数的封装信息,从本端函数代码库中获得所述端侧函数的本端运行代码,所述本端函数代码库中具有可在本端运行的实现服务功能的函数代码。
其中,如果所述端侧第一函数包括中包括的是一部分端侧函数的封装信息,则所述根据所述端侧函数的封装信息,获得所述端侧函数的本端运行代码,包括:根据所述端侧第一函数包中所述一部分端侧函数的封装信息,从本端函数代码库中获得所述一部分端侧函数的本端运行代码,以及根据所述其它端侧函数包中所述其它端侧函数的封装信息,从本端函数代码库中获得所述其它端侧函数的本端运行代码。
如图5所示,在步骤S504中,运行所述端侧函数的本端运行代码,以在本端完成所述第一服务逻辑。
本步骤用于在本端运行端侧函数的本端运行代码,以完成第一服务逻辑。其中,在运行端侧函数的本端运行代码的过程中,还结合了每个端侧函数对应的执行顺序。具体如下:
获得所述端侧第一函数包中每个端侧函数对应的执行顺序;所述运行所述端侧函数的本端运行代码,以在本端完成所述第一服务逻辑,包括:根据所述端侧第一函数包中每个端侧函数对应的执行顺序,依次运行所述每个端侧函数的本端运行代码,以在本端完成所述第一服务逻辑。
其中,所述端侧第一函数包中包括完成所述第一服务逻辑所需的适用于本端的所有端侧函数之间的调用关系;所述获得所述端侧第一函数包中每个端侧函数对应的执行顺序,包括如下第一种方法:根据所述端侧第一函数包中所有端侧函数之间的调用关系,获得所述端侧第一函数包中每个端侧函数对应的执行顺序。
此外,获得所述端侧第一函数包中每个端侧函数对应的执行顺序,还包括如下第二种方法:所述端侧第一函数包中包括为完成所述第一服务逻辑所需的所有原子函数之间的调用关系,所述原子函数是为实现所有服务逻辑中的相同服务功能的标准化函数;所述获得所述端侧第一函数包中每个端侧函数对应的执行顺序,包括:根据所述所有原子函数之间的调用关系,确定所述所有原子函数中每个原子函数对应的执行顺序;根据所述每个原子函数对应的执行顺序,确定所述每个原子函数对应于所述端侧第一函数包中的每个端侧函数的执行顺序。
第三实施例
与本申请提供的一种代码编译方法的应用场景对应的实施例以及第一实施例提供的一种代码编译方法相对应的,本申请第三实施例提供一种代码生成方法,具体流程如图6所示,其为本申请第三实施例中提供的一种代码生成方法的流程图。图6所示的代码生成方法,包括:步骤S601至步骤S604。如图6所示,在步骤S601中,在生成为完成第一服务逻辑的逻辑代码的过程中,获得用于获取实现所述第一服务逻辑中的第一服务功能的函数的请求指令。
本步骤用于在代码开发阶段,获得用于获取实现第一服务逻辑中的第一服务功能的函数的请求指令。其中,所述获得用于获取实现所述第一服务逻辑中的第一服务功能的函数的请求指令,包括:响应于检测到在目标页面针对填充区域的编辑操作, 获得用于获取实现所述第一服务逻辑中的第一服务功能的函数的请求指令,所述填充区域用于填充实现第一服务功能的函数。
需要说明的是,在代码开发阶段,为了实现第一服务逻辑的各个服务功能的函数,开发者可以针对每个服务功能的函数的填充区域进行编辑操作。首先,将针对实现第一服务功能的函数的编辑操作,作为获得用于获取实现所述第一服务逻辑中的第一服务功能的函数的请求指令。
如图6所示,在步骤S602中,针对所述请求指令,获得实现所述第一服务功能的第一原子函数的封装信息,所述第一原子函数是为实现所有服务逻辑中的所述第一服务功能的标准化函数。
上述步骤将获得的针对实现第一服务功能的函数的编辑操作,作为获得用于获取实现第一服务逻辑中的第一服务功能的函数的请求指令。本步骤用于根据请求指令,获得实现第一服务功能的标准化的第一原子函数的封装信息。
因此,根据该编辑操作,获得编辑操作的编辑信息,所述针对所述请求指令,获得实现所述第一服务功能的第一原子函数的封装信息,包括如下第一种方法:针对所述请求指令,从用于实现第一服务功能的多个原子函数的封装信息选项表中查询与所述编辑信息匹配的封装信息选项,获得实现所述第一服务功能的第一原子函数的封装信息。
代码开发阶段,形成实现每个服务逻辑的逻辑代码,其中,实现每个服务逻辑的逻辑代码中包括实现各个服务功能的标准化的原子函数的封装信息。
基于获得的针对实现每个服务功能的函数的编辑操作,获得该编辑操作的编辑信息是用于获取目标服务功能的函数的封装信息。上述获得实现所述第一服务功能的第一原子函数的封装信息的第一种方法,是指客户端获得所述编辑操作的编辑信息后,从多个原子函数的封装信息选项表中匹配与编辑信息对应的封装信息选项,确定匹配的目标原子函数的封装信息是实现所述第一服务功能的第一原子函数的封装信息。
其中,多个原子函数的封装信息选项表中包括的是预先设计好的用于实现不同服务功能的标准化的原子函数的封装信息项。
此外,所述针对所述请求指令,获得实现所述第一服务功能的第一原子函数的封装信息,还包括如下第二种方式:
针对所述请求指令,获取所述编辑操作的编辑信息;展示与所述编辑信息相关联的用于实现第一服务功能的至少一个候选原子函数的封装信息;响应于检测到针对所述至少一个候选原子函数的封装信息的选择操作,将被选中的候选原子函数的封装信息作为实现所述第一服务功能的第一原子函数的封装信息。
在展示与所述编辑信息相关联的用于实现第一服务功能的至少一个候选原子函数的封装信息的步骤之前,还包括:获得与所述编辑信息相关联的用于实现第一服务功能的至少一个候选原子函数的封装信息。
其中,所述获得与所述编辑信息相关联的用于实现第一服务功能的至少一个候选原子函数的封装信息,包括如下方式:向服务端发送用于请求获取与所述编译信息相关联的用于实现第一服务功能的至少一个候选原子函数的封装信息的第一获取请求消息;获得服务端返回的与所述编辑信息相关联的用于实现第一服务功能的至少一个候选原子函数的封装信息。
此外,所述获得与所述编辑信息相关联的用于实现第一服务功能的至少一个候选原子函数的封装信息,还包括如下方式:预先获得服务端发送的包含用于实现服务功能的多个原子函数的封装信息库;从所述封装信息库中查询获得与所述编辑信息相关联的用于实现第一服务功能的至少一个候选原子函数的封装信息。
如图6所示,在步骤S603中,将所述第一原子函数的封装信息作为所述逻辑代码的代码片段,加入到用于生成所述逻辑代码的代码片段集合中。
本步骤用于将所述第一原子函数的封装信息作为所述逻辑代码的代码片段,加入到用于生成所述逻辑代码的代码片段集合中。其中,用于生成逻辑所述逻辑代码的代码片段集合中包括用于多个原子函数的封装信息对应的代码片段,其中,所述多个原子函数的封装信息为用于实现第一服务逻辑的各个服务功能的标准化的原子函数的封装信息。
如图6所示,在步骤S604中,根据所述用于生成所述逻辑代码的代码片段集合,生成所述逻辑代码。
本步骤用于根据代码片段集合,生成实现第一服务逻辑的逻辑代码。所述代码片段集合是指实现第一服务逻辑的多个原子化函数的封装信息形成的代码片段集合。
此外,所述根据所述用于生成所述逻辑代码的代码片段集合,生成所述逻辑代码,包括如下方式:获得所述代码片段集合中的每个代码片段的运行顺序;根据所述用于生成所述逻辑代码的代码片段集合,结合所述代码片段集合中每个代码片段对应的运行顺序,生成所述逻辑代码。
其中,所述获得所述代码片段集合中的每个代码片段的运行顺序,包括:获得所述代码片段集合中的每个代码片段之间的调用关系;根据所述代码片段集合中的每个代码片段之间的调用关系,确定所述代码片段集合中的每个代码片段的运行顺序。
第四实施例
与本申请提供的一种代码编译方法的应用场景对应的实施例以及第一实施例提供的一种代码编译方法相对应的,本申请第四实施例提供了一种代码编译装置。如图7所示,其为本申请第四实施例中提供的一种代码编译装置的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本申请第四实施例提供的代码编译装置,所述装置包括:第一待编译代码获得单元701,用于获得第一待编译代码,所述第一待编译代码是为完成第一服务逻辑的逻辑代码,所述第一待编译代码包括为完成所述第一服务逻辑所需的原子函数的封装信息,所述原子函数是为实现所有服务逻辑中的相同服务功能的标准化函数;原子函数获得子单元702,用于从所述第一待编译代码中获得所述第一待编译代码包括的所有原子函数的封装信息;端侧第一函数包生成单元703,用于根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,所述端侧第一函数包是提供服务的端侧在实现所述第一服务逻辑时所需的函数集合。
第五实施例
与本申请提供的一种代码编译方法的应用场景对应的实施例以及第二实施例提供的一种代码运行方法相对应的,本申请第五实施例提供了一种代码运行装置。如图8所示,其为本申请第五实施例中提供的一种代码运行装置的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本申请第五实施例提供的代码运行装置,所述装置包括:端侧第一函数包获得单元801,用于获得适用于本端的端侧第一函数包,所述端侧第一函数包是为完成第一服务逻辑所需的适用于本端的端侧函数的封装信息集合;端侧函数获得子单元802,用于从所述端侧第一函数包中获得适用于本端的端侧函数的封装信息;本端运行代码获得单元803,用于根据所述端侧函数的封装信息,获得所述端侧函数的本端运行代码;运行单元804,用于运行所述端侧函数的本端运行代码,以在本端完成所述第一服务逻辑。
第六实施例
与本申请提供的一种代码编译方法的应用场景对应的实施例以及第三实施例提供的一种代码生成方法相对应的,本申请第六实施例提供了一种代码生成装置。如图9所示,其为本申请第六实施例中提供的一种代码生成装置的示意图。由于装置实施例基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。下述描述的装置实施例仅仅是示意性的。
本申请第六实施例提供的代码生成装置,所述装置包括:请求指令获得单元901,用于在生成为完成第一服务逻辑的逻辑代码的过程中,获得用于获取实现所述第一服务逻辑中的第一服务功能的函数的请求指令;第一获得单元902,用于针对所述请求指令,获得实现所述第一服务功能的第一原子函数的封装信息,所述第一原子函数是为实现所有服务逻辑中的所述第一服务功能的标准化函数;代码片段集合生成单元903,用于将所述第一原子函数的封装信息作为所述逻辑代码的代码片段,加入到用于生成所述逻辑代码的代码片段集合中;逻辑代码生成单元904,用于根据所述用于生成所述逻辑代码的代码片段集合,生成所述逻辑代码。
第七实施例
与本申请上述方法相对应的,本申请第七实施例还提供一种电子设备。如图10所示,其为本申请第七实施例中提供的一种电子设备的示意图。该电子设备,包括:至少一个处理器1001,至少一个通信接口1002,至少一个存储器1003和至少一个通信总线1004;可选的,通信接口1002可以为通信模块的接口,如GSM模块的接口;处理器1001可能是处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。存储器1003可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。其中,存储器1003存储有程序,处理器1001调用存储器1003所存储的程序,以执行上述方法。
第八实施例
与本申请上述方法相对应的,本申请第八实施例还提供一种计算机存储介质。所述计算机存储介质存储有计算机程序,该计算机程序被处理器运行,执行上述方法。
本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、 输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(Transitory Media),如调制的数据信号和载波。
2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

Claims (20)

1.一种代码编译方法,其特征在于,包括:
获得第一待编译代码,所述第一待编译代码是为完成第一服务逻辑的逻辑代码,所述第一待编译代码包括为完成所述第一服务逻辑所需的原子函数的封装信息,所述原子函数是为实现所有服务逻辑中的相同服务功能的标准化函数;
从所述第一待编译代码中获得所述第一待编译代码包括的所有原子函数的封装信息;
根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,所述端侧第一函数包是提供服务的端侧在实现所述第一服务逻辑时所需的函数集合。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,包括:
确定需要实现所述第一服务逻辑的所有端侧;
针对所述所有端侧中的任意一个端侧,根据所述第一待编译代码中所有原子函数的封装信息,获得所述所有原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息;
根据所述所有原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息,生成适用于所述任意一个端侧的端侧第一函数包。
3.根据权利要求1所述的方法,其特征在于,还包括:
获得第二待编译代码,所述第二待编译代码是为完成第二服务逻辑的逻辑代码,所述第二待编译代码包括为完成所述第二服务逻辑所需的原子函数的封装信息;
从所述第二待编译代码中获得所述第二待编译代码包括的所有原子函数的封装信息;
所述根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,包括:
根据所述第一待编译代码中所有原子函数的封装信息和所述第二待编译代码中所有原子函数的封装信息,判断所述第一待编译代码和所述第二待编译代码是否包括相同的原子函数的封装信息;
如果是,则获取所述第一待编译代码中的一部分原子函数的封装信息,所述一部分原子函数的封装信息是指所述第一待编译代码包括的所有原子函数的封装信息中除所述相同的原子函数的封装信息之外的封装信息集合;
根据所述第一待编译代码中的一部分原子函数的封装信息,生成所述端侧第一函数包。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第一待编译代码中的一部分原子函数的封装信息,生成所述端侧第一函数包,包括:
确定需要实现所述第一服务逻辑的所有端侧;
针对所述所有端侧中的任意一个端侧,根据所述第一待编译代码中的一部分原子函数的封装信息,获得所述一部分原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息;
根据所述一部分原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息,生成适用于所述任意一个端侧的端侧第一函数包。
5.根据权利要求3所述的方法,其特征在于,还包括:根据所述第二待编译代码中所有原子函数的封装信息,生成端侧第二函数包,所述端侧第二函数包是提供服务的端侧在实现所述第二服务逻辑时所需的函数集合。
6.根据权利要求5所述的方法,其特征在于,所述根据所述第二待编译代码中所有原子函数的封装信息,生成端侧第二函数包,包括:
确定需要实现所述第二服务逻辑的所有端侧;
针对所述所有端侧中的任意一个端侧,根据所述第二待编译代码中所有原子函数的封装信息,获得所述所有原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息;
根据所述所有原子函数中的每个原子函数对应于所述任意一个端侧的端侧函数的封装信息,生成适用于所述任意一个端侧的端侧第二函数包。
7.一种代码运行方法,其特征在于,包括:
获得适用于本端的端侧第一函数包,所述端侧第一函数包是为完成第一服务逻辑所需的适用于本端的端侧函数的封装信息集合;
从所述端侧第一函数包中获得适用于本端的端侧函数的封装信息;
根据所述端侧函数的封装信息,获得所述端侧函数的本端运行代码;
运行所述端侧函数的本端运行代码,以在本端完成所述第一服务逻辑。
8.根据权利要求7所述的方法,其特征在于,所述根据所述端侧函数的封装信息,获得所述端侧函数的本端运行代码,包括:根据所述端侧函数的封装信息,从本端函数代码库中获得所述端侧函数的本端运行代码,所述本端函数代码库中具有可在本端运行的实现服务功能的函数代码。
9.根据权利要求7所述的方法,其特征在于,所述端侧第一函数包中包括提供服务的端侧实现所述第一服务逻辑时所需的一部分端侧函数的封装信息;
所述从所述端侧第一函数包中获得适用于本端的端侧函数的封装信息,包括:
从所述端侧第一函数包中获得用于运行所述第一服务逻辑时适用于本端的一部分端侧函数的封装信息;
所述方法还包括:
确定本端侧运行所述第一服务逻辑时还需要的其它端侧函数的封装信息,所述其它端侧函数的封装信息是指所述本端侧实现所述第一服务逻辑时所需的所有端侧函数中除所述一部分端侧函数之外的端侧函数的封装信息;
从适用于本端的其它端侧函数包中获得用于运行所述第一服务逻辑时适用于本端的其它端侧函数的封装信息。
10.根据权利要求9所述的方法,其特征在于,所述确定本端侧运行所述第一服务逻辑时还需要的其它端侧函数的封装信息,包括:
获取本端侧运行所述第一服务逻辑时所需的各个端侧函数之间的逻辑关系;
根据所述各个端侧函数之间的逻辑关系,确定本端侧运行所述第一服务逻辑时所需的所有端侧函数的封装信息;
根据本端侧运行所述第一服务逻辑时所需的所有端侧函数的封装信息,以及所述端侧第一函数包中的所述一部分端侧函数的封装信息,确定本端侧运行所述第一服务逻辑时还需要的其它端侧函数的封装信息。
11.根据权利要求9所述的方法,其特征在于,还包括:
获得适用于本端的端侧第二函数包,所述端侧第二函数包是为完成第二服务逻辑所需的适用于本端的端侧函数的封装信息集合;
从所述端侧第二函数包中获得适用于本端的端侧函数的封装信息;
所述从适用于本端的其它端侧函数包中获得用于运行所述第一服务逻辑时适用于本端的其它端侧函数的封装信息,包括:
判断所述端侧第二函数包中是否包括所述其它端侧函数的封装信息;
如果是,则从所述端侧第二函数包中获得用于运行所述第一服务逻辑时适用于本端的其它端侧函数的封装信息。
12.根据权利要求9所述的方法,其特征在于,所述根据所述端侧函数的封装信息,获得所述端侧函数的本端运行代码,包括:
根据所述端侧第一函数包中所述一部分端侧函数的封装信息,从本端函数代码库中获得所述一部分端侧函数的本端运行代码,以及根据所述其它端侧函数包中所述其它端侧函数的封装信息,从本端函数代码库中获得所述其它端侧函数的本端运行代码。
13.一种代码生成方法,其特征在于,包括:
在生成为完成第一服务逻辑的逻辑代码的过程中,获得用于获取实现所述第一服务逻辑中的第一服务功能的函数的请求指令;
针对所述请求指令,获得实现所述第一服务功能的第一原子函数的封装信息,所述第一原子函数是为实现所有服务逻辑中的所述第一服务功能的标准化函数;
将所述第一原子函数的封装信息作为所述逻辑代码的代码片段,加入到用于生成所述逻辑代码的代码片段集合中;
根据所述用于生成所述逻辑代码的代码片段集合,生成所述逻辑代码。
14.根据权利要求13所述的方法,其特征在于,所述获得用于获取实现所述第一服务逻辑中的第一服务功能的函数的请求指令,包括:
响应于检测到在目标页面针对填充区域的编辑操作, 获得用于获取实现所述第一服务逻辑中的第一服务功能的函数的请求指令,所述填充区域用于填充实现第一服务功能的函数。
15.根据权利要求14所述的方法,其特征在于,所述针对所述请求指令,获得实现所述第一服务功能的第一原子函数的封装信息,包括:
针对所述请求指令,获取所述编辑操作的编辑信息;
展示与所述编辑信息相关联的用于实现第一服务功能的至少一个候选原子函数的封装信息;
响应于检测到针对所述至少一个候选原子函数的封装信息的选择操作,将被选中的候选原子函数的封装信息作为实现所述第一服务功能的第一原子函数的封装信息。
16.一种代码编译装置,其特征在于,包括:
第一待编译代码获得单元,用于获得第一待编译代码,所述第一待编译代码是为完成第一服务逻辑的逻辑代码,所述第一待编译代码包括为完成所述第一服务逻辑所需的原子函数的封装信息,所述原子函数是为实现所有服务逻辑中的相同服务功能的标准化函数;
原子函数获得子单元,用于从所述第一待编译代码中获得所述第一待编译代码包括的所有原子函数的封装信息;
端侧第一函数包生成单元,用于根据所述第一待编译代码中所有原子函数的封装信息,生成端侧第一函数包,所述端侧第一函数包是提供服务的端侧在实现所述第一服务逻辑时所需的函数集合。
17.一种代码运行装置,其特征在于,包括:
端侧第一函数包获得单元,用于获得适用于本端的端侧第一函数包,所述端侧第一函数包是为完成第一服务逻辑所需的适用于本端的端侧函数的封装信息集合;
端侧函数获得子单元,用于从所述端侧第一函数包中获得适用于本端的端侧函数的封装信息;
本端运行代码获得单元,用于根据所述端侧函数的封装信息,获得所述端侧函数的本端运行代码;
运行单元,用于运行所述端侧函数的本端运行代码,以在本端完成所述第一服务逻辑。
18.一种代码生成装置,其特征在于,包括:
请求指令获得单元,用于在生成为完成第一服务逻辑的逻辑代码的过程中,获得用于获取实现所述第一服务逻辑中的第一服务功能的函数的请求指令;
第一获得单元,用于针对所述请求指令,获得实现所述第一服务功能的第一原子函数的封装信息,所述第一原子函数是为实现所有服务逻辑中的所述第一服务功能的标准化函数;
代码片段集合生成单元,用于将所述第一原子函数的封装信息作为所述逻辑代码的代码片段,加入到用于生成所述逻辑代码的代码片段集合中;
逻辑代码生成单元,用于根据所述用于生成所述逻辑代码的代码片段集合,生成所述逻辑代码。
19.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储计算机程序,所述电子设备通电并通过所述处理器运行所述计算机程序后,执行权利要求1-15任意一项所述方法。
20.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序被处理器运行,执行权利要求1-15任意一项所述方法。
CN202210926381.0A 2022-08-03 2022-08-03 一种代码编译方法及装置 Active CN114995830B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210926381.0A CN114995830B (zh) 2022-08-03 2022-08-03 一种代码编译方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210926381.0A CN114995830B (zh) 2022-08-03 2022-08-03 一种代码编译方法及装置

Publications (2)

Publication Number Publication Date
CN114995830A true CN114995830A (zh) 2022-09-02
CN114995830B CN114995830B (zh) 2022-11-11

Family

ID=83021536

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210926381.0A Active CN114995830B (zh) 2022-08-03 2022-08-03 一种代码编译方法及装置

Country Status (1)

Country Link
CN (1) CN114995830B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184690A (ja) * 1997-12-24 1999-07-09 Fujitsu Ltd 暗号復元を行う翻訳装置およびその方法
US6243860B1 (en) * 1998-10-30 2001-06-05 Westinghouse Electric Company Llc Mechanism employing a memory area for exchanging information between a parent process and a child process compiled during execution of the parent process or between a run time compiler process and an application process
CN102479079A (zh) * 2010-11-29 2012-05-30 中兴通讯股份有限公司 应用生成方法和装置
CN109656538A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 应用程序的生成方法、装置、系统、设备和介质
US20210173621A1 (en) * 2019-12-04 2021-06-10 Oracle International Corporation Inferring intra package and module dependencies
CN113626038A (zh) * 2021-07-06 2021-11-09 曙光信息产业(北京)有限公司 代码转换方法、装置、设备以及存储介质
CN113805882A (zh) * 2021-09-18 2021-12-17 上海波顿诺华智能科技有限公司 应用程序开发的方法、装置、电子设备及存储介质
CN114185551A (zh) * 2022-02-17 2022-03-15 浙江口碑网络技术有限公司 小程序的编译方法、小程序的运行方法及装置、存储介质
CN114579182A (zh) * 2022-02-24 2022-06-03 拉扎斯网络科技(上海)有限公司 小程序跨端应用方法、相关装置、及计算机存储介质
CN114721638A (zh) * 2022-04-18 2022-07-08 拉扎斯网络科技(上海)有限公司 一种查询逻辑代码生成方法及装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184690A (ja) * 1997-12-24 1999-07-09 Fujitsu Ltd 暗号復元を行う翻訳装置およびその方法
US6243860B1 (en) * 1998-10-30 2001-06-05 Westinghouse Electric Company Llc Mechanism employing a memory area for exchanging information between a parent process and a child process compiled during execution of the parent process or between a run time compiler process and an application process
CN102479079A (zh) * 2010-11-29 2012-05-30 中兴通讯股份有限公司 应用生成方法和装置
CN109656538A (zh) * 2017-10-11 2019-04-19 阿里巴巴集团控股有限公司 应用程序的生成方法、装置、系统、设备和介质
US20210173621A1 (en) * 2019-12-04 2021-06-10 Oracle International Corporation Inferring intra package and module dependencies
CN113626038A (zh) * 2021-07-06 2021-11-09 曙光信息产业(北京)有限公司 代码转换方法、装置、设备以及存储介质
CN113805882A (zh) * 2021-09-18 2021-12-17 上海波顿诺华智能科技有限公司 应用程序开发的方法、装置、电子设备及存储介质
CN114185551A (zh) * 2022-02-17 2022-03-15 浙江口碑网络技术有限公司 小程序的编译方法、小程序的运行方法及装置、存储介质
CN114579182A (zh) * 2022-02-24 2022-06-03 拉扎斯网络科技(上海)有限公司 小程序跨端应用方法、相关装置、及计算机存储介质
CN114721638A (zh) * 2022-04-18 2022-07-08 拉扎斯网络科技(上海)有限公司 一种查询逻辑代码生成方法及装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
AKHILA CHOWDARY KOLLA等: "Fuzz Testing the Compiled Code in R Packages", 《2021 IEEE 32ND INTERNATIONAL SYMPOSIUM ON SOFTWARE RELIABILITY ENGINEERING (ISSRE)》 *
张宇翔: "基于关系图网络的OpenCL程序优化方法研究", 《中国优秀硕士学位论文全文数据库》 *
朱亚迪等: "基于代码片段复用的安卓应用组装技术研究", 《计算机应用与软件》 *

Also Published As

Publication number Publication date
CN114995830B (zh) 2022-11-11

Similar Documents

Publication Publication Date Title
CN109062563B (zh) 用于生成页面的方法和装置
CN109885324B (zh) 一种应用程序安装包的处理方法、装置、终端及存储介质
CN110716783A (zh) 一种前端页面生成、部署方法及装置、存储介质和设备
CN110928548B (zh) 一种数据处理方法以及设备
CN108599973B (zh) 一种日志关联方法、装置及设备
CN111786984B (zh) Pod通信连接方法、装置及电子设备、存储介质
CN111767499A (zh) 一种页面配置方法及装置
CN113495797A (zh) 一种消息队列及消费者动态创建方法及系统
CN112769706A (zh) 组件化路由方法及系统
CN115599359A (zh) 一种代码生成方法、装置、设备及介质
CN110008431B (zh) 页面组件构建方法、装置、页面生成设备及可读存储介质
CN111694639A (zh) 进程容器地址的更新方法、装置和电子设备
CN111026455A (zh) 插件生成方法、电子设备及存储介质
CN113987337A (zh) 基于组件化动态编排的搜索方法、系统、设备及存储介质
CN114995830B (zh) 一种代码编译方法及装置
CN108491457A (zh) 一种用于同步公共云资源的方法及设备
CN110580212B (zh) 应用程序的数据导出方法、装置、电子设备及存储介质
CN111488144A (zh) 一种数据处理方法以及设备
CN109542775B (zh) 一种测试脚本的生成和执行方法及装置
CN111309402B (zh) 数据监测及针对应用程序的处理方法、装置及设备
CN116680270A (zh) 数据表转换方法、装置和存储介质
CN114995834A (zh) 人工智能应用部署环境构建方法及装置
CN114064176A (zh) 一种视图交互方法、装置、电子设备及计算机可读介质
CN110688430A (zh) 一种获得数据旁路的方法、装置及电子设备
CN113568620B (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
GR01 Patent grant
GR01 Patent grant