CN109117131A - 代码生成方法及装置、存储介质及电子终端 - Google Patents
代码生成方法及装置、存储介质及电子终端 Download PDFInfo
- Publication number
- CN109117131A CN109117131A CN201810933995.5A CN201810933995A CN109117131A CN 109117131 A CN109117131 A CN 109117131A CN 201810933995 A CN201810933995 A CN 201810933995A CN 109117131 A CN109117131 A CN 109117131A
- Authority
- CN
- China
- Prior art keywords
- code
- data
- interface
- parameter
- data file
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Document Processing Apparatus (AREA)
- Stored Programmes (AREA)
Abstract
本公开涉及代码生成技术领域,具体涉及一种代码生成方法、一种代码生成、一种存储介质以及一种电子终端。所述方法包括:获取基础文档;其中,所述基础文档包括用于描述前端和后端接口的接口文档;对所述接口文档进行解析以获取第一数据文件;提取所述第一数据文件中第一参数信息并添加至第一预设模板,以生成前端代码;以及提取所述第一数据文件中第二参数信息并添加至第二预设模板,以生成后端代码。本公开能实现对代码的自动转化,有效的避免由于人工撰写代码导致的前端代码与后端代码不一致或不匹配的情况发生。进而能够有效的提高代码开发的效率。
Description
技术领域
本公开涉及代码生成技术领域,具体涉及一种代码生成方法、一种代码生成、一种存储介质以及一种电子终端。
背景技术
在软件开发过程中,首先需要产品经理与客户沟通并确定客户需求,并根据客户需求形成需求文档、图表、原型图等原始基础文档。再根据客户需求以及基础文档与开发人员、测试人员进行交流,由开发人员制定前端、后端交互接口,测试人员需要根据该交互接口制定测试用例。并且,全部的代码均需要开发人员和测试人员编写。
若在软件开发过程中,在客户需求发生变化,或开发人员、测试人员对客户需求的理解存在偏差或理解不一致时,则需要产品经理、开发人员及测试人员分别对各自的需求文档、流程图及接口文档等原始基础文档及代码进行人工修改和替换。这样就使得在代码更新的过程中,可能存在开发人员、测试人员和产品经理的工作进度不能及时同步,测试用例和产品代码不能匹配等情况。进而影响软件开发进度,并且增加工作量。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种代码生成方法、一种代码生成装置、一种存储介质以及一种电子终端,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开的第一方面,提供一种代码生成方法,包括:
获取基础文档;其中,所述基础文档包括用于描述前端和后端接口的接口文档;
对所述接口文档进行解析以获取第一数据文件;
提取所述第一数据文件中第一参数信息并添加至第一预设模板,以生成前端代码;
提取所述第一数据文件中第二参数信息并添加至第二预设模板,以生成后端代码。
在本公开的一种示例性实施例中,所述第一参数信息包括:前端输入参数数据、前端输出参数数据、前端组件数据以及前端接口数据;
所述提取所述第一数据文件中第一参数信息包括:
在所述第一数据文件中提取输入参数、输出参数及开放接口功能号,并根据所述开放接口功能号所标识的参数类型获取所述前端输入参数数据和前端输出参数数据;
根据所述开放接口功能号获取所述前端接口数据;以及
根据所述前端输入参数数据和前端输出参数数据、前端接口数据获取所述前端组件数据。
在本公开的一种示例性实施例中,所述第二参数信息包括:后端输入参数数据、后端输出参数数据、后端控制层数据和后端接口数据;
所述提取所述第一数据文件中第二参数信息包括:
在所述第一数据文件中提取输入参数、输出参数及开放接口功能号,并根据所述开放接口功能号所表示的参数类型获取所述后端输入参数数据和后端输出参数数据;
根据所述后端输入参数和所述开放接口功能号确定所述后端接口数据;以及
根据所述后端接口数据、所述后端输入参数数据和后端输出参数数据获取所述后端控制层数据。
在本公开的一种示例性实施例中,所述方法还包括:提取所述第一数据文件中第三参数信息,并根据所述第三参数信息生成测试用例。
在本公开的一种示例性实施例中,所述提取所述第一数据文件中第三参数信息包括:
提取所述第一数据文件中输入参数、输出参数以获取测试用例的参数列表;
提取所述第一数据文件中的开放接口功能号,并根据所述开放接口功能号为对应的测试用例配置请求URL;以及
提取所述第一数据文件中的接口的功能名称并将其配置为对应测试用例的名称。
在本公开的一种示例性实施例中,所述第一数据文件包括多个接口;所述测试用例包括对应所述多个接口的多个测试用例。
在本公开的一种示例性实施例中,所述基础文档还包括流程图;所述方法还包括:
对所述流程图进行解析以获取第二数据文件;
在所述第二数据文件提取注释信息;
将所述注释信息按预设规则嵌入所述前端代码、后端代码和所述测试用例对应的代码中。
在本公开的一种示例性实施例中,所述注释信息包括:
模块信息、调用步骤和描述信息中的任意一种或任意多种的组合。
在本公开的一种示例性实施例中,所述在所述第二数据文件提取注释信息包括:
提取所述第二数据文件中的各属性值,并根据所述属性值划分所述流程图中的时序图形;
根据所述属性值和所述时序图形对所述流程图进行模块划分以获取模块信息。
在本公开的一种示例性实施例中,所述将所述注释信息按预设规则嵌入所述前端代码、后端代码和测试用例对应的代码中包括:
根据所述时序图形获取所述描述信息对应在所述前端代码、后端代码和所述测试用例代码的嵌入位置。
在本公开的一种示例性实施例中,所述方法还包括:
判断所述基础文档是否存在更新数据;
若所述基础文档存在更新数据,则根据所述更新数据对前端代码、后端代码及对应的测试用例进行更新。
在本公开的一种示例性实施例中,所述获取基础文档包括:
获取需求文档,并根据所述需求文档创建基础文档。
根据本公开的第二方面,提供一种代码生成装置,包括:
基础文档获取模块,用于获取基础文档;其中,所述基础文档包括用于描述前端和后端接口的接口文档;
接口文档处理模块,用于对所述接口文档进行解析以获取第一数据文件;
前端代码生成模块,用于提取所述第一数据文件中第一参数信息并添加至第一预设模板,以生成前端代码;
后端代码生成模块,用于提取所述第一数据文件中第二参数信息并添加至第二预设模板,以生成后端代码。
在本公开的一种示例性实施例中,所述装置还包括:
测试用例生成模块,用于提取所述第一数据文件中第三参数信息,并根据所述第三参数信息生成测试用例。
在本公开的一种示例性实施例中,所述基础文档还包括流程图,所述装置还包括:
流程图解析模块,用于对所述流程图进行解析以获取第二数据文件;
第二数据文件解析模块,用于对所述第二数据文件提取注释信息;
注释信息嵌入模块,用于将所述注释信息按预设规则嵌入所述前端代码、后端代码和测试用例对应的代码中。
在本公开的一种示例性实施例中,所述装置还包括:
更新检测模块,用于判断所述基础文档是否存在更新数据;
代码更新模块,用于在所述基础文档存在更新数据时,则根据所述更新数据对前端代码、后端代码及对应的测试用例进行更新。
在本公开的一种示例性实施例中,所述装置还包括:代码推送模块,用于将所述前端代码、后端代码和测试用例分别推送至对应的前端服务端、后端服务端和测试服务端。
根据本公开的第三方面,提供一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述的代码生成方法。
根据本公开的第四方面,提供一种电子终端,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行上述的代码生成方法。
本公开的一种实施例所提供的代码生成方法中,通过将接口文档进行解析得到第一数据文件,在第一数据文件中分别提取第一参数信息和第二参数信息,并将其分别利用预设的第一模板和第二模板进行处理,进而能够同时获取前端代码和后端代码,实现了对代码的自动转化,有效的避免由于人工撰写代码导致的前端代码与后端代码不一致或不匹配的情况发生。进而能够有效的提高代码开发的效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出本公开示例性实施例中一种代码生成方法示意图;
图2示意性示出本公开示例性实施例中一种代码生成方法示意图;
图3示意性示出本公开示例性实施例中一种流程图解析方法示意图;
图4示意性示出本公开示例性实施例中一种流程图的示意图;
图5示意性示出本公开示例性实施例中图4所示流程图解析结果示意图;
图6示意性示出本公开示例性实施例中一种代码更新方法流程示意图;
图7示意性示出本公开示例性实施例中一种代码生成装置的示意图;
图8示意性示出本公开示例性实施例中一种代码生成装置的另一种示意图;
图9示意性示出本公开示例性实施例中一种代码生成装置的再一种示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
本示例实施方式中首先提供了一种代码生成方法,可以应用于软件开发过程对代码的自动生成。参考图1中所示,上述的代码生成方法可以包括以下步骤:
S101,获取基础文档;其中,所述基础文档包括用于描述前端和后端接口的接口文档;
S102,对所述接口文档进行解析以获取第一数据文件;
S103,提取所述第一数据文件中第一参数信息并添加至第一预设模板,以生成前端代码;以及
S104,提取所述第一数据文件中第二参数信息并添加至第二预设模板,以生成后端代码。
本示例实施方式所提供的量化分析模型处理方法中,通过将接口文档进行解析得到第一数据文件,在第一数据文件中分别提取第一参数信息和第二参数信息,并将其分别利用预设的第一模板和第二模板进行处理,进而能够同时获取前端代码和后端代码,实现了对代码的自动转化,有效的避免由于人工撰写代码导致的前端代码与后端代码不一致或不匹配的情况发生。进而能够有效的提高代码开发的效率。
下面,将结合附图及实施例对本示例实施方式中的代码生成方法的各个步骤进行更详细的说明。
步骤S101,获取基础文档;并根据所述需求文档创建基础文档。
本示例实施方式中,在进行软件开发过程中,首先可以根据与客户沟通交流的结果编写需求文档,该需求文档可以包括该软件的功能、性能、可靠性等具体要求。并可以根据该需求文档生成基础文档,具体来说,基础文档可以包括关于该软件的用于描述前端和后端接口的接口文档、用于表述软件任务流程的流程图。当然,基础文档也可以包括软件开发过程中所需的其它图表及原型图等文档。
步骤S102,对所述接口文档进行解析以获取第一数据文件。
本示例实施方式中,接口文档可以包括前端、后端的各接口的接口调用方式、接口功能描述、接口参数以及加密方式等信息。并可以利用Excel表格的形式进行体现。具体来说,可以利用Python(计算机程序设计语言)的xlrd库对接口文档进行解析,并生成xml格式的第一数据文件,该第一数据文件类可以包括各接口的各项属性值。
步骤S103,提取所述第一数据文件中第一参数信息并添加至第一预设模板,以生成前端代码。
本示例实施方式中,上述的第一参数信息可以包括用于生成前端代码所必需的:前端输入参数数据、前端输出参数数据、前端组件数据以及前端接口数据。具体来说,上述的提取所述第一数据文件中第一参数信息可以包括:
步骤S1031,在所述第一数据文件中提取输入参数、输出参数及开放接口功能号,并根据所述开放接口功能号所标识的参数类型获取所述前端输入参数数据和前端输出参数数据;
步骤S1032,根据所述开放接口功能号获取所述前端接口数据;以及
步骤S1033,根据所述前端输入参数数据和前端输出参数数据、前端接口数据获取所述前端组件数据。
在提取第一参数信息后,便可以将其添加至第一预设模板以得到前端代码。举例而言,在采用JAVA语言进行软件开发时,可以采用固定的数据处理模式。对于前端代码来说,第一预设模板可以采用例如:Angular JS框架,并可以采用Angular4中的component组件。其可以通过<script>标签添加到HTML页面中。
在采用Angular JS框架时,对于前端输入参数数据和前端输出参数数据来说,可以生成一前端参数列表,其参数类型可以利用Open API功能号(开放接口功能号)来确定。还可以根据各参数的功能名称为各前端输入参数数据和前端输出参数数据添加注释。对于前端接口数据来说,则可以根据Open API功能号(开放接口功能号)确定归属于前端的各前端接口函数,并可以生成一前端接口列表。同样的,也可以利用各接口函数的功能名称为各前端接口添加注释。依赖于上述的前端参数列表和前端接口列表,能够获取对于前端Angular组件数据(component)。
步骤S104,提取所述第一数据文件中第二参数信息并添加至第二预设模板,以生成后端代码。
本示例实施方式中,其中第二参数信息可以包括:后端输入参数数据、后端输出参数数据、后端控制层数据和后端接口数据。
具体来说,所述提取所述第一数据文件中第二参数信息可以包括:
步骤S1041,在所述第一数据文件中提取输入参数、输出参数及开放接口功能号,并根据所述开放接口功能号所表示的参数类型获取所述后端输入参数数据和后端输出参数数据;
步骤S1042,根据所述后端输入参数和所述开放接口功能号确定所述后端接口数据;以及
步骤S1043,根据所述后端接口数据、所述后端输入参数数据和后端输出参数数据获取所述后端控制层数据。
对于后端代码来说,可以采用spring框架作为第二预设模板。对于后端来说,上述的后端输入参数数据和后端输出参数数据可以根据各参数对应的Open API功能号(开放接口功能号)确定,并可以生成后端参数列表。在生成后端参数列表后,对于Getter和Setter,还可以根据该后端参数列表自动生成对应的get方法和set方法。对于后端接口数据,各后端接口函数可以根据各接口函数对应的Open API功能号(开放接口功能号)确定,并可以分局上述的后端输入参数数据和后端输出参数数据确定各后端接口函数对应的具体参数类型和参数名称,并可以生成一后端接口列表。对于Java控制层(controller),其控制层参数可以引用后端参数列表和后端接口列表,其接口参数可以引用后端接口列表。
当然,在本公开的其他示例性实施例中,对于上述的生成前端代码和后端代码可以同时进行,也可以按一定的顺序获取,本公开对此不做特殊限定。通过针对前端和后端预先设置不同的模板,并对根据接口文档生成的第一数据文档针对前端和后端提取不同参数,从而实现同时生成用于前端的代码框架和用于后端的代码框架,从而使程序员省去大量代码的手写,提升开发人员的工作效率。此外,也能够有效的避免由于人员理解不同出现的理解偏差和对接错误。并能够最大程度上统一代码风格,提升代码的可用性。
此外,在本示例实施方式中,参考图2所示,上述的代码生成方法还可以包括:
步骤S105,提取所述第一数据文件中第三参数信息,并根据所述第三参数信息生成测试用例。
具体来说,上述的提取所述第一数据文件中第三参数信息可以包括:
步骤S1051,提取所述第一数据文件中输入参数、输出参数以获取测试用例的参数列表;
提取所述第一数据文件中的开放接口功能号,并根据所述开放接口功能号为对应的测试用例配置请求URL;以及
提取所述第一数据文件中的接口的功能名称并将其配置为对应测试用例的名称。
对于测试用例来说,由于前端和后端均包括多个接口函数,在获取的测试用例的参数列表、请求URL和名称后,便可以利用jemter用例模板,生成各个接口的测试用例。
现有技术在编写测试用例时,需要根据编写完成的前端代码和后端代码及其所实现的功能,进行测试用例的编写。而本实施例所提供的方法,通过预设测试用例的模板,并在根据接口文档生成的第一数据文件中提取生成测试用例所必须的参数信息,在生成前端代码和后端代码的同时生成各接口的测试用例,从而保证测试用例的合理性和准确性,并能提高工作效率。避免由于人员理解的偏差导致测试用例不合理等情况的发生。
进一步的,上述的基础文档还可以包括流程图,该流程图可以用于描述系统的基本处理流程、系统的组织结构以及模块划分等信息。基于上述内容,在本示例实施方式中,参考图3所示,在获取前端代码、后端代码及测试用例后,所述方法还可以包括:
步骤S1061,对所述流程图进行解析以获取第二数据文件;
步骤S1062,在所述第二数据文件提取注释信息;
步骤S1063,将所述注释信息按预设规则嵌入所述前端代码、后端代码和所述测试用例对应的代码中。
举例而言,对于流程图来说,可以利用drae.io在线文档绘制流程图,并规范流程图的画法和存储格式,以统一图例解析方式。参考图4所示流程图,可以利用draw.io的开源解码包对流程图进行解析以获取xml格式的第二数据文件。具体而言,如图5所示,在解析流程图时,可以利用图形工具(style)中的形状属性(shape)获取对应的图形规则。
此外,流程图中可以包含生命周期线、自调用、激活块、应答和回调以及请求和一步请求等时序图形。
对于第二数据文件,可以利用Python对其进行解析以获取注释信息。具体来说,上述的注释信息可以包括:模块信息、调用步骤和描述信息中的任意一种或任意多种的组合。上述的在所述第二数据文件提取注释信息具体可以包括:
步骤S10621,提取所述第二数据文件中的各属性值,并根据所述属性值划分所述流程图中的时序图形;
步骤S10622,根据所述属性值和所述时序图形对所述流程图进行模块划分以获取模块信息。
在获取注释信息后,便可以将其嵌入对应的代码位置。举例来说,生命周期线对应的位置为后端代码spring模板的控制层(controller),以及前端angular模板的component组件;请求箭头线对应位置为后端代码spring模板中控制层(controller)的RequestMapping(用于处理请求地址映射的注解),以及前端angular模板的component组件中的接口;应答箭头线对应对应后端代码spring模板或前端代码angular模板中的返回值;自调用对应后端代码spring模板或前端代码angular模板中的私有函数,且多个私有函数共同组成一个接口逻辑;激活块对应决定函数的嵌套关系,例如接口A调用函数B,函数B调用函数C,则由激活块所在层级决定函数之间的层级;value值,即图形描述,对应接口或函数的代码注释,可以用于标明接口或函数的用途。
在对流程图进行解析并获取模块信息、调用步骤、描述信息后,可以保存在内存中,在前端代码、后端代码及测试用例时插入到对应模块的接口中去。通过利用接口文档生成代码框架,利用流程图获取注释数据指导业务流程,可以让程序员省去大量代码的手写,而流程图给出的流程解析,则可以帮助程序员快速理解业务过程,从而实现快速编写代码,并且自动生成注释,可以大大提高程序的可维护性,并提高工作效率。
进一步的,基于上述内容,参考图6所示,上述的方法还可以包括:
步骤111,判断所述基础文档是否存在更新数据;
步骤112,若所述基础文档存在更新数据,则根据所述更新数据对前端代码、后端代码及对应的测试用例进行更新。
在本示例实施方式中,举例来说,可以利用Jerkins服务框架部署自动化SVN服务(Subversion)对接口文档和流程图进行更新。举例而言,上述的代码生成方法具体可以以Python脚本的形式实现。在利用上述的代码生成方法生成前端代码、后端代码和测试用例后,可以将其分别保存在指定的目录或文件夹中。例如,可以为前端开发人员、后端开发人员和测试人员分别建立专用目录,并在生成前端代码、后端代码和测试用例后分别保存在前端开发人员、后端开发人员和测试人员的专用目录下。
在接口文档和/或流程图有更新文档或新增文档时,可以将其上传至SVN服务器,并可以利用邮件、短信等方式将其分别发送至前端开发人员、后端开发人员和测试人员,使前端开发人员和后端人员根据新增文件代码中入参和出参的定义以及业务逻辑注释,开始新的开发。测试人员在获取更新后,便可以获取最新的测试用例xml格式文件,并导入jmeter,即可获取所有入参、出参和接口。以接口测试为基础,增加更多场景的综合测试用例。等待后端人员代码完成后,即可进行测试。
通过对基础文档的更新进行实时的监控,能够使前端代码、后端代码和测试用例能够及时更新或修改,从而有效的提升开发人员的代码编写效率。
需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
进一步的,参考图7所示,本示例的实施方式中还提供一种代码生成装置50,包括:基础文档获取模块501、接口文档处理模块502、前端代码生成模块503以及前端代码生成模块504。其中:
所述基础文档获取模块501可以获取基础文档;其中,所述基础文档包括用于描述前端和后端接口的接口文档。
所述接口文档处理模块502可以用于对所述接口文档进行解析以获取第一数据文件。
所述前端代码生成模块503可以用于提取所述第一数据文件中第一参数信息并添加至第一预设模板,以生成前端代码。
所述后端代码生成模块504可以用于提取所述第一数据文件中第二参数信息并添加至第二预设模板,以生成后端代码。
进一步的,在本示例性实施方式中,上述的代码生成装置50还包括:测试用例生成模块。
所述测试用例生成模块可以用于提取所述第一数据文件中第三参数信息,并根据所述第三参数信息生成测试用例。
进一步的,在本示例性实施方式中,所述基础文档还包括流程图。上述的代码生成装置50还包括:流程图解析模块、第二数据文件解析模块以及注释信息嵌入模块。其中,
所述流程图解析模块可以用于对所述流程图进行解析以获取第二数据文件。
所述第二数据文件解析模块可以用于对所述第二数据文件提取注释信息。
所述注释信息嵌入模块可以用于将所述注释信息按预设规则嵌入所述前端代码、后端代码和测试用例对应的代码中。
进一步的,在本示例性实施方式中,上述的代码生成装置50还包括:更新检测模块和代码更新模块。其中,
所述更新检测模块可以用于判断所述基础文档是否存在更新数据。
所述代码更新模块可以用于在所述基础文档存在更新数据时,则根据所述更新数据对前端代码、后端代码及对应的测试用例进行更新。
进一步的,在本示例性实施方式中,上述的代码生成装置50还包括:代码推送模块。
所述代码推送模块可以用于将所述前端代码、后端代码和测试用例分别推送至对应的前端服务端、后端服务端和测试服务端。
上述的代码生成装置中各模块的具体细节已经在对应的代码生成方法中进行了详细的描述,因此此处不再赘述。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
在本公开的示例性实施例中,还提供了一种能够实现上述方法的电子设备。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
下面参照图8来描述根据本发明的这种实施方式的电子设备600。图8显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:上述至少一个处理单元610、上述至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示的步骤S101:获取基础文档;其中,所述基础文档包括用于描述前端和后端接口的接口文档;S102,对所述接口文档进行解析以获取第一数据文件;S103,提取所述第一数据文件中第一参数信息并添加至第一预设模板,以生成前端代码;S104,提取所述第一数据文件中第二参数信息并添加至第二预设模板,以生成后端代码。
存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器660通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
在本公开的示例性实施例中,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图9所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品800,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其他实施例。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限。
Claims (15)
1.一种代码生成方法,其特征在于,包括:
获取基础文档;其中,所述基础文档包括用于描述前端和后端接口的接口文档;
对所述接口文档进行解析以获取第一数据文件;
提取所述第一数据文件中第一参数信息并添加至第一预设模板,以生成前端代码;以及
提取所述第一数据文件中第二参数信息并添加至第二预设模板,以生成后端代码。
2.根据权利要求1所述的方法,其特征在于,所述第一参数信息包括:前端输入参数数据、前端输出参数数据、前端组件数据以及前端接口数据;
所述提取所述第一数据文件中第一参数信息包括:
在所述第一数据文件中提取输入参数、输出参数及开放接口功能号,并根据所述开放接口功能号所标识的参数类型获取所述前端输入参数数据和前端输出参数数据;
根据所述开放接口功能号获取所述前端接口数据;以及
根据所述前端输入参数数据和前端输出参数数据、前端接口数据获取所述前端组件数据。
3.根据权利要求1所述的方法,其特征在于,所述第二参数信息包括:后端输入参数数据、后端输出参数数据、后端控制层数据和后端接口数据;
所述提取所述第一数据文件中第二参数信息包括:
在所述第一数据文件中提取输入参数、输出参数及开放接口功能号,并根据所述开放接口功能号所表示的参数类型获取所述后端输入参数数据和后端输出参数数据;
根据所述后端输入参数和所述开放接口功能号确定所述后端接口数据;以及
根据所述后端接口数据、所述后端输入参数数据和后端输出参数数据获取所述后端控制层数据。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:提取所述第一数据文件中第三参数信息,并根据所述第三参数信息生成测试用例。
5.根据权利要求4所述的方法,其特征在于,所述提取所述第一数据文件中第三参数信息包括:
提取所述第一数据文件中输入参数、输出参数以获取测试用例的参数列表;
提取所述第一数据文件中的开放接口功能号,并根据所述开放接口功能号为对应的测试用例配置请求URL;以及
提取所述第一数据文件中的接口的功能名称并将其配置为对应测试用例的名称。
6.根据权利要求4所述的方法,其特征在于,所述第一数据文件包括多个接口;所述测试用例包括对应所述多个接口的多个测试用例。
7.根据权利要求4所述的方法,其特征在于,所述基础文档还包括流程图;所述方法还包括:
对所述流程图进行解析以获取第二数据文件;
在所述第二数据文件提取注释信息;
将所述注释信息按预设规则嵌入所述前端代码、后端代码和所述测试用例对应的代码中。
8.根据权利要求7所述的方法,其特征在于,所述注释信息包括:
模块信息、调用步骤和描述信息中的任意一种或任意多种的组合。
9.根据权利要求8所述的方法,其特征在于,所述在所述第二数据文件提取注释信息包括:
提取所述第二数据文件中的各属性值,并根据所述属性值划分所述流程图中的时序图形;
根据所述属性值和所述时序图形对所述流程图进行模块划分以获取模块信息。
10.根据权利要求9所述的方法,其特征在于,所述将所述注释信息按预设规则嵌入所述前端代码、后端代码和测试用例对应的代码中包括:
根据所述时序图形获取所述描述信息对应在所述前端代码、后端代码和所述测试用例代码的嵌入位置。
11.根据权利要求4所述的方法,其特征在于,所述方法还包括:
判断所述基础文档是否存在更新数据;
若所述基础文档存在更新数据,则根据所述更新数据对前端代码、后端代码及对应的测试用例进行更新。
12.根据权利要求1所述的方法,其特征在于,所述获取基础文档包括:
获取需求文档,并根据所述需求文档创建基础文档。
13.一种代码生成装置,其特征在于,包括:
基础文档获取模块,用于获取基础文档;其中,所述基础文档包括用于描述前端和后端接口的接口文档;
接口文档处理模块,用于对所述接口文档进行解析以获取第一数据文件;
前端代码生成模块,用于提取所述第一数据文件中第一参数信息并添加至第一预设模板,以生成前端代码;
后端代码生成模块,用于提取所述第一数据文件中第二参数信息并添加至第二预设模板,以生成后端代码。
14.一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现根据权利要求1至12中任一项所述的代码生成方法。
15.一种电子终端,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行根据权利要求1至12中任一项所述的代码生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810933995.5A CN109117131B (zh) | 2018-08-16 | 2018-08-16 | 代码生成方法及装置、存储介质及电子终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810933995.5A CN109117131B (zh) | 2018-08-16 | 2018-08-16 | 代码生成方法及装置、存储介质及电子终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109117131A true CN109117131A (zh) | 2019-01-01 |
CN109117131B CN109117131B (zh) | 2022-08-16 |
Family
ID=64851856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810933995.5A Active CN109117131B (zh) | 2018-08-16 | 2018-08-16 | 代码生成方法及装置、存储介质及电子终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109117131B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069248A (zh) * | 2019-03-16 | 2019-07-30 | 平安城市建设科技(深圳)有限公司 | 接口数据的调用方法、装置、设备及计算机可读存储介质 |
CN110515608A (zh) * | 2019-08-30 | 2019-11-29 | 网易(杭州)网络有限公司 | 一种接口代码的生成方法及装置、电子设备、存储介质 |
CN110806863A (zh) * | 2019-11-05 | 2020-02-18 | 泰康保险集团股份有限公司 | 接口文档生成方法及装置、电子设备、存储介质 |
CN111638875A (zh) * | 2020-06-05 | 2020-09-08 | 中国银行股份有限公司 | 一种对端生成方法及系统 |
CN111930635A (zh) * | 2020-09-17 | 2020-11-13 | 深圳微品致远信息科技有限公司 | 基于swagger快速自动化测试的方法及系统 |
CN112181393A (zh) * | 2020-09-28 | 2021-01-05 | 中国建设银行股份有限公司 | 前后端代码生成方法、装置、计算机设备及存储介质 |
CN112256252A (zh) * | 2019-07-22 | 2021-01-22 | 腾讯科技(深圳)有限公司 | 接口生成方法、装置、存储介质及电子设备 |
CN112463261A (zh) * | 2020-11-20 | 2021-03-09 | 北京达佳互联信息技术有限公司 | 接口调用方法及装置 |
CN112667204A (zh) * | 2020-12-15 | 2021-04-16 | 南方电网数字电网研究院有限公司 | 微服务应用的数据处理方法、装置和计算机设备 |
CN112817864A (zh) * | 2021-02-23 | 2021-05-18 | 北京字节跳动网络技术有限公司 | 一种测试文件的生成方法、装置、设备及介质 |
CN113050953A (zh) * | 2021-04-21 | 2021-06-29 | 平安普惠企业管理有限公司 | 基于注释生成代码的方法、装置及存储介质 |
CN113138757A (zh) * | 2021-05-11 | 2021-07-20 | 中国工商银行股份有限公司 | 前端代码自动生成方法、装置、服务器、系统及介质 |
CN113835693A (zh) * | 2021-09-15 | 2021-12-24 | 欧电云信息科技(江苏)有限公司 | 代码生成方法、装置、电子设备、存储介质 |
WO2022134915A1 (zh) * | 2020-12-25 | 2022-06-30 | 中兴通讯股份有限公司 | 一种接口测试方法、计算机设备及计算机可读存储介质 |
CN114741315A (zh) * | 2022-04-28 | 2022-07-12 | 深圳市紫光同创电子有限公司 | 用例更新方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022619A (zh) * | 2014-04-25 | 2015-11-04 | 无锡物联网产业研究院 | 一种代码数据处理方法及装置 |
CN106648690A (zh) * | 2016-12-29 | 2017-05-10 | 北京恒华伟业科技股份有限公司 | 一种代码自动生成方法及装置 |
CN107168702A (zh) * | 2017-05-10 | 2017-09-15 | 苏州奇松软件有限公司 | 一种App、小程序和Web接口定义和代码生成方法 |
CN107341014A (zh) * | 2017-06-27 | 2017-11-10 | 乐视致新电子科技(天津)有限公司 | 电子设备、技术文档的生成方法及装置 |
-
2018
- 2018-08-16 CN CN201810933995.5A patent/CN109117131B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105022619A (zh) * | 2014-04-25 | 2015-11-04 | 无锡物联网产业研究院 | 一种代码数据处理方法及装置 |
CN106648690A (zh) * | 2016-12-29 | 2017-05-10 | 北京恒华伟业科技股份有限公司 | 一种代码自动生成方法及装置 |
CN107168702A (zh) * | 2017-05-10 | 2017-09-15 | 苏州奇松软件有限公司 | 一种App、小程序和Web接口定义和代码生成方法 |
CN107341014A (zh) * | 2017-06-27 | 2017-11-10 | 乐视致新电子科技(天津)有限公司 | 电子设备、技术文档的生成方法及装置 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110069248A (zh) * | 2019-03-16 | 2019-07-30 | 平安城市建设科技(深圳)有限公司 | 接口数据的调用方法、装置、设备及计算机可读存储介质 |
CN112256252A (zh) * | 2019-07-22 | 2021-01-22 | 腾讯科技(深圳)有限公司 | 接口生成方法、装置、存储介质及电子设备 |
CN112256252B (zh) * | 2019-07-22 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 接口生成方法、装置、存储介质及电子设备 |
CN110515608A (zh) * | 2019-08-30 | 2019-11-29 | 网易(杭州)网络有限公司 | 一种接口代码的生成方法及装置、电子设备、存储介质 |
CN110806863A (zh) * | 2019-11-05 | 2020-02-18 | 泰康保险集团股份有限公司 | 接口文档生成方法及装置、电子设备、存储介质 |
CN111638875B (zh) * | 2020-06-05 | 2023-09-22 | 中国银行股份有限公司 | 一种对端生成方法及系统 |
CN111638875A (zh) * | 2020-06-05 | 2020-09-08 | 中国银行股份有限公司 | 一种对端生成方法及系统 |
CN111930635A (zh) * | 2020-09-17 | 2020-11-13 | 深圳微品致远信息科技有限公司 | 基于swagger快速自动化测试的方法及系统 |
CN112181393A (zh) * | 2020-09-28 | 2021-01-05 | 中国建设银行股份有限公司 | 前后端代码生成方法、装置、计算机设备及存储介质 |
CN112181393B (zh) * | 2020-09-28 | 2023-12-26 | 中国建设银行股份有限公司 | 前后端代码生成方法、装置、计算机设备及存储介质 |
CN112463261A (zh) * | 2020-11-20 | 2021-03-09 | 北京达佳互联信息技术有限公司 | 接口调用方法及装置 |
CN112667204B (zh) * | 2020-12-15 | 2024-01-23 | 南方电网数字平台科技(广东)有限公司 | 微服务应用的数据处理方法、装置和计算机设备 |
CN112667204A (zh) * | 2020-12-15 | 2021-04-16 | 南方电网数字电网研究院有限公司 | 微服务应用的数据处理方法、装置和计算机设备 |
WO2022134915A1 (zh) * | 2020-12-25 | 2022-06-30 | 中兴通讯股份有限公司 | 一种接口测试方法、计算机设备及计算机可读存储介质 |
CN112817864A (zh) * | 2021-02-23 | 2021-05-18 | 北京字节跳动网络技术有限公司 | 一种测试文件的生成方法、装置、设备及介质 |
CN112817864B (zh) * | 2021-02-23 | 2024-04-16 | 北京字节跳动网络技术有限公司 | 一种测试文件的生成方法、装置、设备及介质 |
CN113050953A (zh) * | 2021-04-21 | 2021-06-29 | 平安普惠企业管理有限公司 | 基于注释生成代码的方法、装置及存储介质 |
CN113138757A (zh) * | 2021-05-11 | 2021-07-20 | 中国工商银行股份有限公司 | 前端代码自动生成方法、装置、服务器、系统及介质 |
CN113138757B (zh) * | 2021-05-11 | 2024-03-29 | 中国工商银行股份有限公司 | 前端代码自动生成方法、装置、服务器、系统及介质 |
CN113835693A (zh) * | 2021-09-15 | 2021-12-24 | 欧电云信息科技(江苏)有限公司 | 代码生成方法、装置、电子设备、存储介质 |
CN113835693B (zh) * | 2021-09-15 | 2024-03-08 | 欧电云信息科技(江苏)有限公司 | 代码生成方法、装置、电子设备、存储介质 |
CN114741315A (zh) * | 2022-04-28 | 2022-07-12 | 深圳市紫光同创电子有限公司 | 用例更新方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109117131B (zh) | 2022-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109117131A (zh) | 代码生成方法及装置、存储介质及电子终端 | |
US7784025B2 (en) | Mechanism for using processlets to model service processes | |
US11934772B2 (en) | Providing synchronous and asynchronous general user interface (GUI) input | |
US20120233589A1 (en) | Software development kit for blended services | |
US20130238384A1 (en) | Business management system | |
US20120233588A1 (en) | Blended service creation, test, and deployment environment for multiple service endpoints | |
CN108961033A (zh) | 多业务系统交互方法及装置、存储介质、电子终端 | |
CN110543297B (zh) | 用于生成源码的方法和装置 | |
US11126938B2 (en) | Targeted data element detection for crowd sourced projects with machine learning | |
US20210182983A1 (en) | Method and system for automated generation of a floor joist 2d drawings from a 3d model | |
EP4195108A1 (en) | Method and apparatus for generating and applying deep learning model based on deep learning framework | |
WO2022267310A1 (zh) | 软件开发的辅助处理方法、设备、存储介质及程序产品 | |
CN109918314A (zh) | 移动终端上的测试方法及装置、电子设备、存储介质 | |
CN106371931B (zh) | 一种基于Web框架的高性能地学计算服务系统 | |
US11061739B2 (en) | Dynamic infrastructure management and processing | |
CN112947902B (zh) | 一种系统开发管理平台 | |
US10922208B2 (en) | Observer for simulation test and verification | |
CN112307177A (zh) | 使用非结构会话机器人生成过程流模型 | |
US20200326932A1 (en) | System and method for creating and validating software development life cycle (sdlc) digital artifacts | |
US11928627B2 (en) | Workflow manager | |
CN108763296B (zh) | 一种在线查看和编辑的数据库结构生成方法及装置 | |
WO2020150009A1 (en) | Profile data store automation via bots | |
CN110333897A (zh) | 一种接口配置方法、装置、介质和电子设备 | |
WO2024001594A1 (zh) | 算子开发、处理方法、装置、电子设备、系统及存储介质 | |
US11256493B1 (en) | Container image optimizer |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220727 Address after: 310000 room 1810, building 2, No. 3588, Jiangnan Avenue, Puyan street, Binjiang District, Hangzhou, Zhejiang Province Applicant after: ZHEJIANG JINGTENG NETWORK TECHNOLOGY Co.,Ltd. Address before: Hang Seng building, 3588 Jiangnan Avenue, Binjiang District, Hangzhou City, Zhejiang Province 310053 Applicant before: HANGZHOU YUNJI NETWORK TECHNOLOGY CO.,LTD. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |