CN111427577A - 代码处理方法、装置及服务器 - Google Patents

代码处理方法、装置及服务器 Download PDF

Info

Publication number
CN111427577A
CN111427577A CN202010343895.4A CN202010343895A CN111427577A CN 111427577 A CN111427577 A CN 111427577A CN 202010343895 A CN202010343895 A CN 202010343895A CN 111427577 A CN111427577 A CN 111427577A
Authority
CN
China
Prior art keywords
control
target
interface
information
request
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
Application number
CN202010343895.4A
Other languages
English (en)
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.)
Beijing Missfresh Ecommerce Co Ltd
Original Assignee
Beijing Missfresh Ecommerce 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 Beijing Missfresh Ecommerce Co Ltd filed Critical Beijing Missfresh Ecommerce Co Ltd
Priority to CN202010343895.4A priority Critical patent/CN111427577A/zh
Publication of CN111427577A publication Critical patent/CN111427577A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Abstract

本申请提供了一种代码处理方法、装置及服务器,属于计算机技术领域。该方法包括:响应于接收到用于请求生成目标控件的控件生成请求,获取目标控件的控件源码;逐个读取控件源码中的字符,响应于读取到的字符串与预设的控件关键字匹配,获取控件关键字对应的控件生成信息;根据该控件生成信息生成界面代码;响应于接收到用于配置目标控件的第一配置请求,根据第一配置请求获取目标控件的请求参数和返回结果;获取基于请求参数和返回结果被配置的表达式,解析表达式,生成处理逻辑代码;根据界面代码和表达式对应的处理逻辑代码生成目标应用程序的源代码。本申请通过控件源码和表达式的自动解析,提高了目标应用程序的开发效率。

Description

代码处理方法、装置及服务器
技术领域
本申请涉及计算机技术领域,特别涉及一种代码处理方法、装置及服务器。
背景技术
在应用程序开发的过程中,首先由业务人员向产品人员提出业务需求;再由产品人员整理业务需求,形成开发任务,交与开发人员;开发人员将开发任务分解后,进行应用程序的开发。
当前,开发人员通常将开发任务分解为前端开发任务和后端开发任务,前端开发任务主要涉及应用程序前端的界面开发,后端开发任务主要涉及应用程序后端的业务逻辑开发;前端开发人员和后端开发人员分别进行前端开发任务和后端开发任务;前端开发任务和后端开发任务开发完成后,再进行前端与后端的联合调试。
当前的应用程序开发过程中,涉及到业务人员与产品人员、产品人员与开发人员、前端开发人员与后端开发人员等多个开发阶段,每个开发阶段依次进行,且需要经过多次的信息交流与传递,再执行开发任务,应用程序开发的时间较长,应用程序开发的整体效率较低。
发明内容
本申请实施例提供了一种代码处理方法、装置及服务器,能够提高应用程序的开发效率。
所述技术方案如下:
根据本申请实施例的一方面,提供了一种代码处理方法,所述方法包括:
响应于接收到用于请求生成目标控件的控件生成请求,获取所述目标控件的控件源码,所述目标控件用于组成目标应用程序的界面;
逐个读取所述控件源码中的字符,响应于读取到的字符串与预设的控件关键字匹配,获取所述控件关键字对应的控件生成信息;
根据所述控件关键字对应的控件生成信息,生成界面代码,所述界面代码用于渲染所述目标应用程序的界面;
响应于接收到用于配置所述目标控件的第一配置请求,根据所述第一配置请求,获取所述目标控件的请求参数和返回结果;
获取基于所述请求参数和所述返回结果被配置的表达式,解析所述表达式,生成所述表达式对应的处理逻辑代码;
根据所述界面代码和所述表达式对应的处理逻辑代码,生成所述目标应用程序的源代码。
在一种可能的实现方式中,所述根据所述第二位置参数,更新所述目标控件的第一位置属性和所述目标控件所属的树形界面模型,包括:根据所述第二位置参数和所述控件生成信息中所述目标控件的定位方式,更新所述目标控件的第一位置属性,得到所述目标控件的第二位置属性;根据所述第二位置属性和所述树形界面模型中已存在的控件的位置属性,确定所述目标控件所属的第二父控件;响应于所述第二父控件与所述目标控件移动前所属的第一父控件为同一控件,将所述树形界面模型中所述目标控件的第一位置属性更新为所述第二位置属性;响应于所述第二父控件与所述第一父控件为不同控件,将所述目标控件的控件模型从所述第一父控件的子节点移动到所述第二父控件的子节点上,以及,将所述树形界面模型中所述目标控件的第一位置属性更新为所述第二位置属性。
在另一种可能的实现方式中,所述响应于接收到用于请求生成目标控件的控件生成请求,获取所述目标控件的控件源码,包括:响应于接收到用于请求生成目标控件的控件生成请求,且所述控件生成请求携带的账户信息具有生成控件的权限,获取所述目标控件的控件源码。
在另一种可能的实现方式中,所述根据所述第一配置请求,获取所述目标控件的请求参数和返回结果,包括:根据所述第一配置请求,获取被配置的第一请求参数和第一返回结果,所述第一请求参数用于表示所述目标控件在界面渲染时所请求的参数,所述第一返回结果用于表示基于所述第一请求参数期望被返回的结果;或者,根据所述第一配置请求,获取被配置的第二请求参数和第二返回结果,所述第二请求参数用于表示所述目标控件响应于触发事件所请求的参数,所述第二返回结果用于表示基于所述第二请求参数期望被返回的结果。
在另一种可能的实现方式中,所述响应于读取到的字符串与预设的表达式关键字匹配,获取所述表达式关键字对应的处理逻辑代码,包括:响应于读取到的字符串与预设的表达式关键字匹配,继续读取字符;响应于根据读取的字符,确定所述读取到的字符串符合获取处理逻辑代码的触发条件,获取所述表达式关键字对应的处理逻辑代码。
根据本申请实施例的另一方面,提供了一种代码处理装置,所述装置包括:
获取模块,用于响应于接收到用于请求生成目标控件的控件生成请求,获取所述目标控件的控件源码,所述目标控件用于组成目标应用程序的界面;
所述获取模块,还用于逐个读取所述控件源码中的字符,响应于读取到的字符串与预设的控件关键字匹配,获取所述控件关键字对应的控件生成信息;
生成模块,用于根据所述控件关键字对应的控件生成信息,生成界面代码,所述界面代码用于渲染所述目标应用程序的界面;
所述获取模块,还用于响应于接收到用于配置所述目标控件的第一配置请求,根据所述第一配置请求,获取所述目标控件的请求参数和返回结果;
所述生成模块,还用于获取基于所述请求参数和所述返回结果被配置的表达式,解析所述表达式,生成所述表达式对应的处理逻辑代码;
所述生成模块,还用于根据所述界面代码和所述表达式对应的处理逻辑代码,生成所述目标应用程序的源代码。
在一种可能的实现方式中,所述获取模块,还用于响应于读取到的字符串与第一关键字匹配,根据所述第一关键字,获取所述目标控件的控件模型信息,所述第一关键字用于指示所述目标控件的控件类型;响应于读取到的字符串与第二关键字匹配,读取所述第二关键字对应的控件填充代码,解析所述控件填充代码,获取所述目标控件的控件填充信息,所述第二关键字用于指示所述目标控件的填充样式;将所述控件模型信息和所述控件填充信息添加到所述控件生成信息中。
在另一种可能的实现方式中,所述生成模块,还用于根据所述控件生成信息中的控件模型信息,生成所述目标控件的控件模型;根据所述控件生成信息中的控件填充信息,对所述目标控件的控件模型进行样式填充;根据所述控件生成信息中的位置属性信息,将所述目标控件的控件模型添加于树形界面模型中;将所述树形界面模型转化为界面代码。
在另一种可能的实现方式中,所述生成模块,还用于从所述控件生成请求中获取所述目标控件的第一位置参数;根据所述第一位置参数和所述位置属性信息中所述目标控件的定位方式,确定所述目标控件的第一位置属性;根据所述第一位置属性和所述树形界面模型中已存在的控件的位置属性,确定所述目标控件所属的第一父控件;将所述目标控件的控件模型添加于所述第一父控件的子节点上,所述第一父控件的子节点位于所述树形界面模型中。
在另一种可能的实现方式中,所述装置还包括:所述获取模块,还用于响应于接收到用于请求移动所述目标控件的控件移动请求,获取所述控件移动请求携带的第二位置参数;更新模块,用于根据所述第二位置参数,更新所述目标控件的第一位置属性和所述目标控件所属的树形界面模型;根据更新后的树形界面模型,更新所述界面代码。
在另一种可能的实现方式中,所述更新模块,还用于根据所述第二位置参数和所述控件生成信息中所述目标控件的定位方式,更新所述目标控件的第一位置属性,得到所述目标控件的第二位置属性;根据所述第二位置属性和所述树形界面模型中已存在的控件的位置属性,确定所述目标控件所属的第二父控件;响应于所述第二父控件与所述目标控件移动前所属的第一父控件为同一控件,将所述树形界面模型中所述目标控件的第一位置属性更新为所述第二位置属性;响应于所述第二父控件与所述第一父控件为不同控件,将所述目标控件的控件模型从所述第一父控件的子节点移动到所述第二父控件的子节点上,以及,将所述树形界面模型中所述目标控件的第一位置属性更新为所述第二位置属性。
在另一种可能的实现方式中,所述装置还包括:所述获取模块,还用于响应于接收到用于配置所述目标控件的第二配置请求,获取所述第二配置请求携带的第一配置信息;所述获取模块,还用于从所述第一配置信息中获取第一控件的控件信息,所述第一控件用于组成所述目标应用程序的界面;第一添加模块,用于将所述第一控件的控件信息添加到所述目标控件的请求参数中。
在另一种可能的实现方式中,所述装置还包括:所述获取模块,还用于响应于接收到第三配置请求,获取所述第三配置请求携带的配置指向信息;响应于根据所述配置指向信息,确定所述配置指向信息包括所述目标控件的控件信息,获取所述第三配置请求携带的第二配置信息;从所述第二配置信息中获取第二控件的控件信息,所述第二控件用于组成所述目标应用程序的界面;第二添加模块,用于将所述第二控件的控件信息添加到所述目标控件的请求参数中。
在另一种可能的实现方式中,所述获取模块,还用于响应于接收到用于请求生成目标控件的控件生成请求,且所述控件生成请求携带的账户信息具有生成控件的权限,获取所述目标控件的控件源码。
在另一种可能的实现方式中,所述获取模块,还用于根据所述第一配置请求,获取被配置的第一请求参数和第一返回结果,所述第一请求参数用于表示所述目标控件在界面渲染时所请求的参数,所述第一返回结果用于表示基于所述第一请求参数期望被返回的结果;或者,
所述获取模块,还用于根据所述第一配置请求,获取被配置的第二请求参数和第二返回结果,所述第二请求参数用于表示所述目标控件响应于触发事件所请求的参数,所述第二返回结果用于表示基于所述第二请求参数期望被返回的结果。
在另一种可能的实现方式中,所述生成模块,还用于逐个读取所述表达式中的字符,响应于读取到的字符串与预设的表达式关键字匹配,获取所述表达式关键字对应的处理逻辑代码;根据所述表达式关键字对应的处理逻辑代码,生成所述表达式对应的处理逻辑代码。
在另一种可能的实现方式中,所述获取模块,还用于响应于读取到的字符串与预设的表达式关键字匹配,继续读取字符;响应于根据读取的字符,确定所述读取到的字符串符合获取处理逻辑代码的触发条件,获取所述表达式关键字对应的处理逻辑代码。
根据本申请实施例的另一方面,提供了一种服务器,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现上述任一可能实现方式所述的代码处理方法。
根据本申请实施例的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行,以实现上述任一可能实现方式所述的代码处理方法。
在本申请实施例中,响应于接收到用于请求生成目标控件的控件生成请求,获取目标控件的控件源码,目标控件用于组成目标应用程序的界面;逐个读取控件源码中的字符,响应于读取到的字符串与预设的控件关键字匹配,获取控件关键字对应的控件生成信息;根据控件关键字对应的控件生成信息,生成界面代码,界面代码用于渲染目标应用程序的界面;响应于接收到用于配置目标控件的第一配置请求,根据第一配置请求,获取目标控件的请求参数和返回结果;获取基于请求参数和返回结果被配置的表达式,解析表达式,生成表达式对应的处理逻辑代码;根据界面代码和表达式对应的处理逻辑代码,生成目标应用程序的源代码。上述技术方案,以目标控件作为组成目标应用程序的界面的单元,通过解析目标控件的控件源码,生成用于渲染目标应用程序的界面的界面代码;通过解析基于目标控件的请求参数和返回结果被配置的表达式,生成目标应用程序的处理逻辑代码,通过控件源码和表达式的自动解析,缩短了界面代码和处理逻辑代码的开发时间,提高了目标应用程序的开发效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种实施环境的示意图;
图2是本申请实施例提供的一种应用程序开发平台的示意图;
图3是本申请实施例提供的一种代码处理方法的流程图;
图4是本申请实施例提供的一种业务制图界面的示意图;
图5是本申请实施例提供的一种代码处理方法的流程图;
图6是本申请实施例提供的一种代码处理方法的流程图;
图7是本申请实施例提供的一种业务制图界面的示意图;
图8是本申请实施例提供的一种业务制图界面的示意图;
图9是本申请实施例提供的一种业务制图界面的示意图;
图10是本申请实施例提供的一种第二配置界面的示意图;
图11是本申请实施例提供的一种代码处理方法的流程图;
图12是本申请实施例提供的一种代码处理装置的框图;
图13是本申请实施例提供的一种终端的框图;
图14是本申请实施例提供的一种服务器的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任意变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
图1是本申请实施例提供的一种实施环境的示意图。参见图1,该实施环境中包括第一终端101、第二终端102、第三终端103和服务器104。
第一终端101、第二终端102和第三终端103可以为电脑、平板电脑、手机或者其他电子设备。服务器104可以是一台服务器,或者由若干台服务器组成的服务器集群,或者是一个云计算服务中心。
第一终端101、第二终端102和第三终端103分别与服务器104通过无线或者有线网络连接。并且,第一终端101、第二终端102和第三终端103上可以安装有服务器104提供服务的客户端,该客户端用于辅助用户进行目标应用程序的开发。该客户端可以为用于辅助用户进行目标应用程序开发的应用程序,该客户端也可以为浏览器,用户可以通过浏览器进入服务器提供服务的开发界面,进行目标应用程序的开发。
目标应用程序的开发可以划分为业务制图阶段、产品建模阶段和开发配置阶段。在业务制图阶段,负责提出业务需求的业务人员可以通过第一终端101在业务制图界面上操作控件,进行目标应用程序的界面的制图。在产品建模阶段,负责整理业务需求的产品人员可以通过第二终端102基于业务人员制图形成的界面,对界面中的目标控件进行交互逻辑的建模。在开发配置阶段,负责逻辑开发的开发人员可以通过第三终端103,基于产品人员建模后的界面,通过表达式进行目标应用程序的处理逻辑的开发。业务人员、产品人员和开发人员可以通过工作流进行协同开发。
第一终端101对应的第一用户可以为负责提出业务需求的业务人员。第一用户可以根据业务需求在第一终端101的业务制图界面中添加目标控件,进行目标应用程序的界面的制图。第一终端101响应于接收到用于指示添加目标控件的操作,向服务器104发送控件生成请求;服务器104根据该控件生成请求,生成界面代码;服务器104向第一终端101返回该界面代码;第一终端101根据该界面代码,将目标控件显示在业务制图界面的第一位置。
第一用户添加目标控件之后,还可以在业务制图界面中移动目标控件的位置。第一终端101响应于接收到用于指示移动目标控件的操作,向服务器104发送控件移动请求;服务器104根据该控件移动请求,更新界面代码;服务器104向第一终端101返回更新后的界面代码;第一终端101根据更新后的界面代码,将目标控件显示在业务制图界面的第二位置。
第一用户添加目标控件之后,还可以配置目标控件的请求参数。第一终端101响应于接收到用于指示配置目标控件的操作,显示第一配置界面;从第一配置界面中获取配置信息,该配置信息用于指示目标控件的请求参数;向服务器104发送该配置信息。
第一用户通过目标控件的添加、移动和配置,完成目标应用程序的界面设计之后,将生成的界面提交至目标应用程序开发的工作流。第二终端102对应的第二用户可以通过工作流获取到业务人员设计的界面,基于业务人员设计的界面,为界面中包括的目标控件进行交互逻辑的建模。
第二用户可以为负责整理业务需求的产品人员。第二用户可以在第二终端102的第二配置界面上,配置目标控件的请求参数和返回结果,该请求参数用于表示目标控件在界面渲染或被触发时所需要请求的参数,该返回结果用于表示基于请求参数期望被返回的结果。第二终端102响应于接收到用于指示为目标控件配置请求参数和返回结果的操作,显示第二配置界面;从第二配置界面中获取目标控件的请求参数和返回结果;向服务器104发送该目标控件的请求参数和返回结果。
第二用户对目标应用程序的界面上的目标控件配置完成后,可以将配置有请求参数和返回结果的界面提交至目标应用程序开发的工作流。第三终端103对应的第三用户可以通过工作流获取到配置有请求参数和返回结果的界面,基于配置有请求参数和返回结果的界面,通过表达式进行目标应用程序的处理逻辑的开发。
第三用户可以为负责业务逻辑开发的开发人员,第三用户基于配置有请求参数和返回结果的界面,编辑用于表示目标应用程序的处理逻辑的表达式,将表达式提交至服务器104;服务器104解析表达式,生成目标应用程序的处理逻辑代码;基于目标应用程序的界面代码和处理逻辑代码,生成目标应用程序的源代码。
图2是本申请实施例提供的一种应用程序开发平台的示意图,该应用程序开发平台可以部署在服务器上,本申请实施例提供的代码处理方法可以基于该应用程序开发平台实现。参见图2,应用程序开发平台包括需求开发模块、统一逻辑引擎处理模块、权限与工作流处理模块、数据库统一处理模块、监控模块和逻辑处理模块。
需求开发模块用于为用户提供目标应用程序的开发服务。需求开发模块包括业务制图模块、产品建模模块和开发配置模块。业务制图模块用于为业务人员提供目标应用程序的界面的制图服务;产品建模模块用于为产品人员提供目标应用程序的交互逻辑的建模服务;开发配置模块用于为开发人员提供表达式开发支持。
统一逻辑引擎处理模块包括控件解析模块、树形控件处理与控件拖拽模块和表达式解析模块。控件解析模块用于根据第一终端发送的控件生成请求,生成目标控件,对目标控件进行样式填充;树形控件处理与控件拖拽模块用于确定目标控件在界面中所处的位置;表达式解析模块用于解析表达式,确定表达式所代表的处理逻辑。
权限与工作流处理模块用于根据基于web(world wide web,全球广域网)网络接收到的请求携带的账户信息识别用户是否具有执行操作的权限,以及通过工作流衔接业务制图阶段、产品建模阶段和开发配置阶段的任务。数据库统一处理模块用于对多个数据库提供统一支持,例如,数据库统一处理模块支持的数据库包括第一数据库、第二数据库和第三数据库等,第一数据库可以为mysql(一种关系型数据库管理系统),第二数据库可以为oracle(一种关系数据库管理系统),第三数据库可以为ES(ElasticSearch,一种非关系型数据库)。监控模块用于监控工作流的变化。逻辑处理模块用于基于目标应用程序的处理逻辑与门户数据库(Portal Database)进行数据的存储与查询。
图3是本申请实施例提供的一种代码处理方法的流程图。参见图3,该实施例包括:
301、第一终端显示业务制图界面,响应于接收到用于指示添加目标控件的操作,向服务器发送控件生成请求。
业务制图界面是为第一用户进行界面制图所提供的可视化界面。基于业务制图界面,第一用户以目标控件作为目标应用程序的界面的基本单元,进行目标应用程序的界面的制图。
目标控件为用于组成目标应用程序的界面的基本单元。目标控件可以为任一类型的控件,例如,目标控件可以为按钮控件、下拉列表控件、树形列表控件、表格控件或输入面板控件。
第一用户可以在业务制图界面中执行添加目标控件的操作,以添加目标控件;第一终端响应于接收到用于指示添加目标控件的操作,向服务器发送控件生成请求,该控件生成请求用于请求生成目标控件。用于指示添加目标控件的操作可以为鼠标点击操作、触屏操作或者语音输入操作等,在本申请实施例中,对用于指示添加目标控件的操作的类型,不做限定。
在一种可能的实现方式中,第一用户可以在业务制图界面的空白位置执行点击鼠标右键的操作;第一终端响应于接收到在业务制图界面的空白位置执行的点击鼠标右键的操作,显示第一右键功能菜单,该第一右键功能菜单包括多个控件选项;第一用户可以对第一右键功能菜单中包括的控件选项执行点击鼠标左键的操作;第一终端响应于接收到对控件选项执行的点击鼠标左键的操作,向服务器发送控件生成请求。
第一右键功能菜单中包括多个控件选项,每个控件选项代表一种类型的控件。例如,参见图4,第一右键功能菜单包括“生成后台窗口”的控件选项、“生成按钮”的控件选项、“生成输入面板”的控件选项、“生成下拉列表”的控件选项和“生成表格列表”的控件选项。第一右键功能菜单还可以包括“更多”选项,“更多”选项对应有其他控件选项,第一终端响应于接收到对“更多”选项执行的点击鼠标左键的操作,显示其他控件选项,例如,其他控件选项可以包括“生成文本输入框”选项。
在另一种可能的实现方式中,业务制图界面初始化时即可显示有菜单栏,该菜单栏中可以包括多个控件选项,第一终端响应于接收到对菜单栏中的控件选项的选中操作,向服务器发送控件生成请求。
在另一种可能的实现方式中,业务制图界面中也可以显示有控件图标栏,该控件图标栏中可以包括多个控件图标,第一终端响应于接收到对控件图标栏中的控件图标的选中操作,向服务器发送控件生成请求;或者,第一终端响应于接收到对控件图标栏中的控件图标的拖动操作,向服务器发送控件生成请求。
在本申请实施例中,第一用户可以为业务人员,第一用户可以通过在业务制图界面中添加目标控件,进行目标应用程序的界面的制图,第一用户是业务需求的提出者,能够最真实的表达目标应用程序的界面的制图的需求,相较于前端开发人员基于多次传递的需求信息进行界面的开发,能够使目标应用程序的开发需求快速传递至开发人员,减少了信息多次传递导致的信息熵的流失,提高目标应用程序开发的需求符合度;节约了信息多次交流和传递所消耗的时间成本,提高了目标应用程序的开发效率。
302、服务器响应于接收到用于请求生成目标控件的控件生成请求,获取目标控件的控件源码,目标控件用于组成目标应用程序的界面。
目标控件的控件源码用于指示目标控件的控件类型和填充样式。例如,目标控件为按钮控件,按钮控件的控件源码可以为:<button id=“search_button”/>。其中,button(按钮)用于指示目标控件的控件类型为按钮控件,id(identity document,身份标识号)用于指示目标控件的填充样式,search_button(查询按钮)为目标控件对应的控件填充代码。
在一种可能的实现方式中,服务器响应于接收到用于请求生成目标控件的控件生成请求,就获取目标控件的控件源码。
在另一种可能的实现方式中,服务器在控件生成请求携带的账户信息具有生成控件的权限时,才获取目标控件的控件源码。相应的,服务器响应于接收到用于请求生成目标控件的控件生成请求,获取目标控件的控件源码的步骤可以为:服务器响应于接收到用于请求生成目标控件的控件生成请求,且该控件生成请求携带的账户信息具有生成控件的权限,获取目标控件的控件源码。
参见图5,服务器接收控件生成请求,该控件生成请求是第一用户,也即业务人员请求目标控件时,第一终端通过客户端向服务器发送的。服务器根据控件生成请求携带的账户信息,进行权限处理,也即判断控件生成请求携带的账户信息是否具有生成控件的权限。
例如,参见图6,第一用户可以通过第一终端上的客户端在业务制图界面中添加按钮控件;第一终端可以通过客户端生成按钮生成请求,向服务器发送该按钮生成请求;服务器可以通过过滤器,对按钮生成请求进行权限处理。
服务器可以存储有具有生成控件的权限的账户信息,服务器响应于接收到控件生成请求,将控件生成请求携带的账户信息与已存储的具有生成控件的权限的账户信息进行比对;响应于控件生成请求携带的账户信息与已存储的具有生成控件的权限的账户信息匹配,确定控件生成请求携带的账户信息具有生成控件的权限;响应于控件生成请求携带的账户信息与已存储的具有生成控件的权限的账户信息不匹配,确定控件生成请求携带的账户信息不具有生成控件的权限。
在本申请实施例中,服务器在控件生成请求携带的账户信息具有生成控件的权限时,才获取目标控件的控件源码,通过对执行操作的用户的账户信息的权限识别,能够限制无权限的用户在开发过程中的操作,更好的管理目标应用程序的开发过程,提高目标应用程序开发的规范性,减少因无权限用户错误操作扰乱开发过程情况的发生,提高目标应用程序的开发效率。
控件生成请求携带有目标控件的控件信息,服务器可以根据该控件信息,获取目标控件的控件源码。服务器中存储有控件信息与控件源码的对应关系;相应的,服务器根据该控件信息,获取目标控件的控件源码的步骤可以为:服务器根据该控件信息,从控件信息和控件源码的对应关系中,获取该控件信息对应的控件源码。例如,服务器可以根据目标控件的控件信息,从控件源码数据库中,获取该控件信息对应的控件源码,该控件源码数据库中存储有控件信息与控件源码的对应关系。
其中,控件信息可以为控件类型标识。服务器可以根据控件生成请求携带的控件类型标识,获取该控件类型标识对应的控件源码。例如,目标控件为按钮控件,控件生成请求可以携带用于指示按钮控件的控件类型标识,服务器可以根据该控件类型标识,从控件类型标识与控件源码的对应关系中,获取按钮控件的控件源码。
继续参见图5,服务器识别控件生成请求,确定请求按钮控件,则读取按钮控件的控件源码。继续参见图6,服务器响应于按钮生成请求携带的账户信息具有生成按钮的权限,通过控件分发器确定按钮生成请求用于请求生成按钮控件,也即确定请求按钮控件,读取按钮控件的控件源码。
303、服务器逐个读取控件源码中的字符,响应于读取到的字符串与预设的控件关键字匹配,获取控件关键字对应的控件生成信息。
控件关键字包括第一关键字和第二关键字。第一关键字用于指示目标控件的控件类型,第一关键字可以为html(hyper text markup language,超文本标记语言)关键字,例如,第一关键字为button,该第一关键字用于指示目标控件的控件类型为按钮控件;第一关键字为select(选择),该第一关键字用于指示目标控件的控件类型为下拉列表控件;第一关键字为table(表),该第一关键字用于指示目标控件的控件类型为表格控件。
第二关键字用于指示目标控件的填充样式,第二关键字可以为css(cascadingstyle sheets,层叠样式表)关键字,第二关键字可以为id、class(类)或者style(样式)。第二关键字用于调用填充样式,例如id=“search_button”中的id用于调用search_button所指示的填充样式。
控件生成信息包括控件模型信息和控件填充信息,控件模型信息用于生成目标控件的控件模型,也即控件模型信息用于生成目标控件的基本框架。控件填充信息用于对目标控件的控件模型进行样式填充,也即控件填充信息用于对目标控件的基本框架进行样式填充。
服务器逐个读取控件源码中的字符,响应于读取到的字符串与预设的控件关键字匹配,获取控件关键字对应的控件生成信息可以通过以下步骤(1)至(4)实现:
(1)服务器逐个读取控件源码中的字符。
继续参见图5,服务器可以通过统一逻辑引擎处理模块启动有限状态自动机,通过有限状态自动机解析按钮控件的控件源码。服务器可以通过有限状态自动机逐个读取控件源码中的字符,每读取一个字符,基于读取到的字符,形成用于与控件关键字进行匹配的字符串,将读取到的字符串与控件关键字进行比对。
例如,控件源码为:<button id=“search_button”/>,服务器通过有限状态自动机读取“<”字符;根据读取到的“<”字符,确定从下一个字符开始读取用于与第一关键字比对的字符串;服务器读取“b”字符,将读取到的字符串“b”与第一关键字进行比对,响应于读取到的字符串与第一关键字不匹配,继续读取下一个字符“u”;将读取到的字符串“bu”与第一关键字进行比对,响应于读取到的字符串与第一关键字不匹配,继续读取下一个字符“t”;以此类推,当服务器读取到字符“n”,将读取到的字符串“button”与第一关键字进行比对,执行响应于读取到的字符串与第一关键字匹配,根据第一关键字,获取目标控件的控件模型信息的步骤;服务器通过有限状态自动机继续读取字符,根据读取到的空格字符,确定从下一个字符开始读取用于与第二关键字比对的字符串;服务器读取“i”字符,将读取到的字符串“i”与第二关键字进行比对,响应于读取到的字符串与第二关键字不匹配,继续读取下一个字符“d”;将读取到的字符串“id”与第二关键字比对,执行响应于读取到的字符串与第二关键字匹配,读取第二关键字对应的控件填充代码,解析控件填充代码,获取目标控件的控件填充信息的步骤。
服务器可以将读取到的字符串与预设的多个控件关键字进行比对,例如,预设的多个第一关键字包括button、select和table等,服务器可以将读取到的字符串分别与预设的多个第一关键字进行比对。再如,预设的多个第二关键字包括id、class和style等,服务器可以将读取到的字符串分别与预设的多个第二关键字进行比对。
服务器也可以将读取到的字符串与目标控件对应的控件关键字进行比对,例如,目标控件为按钮控件,该目标控件对应的第一关键字为button,服务器将读取到的字符串与该第一关键字进行比对。
服务器将读取到的字符串与目标控件对应的控件关键字进行比对之前,还可以获取目标控件对应的控件关键字。服务器可以在识别出目标控件时,根据目标控件的控件信息,获取该目标控件对应的控件关键字。例如,目标控件的控件信息可以为目标控件的控件类型信息,服务器可以根据目标控件的控件类型信息,获取该目标控件对应的控件关键字。
例如,继续参见图6,服务器通过控件分发器确定请求按钮控件,读取按钮控件的控件源码之后,可以加载按钮控件的正则表达式判断逻辑,该正则表达式判断逻辑中包括按钮控件对应的控件关键字,例如,该控件关键字包括button。服务器通过控件分发器加载按钮控件的正则表达式判断逻辑之后,可以启动有限状态自动机,通过有限状态自动机的状态机模型处理器,逐个读取控件源码中的字符,判断是否符合状态机处理逻辑,状态机处理逻辑包括按钮控件的正则表达式判断逻辑,也即服务器通过状态机模型处理器逐个读取控件源码中的字符,将读取到的字符串与按钮控件对应的控件关键字进行比对,判断读取到的字符串是否与按钮控件对应的控件关键字匹配。
在本申请实施例中,服务器可以获取目标控件对应的控件关键字,将读取到的字符串与目标控件对应的控件关键字进行比对,相较于将读取到的字符串分别与多个预设的控件关键字进行比对,提高了字符串与控件关键字的匹配效率。
(2)服务器响应于读取到的字符串与第一关键字匹配,根据第一关键字,获取目标控件的控件模型信息,第一关键字用于指示目标控件的控件类型。
控件模型信息用于生成目标控件的控件模型,控件模型信息至少包括控件标识、控件名称、待确定的父控件的控件标识和待填充的控件属性。
控件标识用于唯一标识目标控件,例如,目标控件为按钮控件,该目标控件的控件标识可以为按钮01,该目标控件的控件名称可以为查询按钮。父控件为目标控件所属的父控件,例如,目标控件在第四控件指示的区域内,第四控件为目标控件的父控件。
控件属性包括位置属性信息和样式属性信息。位置属性信息包括定位方式和位置属性。样式属性信息包括控件尺寸、控件补白、控件边框和控件背景。
控件模型信息还可以包括目标控件的控件编码。控件编码用于唯一标识目标控件,控件编码用于在数据库中标识目标控件。
服务器中存储关键字和控件模型信息的对应关系;相应的,服务器根据第一关键字,获取目标控件的控件模型信息的步骤可以为:服务器根据第一关键字,从关键字和控件模型信息的对应关系中,获取第一关键字对应的控件模型信息,将该控件模型信息确定为目标控件的控件模型信息。例如,第一关键字为button,服务器可以获取button对应的控件模型信息。
(3)服务器响应于读取到的字符串与第二关键字匹配,读取第二关键字对应的控件填充代码,解析控件填充代码,获取目标控件的控件填充信息,第二关键字用于指示目标控件的填充样式。
控件填充代码用于指示目标控件的控件填充信息,服务器可以解析控件填充代码,获取该控件填充代码对应的控件填充信息,将该控件填充信息确定为目标控件的控件填充信息。例如,控件填充代码为search_button,服务器可以获取search_button对应的控件模型信息。
控件填充信息用于对目标控件的控件模型进行样式填充,控件填充信息包括控件尺寸填充、控件补白填充、控件边框填充和控件背景填充。控件尺寸填充用于指示目标控件的宽度和高度。控件补白填充用于指示目标控件的内容与边框之间的填充样式,控件边框填充用于指示目标控件的边框填充样式,控件背景填充用于指示目标控件的背景填充样式。
服务器响应于读取到的字符串与第二关键字匹配,继续从控件源码中逐个读取字符,读取出第二关键字对应的控件填充代码。例如,控件源码为:<button id=“search_button”/>,服务器响应于读取到的字符串“id”与第二关键字匹配,继续读取下一个字符“=”,根据字符“=”,继续读取下一个字符为左单引号;根据读取到的左单引号,确定从下一个字符开始读取控件填充代码;读取字符“s”,得到字符串“s”;根据读取到的字符“s”,继续读取下一个字符“e”,得到字符串“se”以此类推,读取到字符“n”,得到字符串“search_button”;继续读取下一个字符右单引号,根据读取到的右单引号,将读取到的字符串“search_button”确定为控件填充代码。服务器继续读取下一个字符“/”,根据读取到的字符“/”,继续读取下一个字符“>”,根据读取到的字符“>”,确定目标控件的控件源码读取完成,不再执行继续从控件源码中读取字符的步骤。
(4)服务器将控件模型信息和控件填充信息添加到控件生成信息中。
服务器将获取到的目标控件的控件模型信息和控件填充信息添加到目标控件的控件生成信息中。
304、服务器根据控件关键字对应的控件生成信息,生成界面代码。
界面代码用于渲染目标应用程序的界面,界面代码用于指示目标控件在界面中所表现的样式和目标控件在界面中所表现的位置。本步骤可以通过以下步骤(1)至(4)实现:
(1)服务器根据控件生成信息中的控件模型信息,生成目标控件的控件模型。
控件模型用于组成目标控件的基本框架,该控件模型包括目标控件的控件标识、控件名称、待确定的父控件的控件标识和待填充的控件属性。
服务器中存储有控件模型信息和控件生成代码的对应关系。相应的,本步骤可以为:服务器根据目标控件的多个控件模型信息,从控件模型信息和控件生成代码的对应关系中,获取每个控件模型信息对应的控件生成代码;将每个控件模型信息对应的控件生成代码组成目标控件的控件模型。
继续参见图5,服务器解析按钮控件的控件源码,判断是否触发动作;响应于第一关键字触发,执行生成控件的动作,也即,服务器解析按钮控件的控件源码,响应于读取到的字符串与第一关键字匹配,根据第一关键字,获取目标控件的控件模型信息,执行根据控件模型信息,生成目标控件的控件模型的动作。
继续参见图6,服务器逐个读取控件源码,判断是否符合状态机处理逻辑,响应于符合状态机处理逻辑,输出动作,也即,服务器逐个读取控件源码,响应于读取到的字符串与第一关键字匹配,根据第一关键字,获取目标控件的控件模型信息,输出根据控件模型信息,生成目标控件的控件模型的动作。服务器通过动作处理器,响应于接收到的动作用于指示生成控件,根据控件模型信息,生成目标控件的控件模型。
(2)服务器根据控件生成信息中的控件填充信息,对目标控件的控件模型进行样式填充。
控件填充信息用于对目标控件的控件模型进行样式填充,控件填充信息至少包括控件尺寸填充,控件填充信息还包括控件补白填充、控件边框填充和控件背景填充中的一个或多个。服务器根据控件填充信息,对目标控件的控件模型进行样式填充,填充目标控件的控件尺寸、控件补白、控件边框和控件背景。
继续参见图5,服务器解析按钮控件的控件源码,判断是否触发动作;响应于第二关键字触发,执行填充控件属性的动作,也即,服务器解析按钮控件的控件源码,响应于读取到的字符串与第二关键字匹配,读取第二关键字对应的控件填充代码,解析控件填充代码,获取目标控件的控件填充信息,执行根据控件生成信息中的控件填充信息,对目标控件的控件模型进行样式填充的动作。
继续参见图6,服务器逐个读取控件源码,判断是否符合状态机处理逻辑,响应于符合状态机处理逻辑,输出动作,也即,服务器逐个读取控件源码,响应于读取到的字符串与第二关键字匹配,读取第二关键字对应的控件填充代码,解析控件填充代码,获取目标控件的控件填充信息,输出根据控件生成信息中的控件填充信息,对目标控件的控件模型进行样式填充的动作。服务器通过动作处理器,响应于接收到的动作用于指示填充控件属性,根据控件填充信息,对目标控件的控件模型进行样式填充。
(3)服务器根据控件生成信息中的位置属性信息,将目标控件的控件模型添加于树形界面模型中。
位置属性信息包括定位方式和位置属性。定位方式可以为绝对定位或相对定位。位置属性用于对目标控件在界面中表现的位置进行表示,位置属性可以通过top(顶端)、bottom(底端)、right(右端)或left(左端)来表示目标控件相对于参考点的位置。
例如,定位方式为绝对定位,参考点可以为界面的左下角,位置属性表示为:bottom200;left200,目标控件的位置属性可以表示目标控件距离界面左下角200,距离界面最左端200。再如,定位方式为相对定位,参考点为目标控件移动前的位置,位置属性表示为:top150;left100,目标控件的位置属性可以表示目标控件距离移动前的目标控件的最顶端150,距离移动前的目标控件的最左端100。
服务器可以根据位置属性信息,确定目标控件所属的第一父控件,基于第一父控件,将目标控件的控件模型添加于树形界面模型中。相应的,服务器根据控件生成信息中的位置属性信息,将目标控件的控件模型添加于树形界面模型中的步骤可以通过以下步骤(3-1)至步骤(3-4)实现:
(3-1)服务器从控件生成请求中获取目标控件的第一位置参数。
控件生成请求中还可以携带目标控件的第一位置参数,第一位置参数用于表示目标控件在业务制图界面中生成的位置。
在一种可能的实现方式中,第一终端响应于用于指示在业务制图界面的空白位置添加目标控件的操作,将该操作执行时在业务制图界面中的第三位置参数确定为渲染目标控件的第一位置参数。相应的,本步骤可以为:第一终端响应于接收到在业务制图界面的空白位置执行点击鼠标右键的操作,获取鼠标点击事件发生时鼠标指针在业务制图界面中的第三位置参数;响应于接收到对控件选项执行的点击鼠标左键的操作,将第三位置参数作为目标控件的第一位置参数,向服务器发送控件生成请求,该控件生成请求携带有目标控件的第一位置参数。
在另一种可能的实现方式中,第一终端也可以随机生成目标控件的第一位置参数,向服务器发送携带有该第一位置参数的控件生成请求。
在另一种可能的实现方式中,业务制图界面中显示有控件图标栏,第一终端响应于接收到对控件图标栏中的控件图标的拖动操作,获取该拖动操作的停止位置的第四位置参数;将该第四位置参数作为目标控件的第一位置参数,向服务器发送携带有第一位置参数的控件生成请求。
(3-2)服务器根据第一位置参数和位置属性信息中目标控件的定位方式,确定目标控件的第一位置属性。
第一位置属性用于指示目标控件在目标应用程序的界面中的位置。相应的,本步骤可以为:服务器根据目标控件的定位方式,确定目标控件的第一位置属性的参考点;获取该参考点在业务制图界面中的第五位置参数;根据该参考点的第五位置参数和用于指示目标控件在业务制图界面中位置的第一位置参数,确定目标控件与参考点在水平方向上的第一距离和在竖直方向上的第二距离;根据第一距离和第二距离,生成目标控件的第一位置属性。
例如,第一位置参数用于表示目标控件距离业务制图界面的最底端100,距离业务制图界面的最左端150;目标控件的定位方式为绝对定位,参考点为目标应用程序的界面的左下角的点,该参考点的第五位置参数用于表示参考点距离业务制图界面的最底端50,距离业务制图界面的最左端100;则目标控件与参考点在水平方向上的第一距离为50,在竖直方向上的第二距离为50,目标控件的第一位置属性可以表示为bottom50;left50。
(3-3)服务器根据第一位置属性和树形界面模型中已存在的控件的位置属性,确定目标控件所属的第一父控件。
树形界面模型以树形结构来表示目标应用程序的界面中每个控件之间的树形关系。若目标控件所在的位置位于树形界面模型中已存在的控件所包括的区域内,则确定该控件为目标控件所属的第一父控件。相应的,本步骤可以为:服务器获取树形界面模型中已存在的控件的控件尺寸;根据树形界面模型中已存在的控件的位置属性和该控件的控件尺寸,确定树形界面模型中已存在的控件所包括的区域;响应于根据第一位置属性,确定目标控件位于树形界面模型中已存在的第四控件所包括的区域内,将该第四控件确定为目标控件所属的第一父控件。
(3-4)服务器将目标控件的控件模型添加于第一父控件的子节点上,该第一父控件的子节点位于树形界面模型。
继续参见图5,服务器根据控件生成信息中的控件填充信息,对目标控件的控件模型进行样式填充后,将进行样式填充后的控件模型添加于第一父控件的子节点上,也即服务器对生成的控件进行填充控件属性后,对填充了控件属性的控件进行树形界面模型挂控件处理,服务器所执行的树形界面模型挂控件处理可以是基于鼠标点击业务制图界面请求生成控件时产生的位置参数进行的。
在本申请实施例中,服务器通过将目标控件的控件模型添加在第一父控件的子节点上,形成目标应用程序的界面的树形界面模型,提升了目标应用程序的界面的结构化性能,进而将该树形界面模型转化为界面代码,来渲染目标应用程序的界面,能够提升界面渲染效果。
(4)服务器将树形界面模型转化为界面代码。
服务器将树形界面模型转化为界面代码,该界面代码用于渲染目标应用程序的界面。
在本申请实施例中,服务器逐个读取控件源码中的字符,响应于读取到的字符串与预设的控件关键字匹配,获取控件关键字对应的控件生成信息,通过逐个读取控件源码中的字符,对目标控件的控件源码进行解析,自动获取目标控件的控件生成信息,根据控件生成信息,生成用于渲染界面的界面代码,节约了人工编辑界面代码所消耗的时间成本,提高了目标应用程序的开发效率。
305、服务器向第一终端返回该界面代码。
服务器可以向第一终端返回界面代码,第一终端可以根据服务器返回的界面代码,将目标控件渲染在业务制图界面中,展示给第一用户。
306、第一终端根据服务器返回的界面代码,将目标控件渲染在业务制图界面中。
继续参见图5,第一终端接收服务器返回的界面代码,在业务制图界面中渲染目标控件,也即服务器将界面代码返回前端,为请求生成控件的第一用户显示目标控件。
例如,第一用户通过在业务制图界面中执行操作请求生成按钮控件,第一终端向服务器发送按钮生成请求,服务器根据该按钮生成请求,向第一终端返回界面代码,参见图7,第一终端基于该界面代码,在业务制图界面中渲染按钮控件,该按钮控件的控件名称可以为查询。
需要说明的一点是,第一终端将目标控件渲染在业务制图界面中之后,第一用户还可以对业务制图界面中已存在的目标控件进行移动。第一终端响应于接收到用于指示移动目标控件的操作,向服务器发送控件移动请求,该控件移动请求携带第二位置参数,第二位置参数用于指示目标控件所要移动到的第二位置;服务器接收该控件移动请求,根据该控件移动请求,更新界面代码,向第一终端返回更新后的界面代码;参见图8,第一终端基于更新后的界面代码,在业务制图界面中的第二位置重新渲染该目标控件。
继续参见图8,第一用户可以在需要移动的目标控件的位置上执行点击鼠标右键的操作;第一终端响应于接收到在目标控件的位置上执行的点击鼠标右键的操作,显示第二右键功能菜单,该第二右键功能菜单包括移动选项;第一响应于接收到对移动选项执行的点击鼠标左键的操作,获取需要移动的目标控件所要移动到的第二位置的第二位置参数;向服务器发送控件移动请求,该控件移动请求携带第二位置参数。
第一用户也可以选中需要移动的目标控件,拖拽该目标控件至所要移动到的第二位置;第一终端响应于接收到对目标控件的拖动操作,获取该目标控件被拖动到的第二位置的第二位置参数;向服务器发送控件移动请求,该控件移动请求携带第二位置参数。
在本申请实施例中,第一用户还可以对业务制图界面中已存在的目标控件进行移动,调整界面的布局设计,提高了目标应用程序的界面的制图的灵活性。
控件移动请求携带有第二位置参数,该第二位置参数用于指示需要移动的目标控件所要移动到的第二位置,服务器可以根据该第二位置参数,更新界面代码。相应的,服务器响应于接收到控件移动请求,更新界面代码的步骤可以为:服务器响应于接收到用于请求移动目标控件的控件移动请求,获取该控件移动请求携带的第二位置参数;根据该第二位置参数,更新目标控件的第一位置属性和目标控件所属的树形界面模型;根据更新后的树形界面模型,更新界面代码。
若目标控件所要移动到的第二位置仍位于第一父控件所包括的区域内,则目标控件在树形界面模型中位于的子节点未发生变化,服务器更新树形界面模型中的目标控件的位置属性即可。若目标控件所要移动到的第二位置脱离第一父控件所包括的区域内,位于第二父控件所包括的区域内,则目标控件在树形界面模型中位于的子节点发生变化,服务器更新树形界面模型中目标控件所位于的子节点和目标控件的位置属性。相应的,服务器根据该第二位置参数,更新目标控件的第一位置属性和目标控件所属的树形界面模型的步骤可以为:服务器根据第二位置参数和控件生成信息中目标控件的定位方式,更新目标控件的第一位置属性,得到目标控件的第二位置属性;根据第二位置属性和树形界面模型中已存在的控件的位置属性,确定目标控件所属的第二父控件;响应于第二父控件与目标控件移动前所属的第一父控件为同一控件,将树形界面模型中目标控件的第一位置属性更新为第二位置属性;响应于第二父控件与第一父控件为不同控件,将目标控件的控件模型从第一父控件的子节点移动到第二父控件的子节点上,以及,将树形界面模型中目标控件的第一位置属性更新为第二位置属性。
需要说明的另一点是,第一终端将目标控件渲染在业务制图界面中之后,第一用户还可以配置业务制图界面中已存在的目标控件的请求参数。第一终端响应于接收到用于指示配置目标控件的操作,显示第一配置界面;从第一配置界面中获取第一配置信息,该第一配置信息用于指示目标控件的请求参数;向服务器发送第二配置请求,该第二配置请求携带有第一配置信息;服务器响应于接收到用于配置目标控件的第二配置请求,获取第二配置请求携带的第一配置信息;从第一配置信息中获取第一控件的控件信息,第一控件用于组成目标应用程序的界面;将第一控件的控件信息添加到目标控件的请求参数中。
第一用户可以在需要配置的目标控件的位置上执行点击鼠标右键的操作;参见图9,第一终端响应于接收到在目标控件的位置上执行的点击鼠标右键的操作,显示第二右键功能菜单,该第二右键功能菜单包括设置选项;第一终端响应于接收到对设置选项执行的点击鼠标左键的操作,显示第一配置界面。
第一配置界面中包括业务制图界面中已存在的除目标控件外的第三控件的控件信息,例如,继续参见图9,业务制图界面包括下拉列表控件和按钮控件,按钮控件为需要配置的目标控件,下拉列表控件为第三控件,用于配置按钮控件的第一配置界面中包括下拉列表控件的控件信息,该控件信息可以为下拉列表控件的控件类型名称,也即下拉列表。
继续参见图9,若目标控件对应的数据获取请求携带的请求参数需要从第一控件中获取,第一用户可以从至少一个第三控件选中第一控件,对第一配置界面中的移动按钮执行触发操作;第一终端响应于接收到对移动按钮的触发操作,获取第一控件的控件信息;向服务器发送第二配置请求,该第二配置请求携带第一配置信息,第一配置信息包括第一控件的控件信息。
继续参见图9,若目标控件对应的数据获取请求携带的请求参数需要从业务制图界面中包括的全部的第三控件中获取,第一用户可以对第一配置界面中的全移按钮执行触发操作;第一终端响应于接收到对全移按钮的触发操作,将业务制图界面中包括的第三控件作为第一控件,获取第一控件的控件信息,向服务器发送第二配置请求,该第二配置请求携带第一配置信息,第一配置信息包括第一控件的控件信息。
在本申请实施例中,第一用户还可以通过第一控件对业务制图界面中已存在的目标控件的请求参数进行配置,调整目标控件的功能设计,以更直观的方式更准确的表达目标应用程序的开发需求,提高信息传递的准确性和有效性,进而提高目标应用程序开发的需求符合度;并且,减少信息多次交流与传递所消耗的时间成本,提高目标应用程序开发的效率。
继续参见图9,第一终端也可以响应于接收到对第一配置界面中的保存按钮的触发操作,才向服务器发送第二配置请求,该第二配置请求携带第一配置信息,第一配置信息包括第一控件的控件信息。
第一终端向服务器发送第二配置请求之前,还可以对第一控件的控件信息进行排序,第一控件的控件信息的排序位置对应于第一控件的控件信息在数据获取请求中的请求参数所处的位置。继续参见图9,第一配置界面至少包括选择区域和排序区域,选择区域用于从至少一个第三控件选择第一控件,排序区域用于对被选中的第一控件进行排序。
第一终端响应于接收到对移动按钮的触发操作,将被选中的第一控件的控件信息移动至排序区域;响应于接收到对排序按钮的触发操作,将排序区域的第一控件的控件信息转换为排序状态;响应于接收到对排序区域中的第一控件的控件信息的选中操作,且接收到对置顶按钮的触发操作,将被选中的第一控件的控件信息在排序区域中移动到首位;响应于接收到对排序区域中的第一控件的控件信息的选中操作,且接收到对上移按钮的触发操作,将被选中的第一控件的控件信息在排序区域中上移一位;响应于接收到对排序区域中的第一控件的控件信息的选中操作,且接收到对下移按钮的触发操作,将被选中的第一控件的控件信息在排序区域中下移一位。
第一终端也可以响应于接收到对第一控件的控件信息的拖动操作,将第一控件的控件信息移动至拖动操作所指向的排序位置。第一终端还可以响应于接收到用于指示从排序区域中删除第一控件的控件信息的操作,将第一控件的控件信息从排序区域中删除。
继续参见图9,第一配置界面中还包括目标控件对应的请求网址,该请求网址用于指示该目标控件对应的数据获取请求所发送至的网址。第一终端可以响应于接收到对保存按钮的触发操作,向服务器发送第二配置请求,该第二配置请求携带第一配置信息,该第一配置信息中还可以包括目标控件对应的请求网址。
继续参见图9,第一配置界面中还包括第一配置信息对应的朝向资源,该朝向资源用于指示第一配置信息所指向的控件,也即该朝向资源用于指示第一配置信息所配置的控件。该朝向资源可以包括控件信息,该朝向资源包括的控件信息可以为控件标识,控件标识为第一配置信息所指向的控件的唯一标识。该朝向资源默认包括当前被配置的目标控件的控件信息,该朝向资源还可以包括其他控件的控件信息。第一用户可以在朝向资源中添加其他控件的控件信息。第一终端可以响应于对保存按钮的触发操作,向服务器发送第三配置请求,该第三配置请求携带配置指向信息和第一配置信息,配置指向信息包括朝向资源对应的控件信息,第一配置信息包括第一控件的控件信息。
第一终端可以向服务器发送携带有配置指向信息和第二配置信息的第三配置请求;服务器响应于第三配置请求携带的配置指向信息中包括目标控件的控件信息,将第二配置信息中包括的第二控件的控件信息添加到目标控件的请求参数。相应的,服务器配置目标控件的请求参数的步骤可以为:服务器响应于接收到第三配置请求,获取第三配置请求携带的配置指向信息;响应于根据配置指向信息,确定配置指向信息包括目标控件的控件信息,获取第三配置请求携带的第二配置信息;从第二配置信息中获取第二控件的控件信息,第二控件用于组成目标应用程序的界面;将第二控件的控件信息添加到目标控件的请求参数中。
在本申请实施例中,第一用户还可以对第一配置信息所指向的控件进行配置,第一用户可以通过对第一配置信息所指向的控件的配置,将第一配置信息应用于其他控件。对于第一配置信息相同的多个控件,配置一次第一配置信息即可同步应用于多个控件,能够提高控件的配置效率。
307、第一终端响应于接收到用于指示提交目标应用程序的界面的操作,向服务器发送界面提交请求。
第一终端对应的第一用户可以在业务制图界面中添加多个目标控件,完成目标应用程序的界面的制图,第一用户完成界面的制图后,可以执行用于指示提交目标应用程序的界面的操作;第一终端响应于接收到用于指示提交目标应用程序的界面的操作,向服务器发送界面提交请求。
308、服务器响应于接收到第一终端发送的界面提交请求,向第二终端发送目标应用程序的界面代码。
第二终端对应的第二用户可以为产品人员,第二用户可以通过第二终端对第一用户制图的界面中的目标控件进行请求参数和返回结果的配置。
309、第二终端基于目标应用程序的界面代码,显示第二配置界面,基于第二配置界面,获取目标控件的请求参数和返回结果。
第二用户可以分别对初始阶段和触发阶段的目标控件的请求参数和返回结果进行配置。初始阶段的请求参数表示目标应用程序的界面初始渲染时目标控件所需要请求的参数,初始阶段的返回结果表示基于界面初始渲染时目标控件所需要请求的参数期望被返回的结果。触发阶段的请求参数表示目标控件被触发时所需要请求的参数。触发阶段的返回结果表示基于目标控件被触发时所需要请求的参数期望被返回的结果。
第二终端可以基于目标应用程序的界面代码,在产品配置界面中显示目标应用程序的界面;第二终端响应于接收到用于指示配置界面中的目标控件的操作,显示第二配置界面。
例如,参见图10,第二配置界面中包括控件编码、控件名称、控件标题、配置控件、请求地址、配置日期、请求参数和返回结果。控件编码用于唯一标识当前配置的目标控件。控件名称为当前配置的目标控件的名称。控件标题用于描述目标控件在目标应用程序的界面中位置。配置控件用于表示当前配置的目标控件,第二配置界面中配置控件的控件可以为下拉列表控件,该下拉列表的选项可以包括可配置的多个目标控件,第二终端可以响应于接收到对下拉列表的选项中的任一选项的选中操作,将该选项指示的目标控件的控件编码、控件名称、已配置的控件标题、已配置的请求地址、已配置的请求参数和已配置的返回结果显示在第二配置界面中。请求地址用于表示获取目标控件的请求参数所需要请求的地址。
第二用户可以基于该第二配置界面,编辑目标控件的控件名称、控件标题、配置控件、请求地址、请求参数和返回结果;第二终端响应于接收到对第二配置界面中的保存按钮的触发操作,基于第二配置界面,获取目标控件的请求参数和返回结果。
310、第二终端向服务器发送第一配置请求。
第二终端基于第二配置界面,获取目标控件的请求参数和返回结果,可以向服务器发送第一配置请求,该第一配置请求用于配置目标控件,该第一配置请求携带有目标控件的请求参数和返回结果。
311、服务器响应于接收到用于配置目标控件的第一配置请求,根据第一配置请求,获取目标控件的请求参数和返回结果。
在一种可能的实现方式中,第一配置请求用于配置目标控件在界面渲染时的请求参数和返回结果,相应的,本步骤可以为:服务器根据第一配置请求,获取被配置的第一请求参数和第一返回结果,第一请求参数用于表示目标控件在界面渲染时所请求的参数,第一返回结果用于表示基于第一请求参数期望被返回的结果。
在另一种可能的实现方式中,第一配置请求用于配置目标控件在被触发时的请求参数和返回结果,相应的,本步骤可以为:服务器根据第一配置请求,获取被配置的第二请求参数和第二返回结果,第二请求参数用于表示目标控件响应于触发事件所请求的参数,第二返回结果用于表示基于第二请求参数期望被返回的结果。
需要说明的一点是,第一配置请求还可以携带目标控件的控件编码、控件名称、控件标题、控件标识和请求地址。第二终端响应于接收到第一配置请求,可以根据第一配置请求,获取目标控件的控件编码、控件名称、控件标题、控件标识、请求地址、请求参数和返回结果,将控件编码、控件名称、控件标题、控件标识、请求地址、请求参数和返回结果存储于业务逻辑表中,该业务逻辑表包括的字段名称、字段类型和字段描述参见表1,其中控件标识可以作为该业务逻辑表的主键。
表1
Figure BDA0002469438010000181
312、第二终端响应于接收到用于指示配置完成的操作,向服务器发送配置完成请求。
第二终端对应的第二用户可以在对目标应用程序的界面中的多个目标控件进行配置后,执行用于指示配置完成的操作,第二终端响应于接收到用于指示配置完成的操作,向服务器发送配置完成请求,该配置完成请求用于表示第二用户对目标应用程序的界面的配置完成。
313、服务器响应于接收到第二终端发送的配置完成请求,向第三终端发送目标控件的请求参数和返回结果。
第三终端对应的第三用户可以为开发人员,第三用户可以基于目标控件的请求参数和返回结果,编辑形成表达式,通过该表达式可以实现基于请求参数,获取该请求参数对应的返回结果的步骤。
需要说明的一点是,服务器还可以响应于接收到第二终端发送的配置完成请求,向第一终端发送配置后的目标应用程序的界面。服务器可以根据被配置的请求参数和返回结果,与第一终端模拟请求参数的请求和返回结果的返回,以将第二用户配置后的目标应用程序的界面呈现给第一用户,由第一用户确定第二用户的配置是否符合期望,若第一用户确定符合期望,再请求服务器向第三终端发送目标控件的请求参数和返回结果。
在本申请实施例中,第二用户完成目标控件的请求参数和返回结果的配置后,还可以将配置后的界面传递给第一用户,若第一用户确定配置符合期望,才请求服务器向第三终端发送目标控件的请求参数和返回结果,提高了前期的界面的配置的可靠性,能够减少表达式开发阶段的修改,减少后期修改调整所消耗的时间成本,提高目标应用程序的开发效率。
314、第三终端基于目标控件的请求参数和返回结果,显示表达式编辑界面,基于表达式编辑界面,获取基于目标控件的请求参数和返回结果被配置的表达式。
表达式用于表示基于请求参数,获取该请求参数对应的返回结果的处理逻辑。表达式以少量的字符表示大段的代码处理逻辑。例如,请求参数用于查询数据,表达式可以由所需要查询的数据表的名称和所需要查询的字段的值组成,服务器可以通过解析该表达式,从所需要查询的数据表中获取所需要查询的字段的值对应的数据。
在本申请实施例中,第三用户可以通过表达式进行开发,以少量字符表示大段的代码处理逻辑,能够减少逻辑开发的工作量,缩短逻辑开发所需要的时间,提高逻辑开发的效率,进而提高目标应用程序开发的整体效率。并且,基于表达式进行开发,提高目标应用程序开发的规范性和统一性。
315、第三终端向服务器发送基于目标控件的请求参数和返回结果被配置的表达式。
第三终端可以将基于目标控件的请求参数和返回结果被配置的表达式发送至服务器。
316、服务器获取基于目标控件的请求参数和返回结果被配置的表达式,解析表达式,生成表达式对应的处理逻辑代码。
服务器可以逐个读取表达式中的字符,根据读取到的字符串和预设的表达式关键字,生成表达式对应的处理逻辑代码。相应的,本步骤可以为:服务器逐个读取表达式中的字符,响应于读取到的字符串与预设的表达式关键字匹配,获取表达式关键字对应的处理逻辑代码;根据该表达式关键字对应的处理逻辑代码,生成该表达式对应的处理逻辑代码。
不同的表达式关键字对应有不同的处理逻辑,例如,表2示出了多个表达式关键字、每个表达式关键字的含义以及每个表达式关键字对应的处理逻辑,参见表2。
表2
Figure BDA0002469438010000191
服务器响应于读取到的字符串与预设的表达式关键字匹配,继续读取字符;响应于根据读取的字符,确定读取到的字符串符合获取处理逻辑代码的触发条件,获取表达式关键字对应的处理逻辑代码。
例如,服务器读取到的字符串为if,该字符串与表达式关键字if匹配,服务器可以继续读取字符,若下一个字符为左括号,服务器可以确定读取到的字符串符合获取处理逻辑代码的触发条件,获取表达式关键字对应的处理逻辑代码,该处理逻辑代码用于执行判断()中的内容是否为布尔类型的逻辑。服务器也可以读取到if的下一个字符为左括号,继续读取下一个字符,直至读取到右括号,根据读取到的左括号和右括号,确定读取到的字符串if符合获取处理逻辑代码的触发条件,获取表达式关键字对应的处理逻辑代码。
参见图11,若服务器读取到的字符串与预设的表达式关键字匹配,判断是否有下一个字符,也即判断当前是否还有未读取的下一个字符;若没有下一个字符,则结束;若有下一个字符,则通过动作处理器检查是否触发动作,也即根据读取的字符,确定读取到的字符串符合获取处理逻辑代码的触发条件;若不触发动作,则继续执行判断是否有下一个字符的步骤;若触发动作,则执行获取表达式关键字对应的处理逻辑代码的步骤。
在本申请实施例中,在读取到的字符串与预设的表达式关键字匹配时,服务器还可以继续读取字符,根据读取到的字符,确定读取到的字符串具有获取表达式关键字对应的处理逻辑代码,才获取表达式关键字对应的处理逻辑代码,能够通过对读取到的字符串之后的字符的验证,提高处理逻辑代码生成的准确性。
需要说明的一点是,服务器还具有异常处理逻辑,服务器可以通过异常处理逻辑判断表达式是否有异常问题,若表达式存在异常问题,则进行异常报错。例如,服务器逐个读取表达式中的字符,若服务器只读取到一个左括号,但未读取到与该左括号对应的右括号,则服务器确定表达式存在异常问题,进行异常报错。
在本申请实施例中,服务器还可以通过异常处理逻辑,对表达式存在的异常问题,进行异常报错,能够识别出表达式的形式问题,辅助提高表达式的合法性。
需要说明的一点是,服务器可以将表达式中的字符划分为词法单元序列,过滤掉表达式中的注释、空白和分隔符,再通过有限状态自动机进行字符的读取,能够减少读取表达式的字符时的干扰,提高表达式的解析效率。
317、服务器根据界面代码和表达式对应的处理逻辑代码,生成目标应用程序的源代码。
界面代码用于渲染目标应用程序的界面,表示目标应用程序前端的界面逻辑,表达式对应的处理逻辑代码能够表示目标应用程序的后端处理逻辑,服务器根据界面代码和表达式对应的处理逻辑代码,生成目标应用程序的源代码的步骤可以为:服务器根据目标应用程序中每个目标控件对应的界面代码和该目标控件对应的表达式对应的处理逻辑代码,关联该目标控件的界面代码与该目标控件对应的表达式对应的处理逻辑代码,得到目标应用程序的源代码。
在本申请实施例中,响应于接收到用于请求生成目标控件的控件生成请求,获取目标控件的控件源码,目标控件用于组成目标应用程序的界面;逐个读取控件源码中的字符,响应于读取到的字符串与预设的控件关键字匹配,获取控件关键字对应的控件生成信息;根据控件关键字对应的控件生成信息,生成界面代码,界面代码用于渲染目标应用程序的界面;响应于接收到用于配置目标控件的第一配置请求,根据第一配置请求,获取目标控件的请求参数和返回结果;获取基于请求参数和返回结果被配置的表达式,解析表达式,生成表达式对应的处理逻辑代码;根据界面代码和表达式对应的处理逻辑代码,生成目标应用程序的源代码。上述技术方案,以目标控件作为组成目标应用程序的界面的单元,通过解析目标控件的控件源码,生成用于渲染目标应用程序的界面的界面代码;通过解析基于目标控件的请求参数和返回结果被配置的表达式,生成目标应用程序的处理逻辑代码,通过控件源码和表达式的自动解析,缩短了界面代码和处理逻辑代码的开发时间,提高了目标应用程序的开发效率。
上述所有可选技术方案,可以采用任意结合形成本申请的可选实施例,在此不再一一赘述。
图12是本申请实施例提供的一种代码处理装置的框图。参见图12,该装置包括:
获取模块1201,用于响应于接收到用于请求生成目标控件的控件生成请求,获取目标控件的控件源码,目标控件用于组成目标应用程序的界面;
获取模块1201,还用于逐个读取控件源码中的字符,响应于读取到的字符串与预设的控件关键字匹配,获取控件关键字对应的控件生成信息;
生成模块1202,用于根据控件关键字对应的控件生成信息,生成界面代码,界面代码用于渲染目标应用程序的界面;
获取模块1201,还用于响应于接收到用于配置目标控件的第一配置请求,根据第一配置请求,获取目标控件的请求参数和返回结果;
生成模块1202,还用于获取基于请求参数和返回结果被配置的表达式,解析表达式,生成表达式对应的处理逻辑代码;
生成模块1202,还用于根据界面代码和表达式对应的处理逻辑代码,生成目标应用程序的源代码。
在一种可能的实现方式中,获取模块1201,还用于响应于读取到的字符串与第一关键字匹配,根据第一关键字,获取目标控件的控件模型信息,第一关键字用于指示目标控件的控件类型;响应于读取到的字符串与第二关键字匹配,读取第二关键字对应的控件填充代码,解析控件填充代码,获取目标控件的控件填充信息,第二关键字用于指示目标控件的填充样式;将控件模型信息和控件填充信息添加到控件生成信息中。
在另一种可能的实现方式中,生成模块1202,还用于根据控件生成信息中的控件模型信息,生成目标控件的控件模型;根据控件生成信息中的控件填充信息,对目标控件的控件模型进行样式填充;根据控件生成信息中的位置属性信息,将目标控件的控件模型添加于树形界面模型中;将树形界面模型转化为界面代码。
在另一种可能的实现方式中,生成模块1202,还用于从控件生成请求中获取目标控件的第一位置参数;根据第一位置参数和位置属性信息中目标控件的定位方式,确定目标控件的第一位置属性;根据第一位置属性和树形界面模型中已存在的控件的位置属性,确定目标控件所属的第一父控件;将目标控件的控件模型添加于第一父控件的子节点上,第一父控件的子节点位于树形界面模型中。
在另一种可能的实现方式中,该装置还包括:
获取模块1201,还用于响应于接收到用于请求移动目标控件的控件移动请求,获取控件移动请求携带的第二位置参数;
更新模块,用于根据第二位置参数,更新目标控件的第一位置属性和目标控件所属的树形界面模型;根据更新后的树形界面模型,更新界面代码。
在另一种可能的实现方式中,更新模块,还用于根据第二位置参数和控件生成信息中目标控件的定位方式,更新目标控件的第一位置属性,得到目标控件的第二位置属性;根据第二位置属性和树形界面模型中已存在的控件的位置属性,确定目标控件所属的第二父控件;响应于第二父控件与目标控件移动前所属的第一父控件为同一控件,将树形界面模型中目标控件的第一位置属性更新为第二位置属性;响应于第二父控件与第一父控件为不同控件,将目标控件的控件模型从第一父控件的子节点移动到第二父控件的子节点上,以及,将树形界面模型中目标控件的第一位置属性更新为第二位置属性。
在另一种可能的实现方式中,该装置还包括:
获取模块1201,还用于响应于接收到用于配置目标控件的第二配置请求,获取第二配置请求携带的第一配置信息;
获取模块1201,还用于从第一配置信息中获取第一控件的控件信息,第一控件用于组成目标应用程序的界面;
第一添加模块,用于将第一控件的控件信息添加到目标控件的请求参数中。
在另一种可能的实现方式中,该装置还包括:
获取模块1201,还用于响应于接收到第三配置请求,获取第三配置请求携带的配置指向信息;响应于根据配置指向信息,确定配置指向信息包括目标控件的控件信息,获取第三配置请求携带的第二配置信息;从第二配置信息中获取第二控件的控件信息,第二控件用于组成目标应用程序的界面;
第二添加模块,用于将第二控件的控件信息添加到目标控件的请求参数中。
在另一种可能的实现方式中,获取模块1201,还用于响应于接收到用于请求生成目标控件的控件生成请求,且控件生成请求携带的账户信息具有生成控件的权限,获取目标控件的控件源码。
在另一种可能的实现方式中,获取模块1201,还用于根据第一配置请求,获取被配置的第一请求参数和第一返回结果,第一请求参数用于表示目标控件在界面渲染时所请求的参数,第一返回结果用于表示基于第一请求参数期望被返回的结果;或者,
获取模块1201,还用于根据第一配置请求,获取被配置的第二请求参数和第二返回结果,第二请求参数用于表示目标控件响应于触发事件所请求的参数,第二返回结果用于表示基于第二请求参数期望被返回的结果。
在另一种可能的实现方式中,生成模块1202,还用于逐个读取表达式中的字符,响应于读取到的字符串与预设的表达式关键字匹配,获取表达式关键字对应的处理逻辑代码;根据表达式关键字对应的处理逻辑代码,生成表达式对应的处理逻辑代码。
在另一种可能的实现方式中,获取模块1201,还用于响应于读取到的字符串与预设的表达式关键字匹配,继续读取字符;响应于根据读取的字符,确定读取到的字符串符合获取处理逻辑代码的触发条件,获取表达式关键字对应的处理逻辑代码。
需要说明的是:上述实施例提供的代码处理装置在进行代码处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将服务器的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的代码处理装置与代码处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在本申请实施例中,响应于接收到用于请求生成目标控件的控件生成请求,获取目标控件的控件源码,目标控件用于组成目标应用程序的界面;逐个读取控件源码中的字符,响应于读取到的字符串与预设的控件关键字匹配,获取控件关键字对应的控件生成信息;根据控件关键字对应的控件生成信息,生成界面代码,界面代码用于渲染目标应用程序的界面;响应于接收到用于配置目标控件的第一配置请求,根据第一配置请求,获取目标控件的请求参数和返回结果;获取基于请求参数和返回结果被配置的表达式,解析表达式,生成表达式对应的处理逻辑代码;根据界面代码和表达式对应的处理逻辑代码,生成目标应用程序的源代码。上述技术方案,以目标控件作为组成目标应用程序的界面的单元,通过解析目标控件的控件源码,生成用于渲染目标应用程序的界面的界面代码;通过解析基于目标控件的请求参数和返回结果被配置的表达式,生成目标应用程序的处理逻辑代码,通过控件源码和表达式的自动解析,缩短了界面代码和处理逻辑代码的开发时间,提高了目标应用程序的开发效率。
图13示出了本申请一个示例性实施例提供的终端1300的结构框图。该终端1300可以是:笔记本电脑、台式电脑、平板电脑或智能手机。终端1300还可能被称为用户设备、便携式终端、膝上型终端、台式终端等其他名称。
通常,终端1300包括有:处理器1301和存储器1302。处理器1301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器1301可以采用DSP(Digital SignalProcessing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central Processing Unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1301可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1301还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器1302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1302中的非暂态的计算机可读存储介质用于存储至少一条指令,该至少一条指令用于被处理器1301所执行以实现本申请中方法实施例提供的代码处理方法。
在一些实施例中,终端1300还可选包括有:外围设备接口1303和至少一个外围设备。处理器1301、存储器1302和外围设备接口1303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1303相连。具体地,外围设备包括:射频电路1304、触摸显示屏1305、摄像头组件1306、音频电路1307、定位组件1308和电源1309中的至少一种。
外围设备接口1303可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器1301和存储器1302。在一些实施例中,处理器1301、存储器1302和外围设备接口1303被集成在同一芯片或电路板上;在一些其他实施例中,处理器1301、存储器1302和外围设备接口1303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
在一些实施例中,终端1300还包括有一个或多个传感器1310。该一个或多个传感器1310包括但不限于:加速度传感器1311、陀螺仪传感器1312、压力传感器1313、指纹传感器1314、光学传感器1315以及接近传感器1316。
本领域技术人员可以理解,图13中示出的结构并不构成对终端1300的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
图14是本申请实施例提供的一种服务器的框图,该服务器1400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(Central Processing Units,CPU)1401和一个或一个以上的存储器1402,其中,存储器1402中存储有至少一条指令,至少一条指令由处理器1401加载并执行以实现上述各个方法实施例提供的代码处理方法。当然,该服务器还可以具有有线或无线网络接口、键盘以及输入输出接口等部件,以便进行输入输出,该服务器还可以包括其他用于实现设备功能的部件,在此不做赘述。
在示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条指令,上述至少一条指令可由服务器中的处理器执行以完成上述实施例中的代码处理方法。例如,计算机可读存储介质可以是ROM(Read-Only Memory,只读存储器)、RAM(Random Access Memory,随机存取存储器)、CD-ROM(Compact Disc Read-OnlyMemory,只读光盘)、磁带、软盘和光数据存储设备等。
本申请还提供了一种计算机程序产品,计算机程序产品包括一个或多个计算机程序,计算机程序被处理器执行时,用于实现上述各个方法实施例提供的代码处理方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种代码处理方法,其特征在于,所述方法包括:
响应于接收到用于请求生成目标控件的控件生成请求,获取所述目标控件的控件源码,所述目标控件用于组成目标应用程序的界面;
逐个读取所述控件源码中的字符,响应于读取到的字符串与预设的控件关键字匹配,获取所述控件关键字对应的控件生成信息;
根据所述控件关键字对应的控件生成信息,生成界面代码,所述界面代码用于渲染所述目标应用程序的界面;
响应于接收到用于配置所述目标控件的第一配置请求,根据所述第一配置请求,获取所述目标控件的请求参数和返回结果;
获取基于所述请求参数和所述返回结果被配置的表达式,解析所述表达式,生成所述表达式对应的处理逻辑代码;
根据所述界面代码和所述表达式对应的处理逻辑代码,生成所述目标应用程序的源代码。
2.根据权利要求1所述的方法,其特征在于,所述控件关键字包括第一关键字和第二关键字,所述响应于读取到的字符串与预设的控件关键字匹配,获取所述控件关键字对应的控件生成信息,包括:
响应于读取到的字符串与第一关键字匹配,根据所述第一关键字,获取所述目标控件的控件模型信息,所述第一关键字用于指示所述目标控件的控件类型;
响应于读取到的字符串与第二关键字匹配,读取所述第二关键字对应的控件填充代码,解析所述控件填充代码,获取所述目标控件的控件填充信息,所述第二关键字用于指示所述目标控件的填充样式;
将所述控件模型信息和所述控件填充信息添加到所述控件生成信息中。
3.根据权利要求1所述的方法,其特征在于,所述根据所述控件关键字对应的控件生成信息,生成界面代码,包括:
根据所述控件生成信息中的控件模型信息,生成所述目标控件的控件模型;
根据所述控件生成信息中的控件填充信息,对所述目标控件的控件模型进行样式填充;
根据所述控件生成信息中的位置属性信息,将所述目标控件的控件模型添加于树形界面模型中;
将所述树形界面模型转化为界面代码。
4.根据权利要求3所述的方法,其特征在于,所述根据所述控件生成信息中的位置属性信息,将所述目标控件的控件模型添加于树形界面模型中,包括:
从所述控件生成请求中获取所述目标控件的第一位置参数;
根据所述第一位置参数和所述位置属性信息中所述目标控件的定位方式,确定所述目标控件的第一位置属性;
根据所述第一位置属性和所述树形界面模型中已存在的控件的位置属性,确定所述目标控件所属的第一父控件;
将所述目标控件的控件模型添加于所述第一父控件的子节点上,所述第一父控件的子节点位于所述树形界面模型中。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于接收到用于请求移动所述目标控件的控件移动请求,获取所述控件移动请求携带的第二位置参数;
根据所述第二位置参数,更新所述目标控件的第一位置属性和所述目标控件所属的树形界面模型;
根据更新后的树形界面模型,更新所述界面代码。
6.根据权利要求1所述的方法,其特征在于,所述获取基于所述请求参数和所述返回结果被配置的表达式之前,所述方法还包括:
响应于接收到用于配置所述目标控件的第二配置请求,获取所述第二配置请求携带的第一配置信息;
从所述第一配置信息中获取第一控件的控件信息,所述第一控件用于组成所述目标应用程序的界面;
将所述第一控件的控件信息添加到所述目标控件的请求参数中。
7.根据权利要求1所述的方法,其特征在于,所述获取基于所述请求参数和所述返回结果被配置的表达式之前,所述方法还包括:
响应于接收到第三配置请求,获取所述第三配置请求携带的配置指向信息;
响应于根据所述配置指向信息,确定所述配置指向信息包括所述目标控件的控件信息,获取所述第三配置请求携带的第二配置信息;
从所述第二配置信息中获取第二控件的控件信息,所述第二控件用于组成所述目标应用程序的界面;
将所述第二控件的控件信息添加到所述目标控件的请求参数中。
8.根据权利要求1所述的方法,其特征在于,所述解析所述表达式,生成所述表达式对应的处理逻辑代码,包括:
逐个读取所述表达式中的字符,响应于读取到的字符串与预设的表达式关键字匹配,获取所述表达式关键字对应的处理逻辑代码;
根据所述表达式关键字对应的处理逻辑代码,生成所述表达式对应的处理逻辑代码。
9.一种代码处理装置,其特征在于,所述装置包括:
获取模块,用于响应于接收到用于请求生成目标控件的控件生成请求,获取所述目标控件的控件源码,所述目标控件用于组成目标应用程序的界面;
所述获取模块,还用于逐个读取所述控件源码中的字符,响应于读取到的字符串与预设的控件关键字匹配,获取所述控件关键字对应的控件生成信息;
生成模块,用于根据所述控件关键字对应的控件生成信息,生成界面代码,所述界面代码用于渲染所述目标应用程序的界面;
所述获取模块,还用于响应于接收到用于配置所述目标控件的第一配置请求,根据所述第一配置请求,获取所述目标控件的请求参数和返回结果;
所述生成模块,还用于获取基于所述请求参数和所述返回结果被配置的表达式,解析所述表达式,生成所述表达式对应的处理逻辑代码;
所述生成模块,还用于根据所述界面代码和所述表达式对应的处理逻辑代码,生成所述目标应用程序的源代码。
10.一种服务器,其特征在于,所述服务器包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行,以实现如权利要求1-8任一项所述的代码处理方法。
CN202010343895.4A 2020-04-27 2020-04-27 代码处理方法、装置及服务器 Pending CN111427577A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010343895.4A CN111427577A (zh) 2020-04-27 2020-04-27 代码处理方法、装置及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010343895.4A CN111427577A (zh) 2020-04-27 2020-04-27 代码处理方法、装置及服务器

Publications (1)

Publication Number Publication Date
CN111427577A true CN111427577A (zh) 2020-07-17

Family

ID=71559173

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010343895.4A Pending CN111427577A (zh) 2020-04-27 2020-04-27 代码处理方法、装置及服务器

Country Status (1)

Country Link
CN (1) CN111427577A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949522A (zh) * 2020-07-31 2020-11-17 中国工商银行股份有限公司 用户界面自动化测试方法及装置
CN112162735A (zh) * 2020-10-28 2021-01-01 北京三快在线科技有限公司 控件标识生成方法、装置、计算机设备及存储介质
CN112988136A (zh) * 2021-03-15 2021-06-18 北京字跳网络技术有限公司 一种用户界面编辑方法及装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040223009A1 (en) * 2002-09-30 2004-11-11 Andras Szladovics Unified rendering
CN106598556A (zh) * 2015-10-15 2017-04-26 阿里巴巴集团控股有限公司 用户界面生成方法及装置
CN107402747A (zh) * 2016-05-20 2017-11-28 中国科学院声学研究所 一种支持多终端类型的应用页面动态生成方法
US20180285476A1 (en) * 2017-03-30 2018-10-04 Microsoft Technology Licensing, Llc Intermixing literal text and formulas in workflow steps
US20180375924A1 (en) * 2010-07-21 2018-12-27 Microsoft Technology Licensing, Llc Measuring actual end user performance and availability of web applications
CN109725901A (zh) * 2018-05-31 2019-05-07 中国平安人寿保险股份有限公司 前端代码的开发方法、装置、设备和计算机存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040223009A1 (en) * 2002-09-30 2004-11-11 Andras Szladovics Unified rendering
US20180375924A1 (en) * 2010-07-21 2018-12-27 Microsoft Technology Licensing, Llc Measuring actual end user performance and availability of web applications
CN106598556A (zh) * 2015-10-15 2017-04-26 阿里巴巴集团控股有限公司 用户界面生成方法及装置
CN107402747A (zh) * 2016-05-20 2017-11-28 中国科学院声学研究所 一种支持多终端类型的应用页面动态生成方法
US20180285476A1 (en) * 2017-03-30 2018-10-04 Microsoft Technology Licensing, Llc Intermixing literal text and formulas in workflow steps
CN109725901A (zh) * 2018-05-31 2019-05-07 中国平安人寿保险股份有限公司 前端代码的开发方法、装置、设备和计算机存储介质

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
JENNY RUIZ 等: "Generating User Interface from Conceptual, Presentation and User models with JMermaid in a learning approach" *
JOEL A. E. ANDERSSON 等: "CasADi: a software framework for nonlinear optimization and optimal control" *
张立勇 等: "基于代码生成的Web 信息系统工程化开发方法" *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949522A (zh) * 2020-07-31 2020-11-17 中国工商银行股份有限公司 用户界面自动化测试方法及装置
CN112162735A (zh) * 2020-10-28 2021-01-01 北京三快在线科技有限公司 控件标识生成方法、装置、计算机设备及存储介质
CN112988136A (zh) * 2021-03-15 2021-06-18 北京字跳网络技术有限公司 一种用户界面编辑方法及装置
CN112988136B (zh) * 2021-03-15 2023-07-04 北京字跳网络技术有限公司 一种用户界面编辑方法及装置

Similar Documents

Publication Publication Date Title
CN111722839B (zh) 一种代码生成方法、装置、电子设备及存储介质
CN108399072B (zh) 应用页面更新方法和装置
WO2014179819A2 (en) Software design pattern for adapting a graph database visualization software
CN107357593A (zh) 源代码文件组建方法、装置、电子终端及可读存储介质
CN108762743B (zh) 一种数据表操作代码生成方法及装置
US20110047146A1 (en) Systems, Methods, and Computer Program Product for Mobile Service Data Browser
CN111427577A (zh) 代码处理方法、装置及服务器
CN106233252A (zh) 用于定制软件的动态更新安装器
CN109194714B (zh) 一种文案推送方法、装置、终端设备及存储介质
US20110252049A1 (en) Function execution using sql
KR101877828B1 (ko) 인공지능 기반의 사용자 인터페이스 통합 플랫폼 시스템
CN111414405A (zh) 数据获取方法、装置及电子设备
US7895337B2 (en) Systems and methods of generating a content aware interface
CN113535587A (zh) 目标应用检测方法、装置及计算机设备
CN113535165A (zh) 界面生成方法、装置、电子设备及计算机可读存储介质
US11354341B2 (en) System and method for translating a software query in an automated integration process into natural language
CN116956825A (zh) 表单转换方法及服务器
CN113568923A (zh) 数据库中数据的查询方法和装置、存储介质及电子设备
CN116560683A (zh) 软件更新方法、装置、设备及存储介质
US20220284060A1 (en) Question Answering Method and Apparatus Based on Knowledge Graph
CN110968311A (zh) 前端页面构建方法、装置及电子设备
KR102195191B1 (ko) 키워드 관계 구조를 이용한 신규 키워드 추출 방법 및 시스템
CN114021756A (zh) 故障分析方法、装置和电子设备
CN113434585A (zh) 资源保存方法及设备
KR20210038496A (ko) 키워드 관계 구조를 이용한 동의어 추출 방법 및 시스템

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200717

WD01 Invention patent application deemed withdrawn after publication