代码生成方法及装置与流程

文档序号:28289427发布日期:2021-12-31 22:32阅读:75来源:国知局
代码生成方法及装置与流程

1.本公开涉及数据处理技术领域,具体涉及到一种代码生成方法及装置。


背景技术:

2.相关技术中,在实现业务状态变更时,通常通过分散在系统各处的if else代码来实现的,采用该方式开发效率低,代码的质量低下。


技术实现要素:

3.本公开的主要目的在于提供一种代码生成方法及装置。
4.为了实现上述目的,根据本公开的第一方面,提供了一种代码生成方法,包括:针对业务构建思维导图,得到业务对应的思维导图文件,其中,思维导图文件中定义了节点的内容;对所述思维导图文件进行解析,得到思维导图的代码;根据思维导图的代码,生成业务代码。
5.可选地,针对业务构建思维导图包括:定义业务包含的状态节点,其中,每个状态节点对应一个状态信息;基于所述状态信息,定义操作节点;定义每一个操作节点对应的事件节点,其中,定义事件节点的内容包括:定义操作之前的状态信息;定义操作之后的状态信息,定义本操作对应的角色信息。
6.可选地,方法还包括:与前端界面建立连接;针对当前登录用户以及业务的当前状态,确定当前登录用户对应的操作列表;当前登录用户通过前端界面操作后,确定操作之前的业务的状态、操作之后的业务状态,并基于状态执行改变业务状态的操作。
7.可选地,方法还包括:对思维导图中的内容进行修改,得到新思维导图文件;对所述新思维导图文件进行解析,得到新思维导图的代码;基于新思维导图的代码,生成新业务代码。
8.根据本公开的第二方面,提供了一种代码生成装置,包括:思维导图构建单元,被配置成针对业务构建思维导图,得到业务对应的思维导图文件,其中,思维导图文件中定义了节点的内容;解析单元,被配置成对所述思维导图文件进行解析,得到思维导图的代码;代码生成单元,被配置成根据思维导图的代码,生成业务代码。
9.可选地,针对业务构建思维导图包括:定义业务包含的状态节点,其中,每个状态节点对应一个状态信息;基于所述状态信息,定义操作节点;定义每一个操作节点对应的事件节点,其中,定义事件节点的内容包括:定义操作之前的状态信息;定义操作之后的状态信息,定义本操作对应的角色信息。
10.可选地,装置还包括:与前端界面建立连接;针对当前登录用户以及业务的当前状态,确定当前登录用户对应的操作列表;当前登录用户通过前端界面操作后,确定操作之前的业务的状态、操作之后的业务状态,并基于状态执行改变业务状态的操作。
11.根据本公开的第三方面,提供了一种计算机可读存储介质,存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面任意一项所述的代码生成方法。
12.根据本公开的第四方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第一方面任意一项实现方式所述的代码生成方法。
13.本公开实施例代码生成方法及装置,首先针对业务构建思维导图,得到业务对应的思维导图文件,其中,思维导图文件中定义了节点的内容;对所述思维导图文件进行解析,得到思维导图的代码;根据思维导图的代码生成业务代码。通过构建思维导图,生成相关代码,最终在系统中统一处理当前用户的可用操作,以及执行操作之后应该进行的状态变更,可以提高开发效率,提高代码质量,减少代码缺陷的产生,易于后期维护。避免了开发代码时间长,开发的代码质量低的缺陷。
附图说明
14.为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
15.图1是根据本公开实施例的代码生成方法的流程图;
16.图2是根据本公开实施例的代码生成方法的应用场景图;
17.图3是根据本公开实施例的代码生成装置的结构示意图;
18.图4是根据本公开实施例的电子设备的示意图。
具体实施方式
19.为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
20.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
21.需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
22.根据本公开实施例,提供了一种代码生成方法,如图1所示,该方法包括如下的步骤101至步骤103:
23.步骤101:针对业务构建思维导图,得到业务对应的思维导图文件,其中,思维导图文件中定义了节点的内容。
24.在本实施例中,可以首先对业务进行需求分析,例如,分析当前业务在执行过程中包括哪些状态;针对不同的状态,不同的角色可以进行哪些操作(不同的角色所对应的操作信息);每个操作执行之前的状态是什么(操作被执行之前的状态),执行之后的状态是什么(操作被执行之后的状态)。
25.基于需求分析,构建思维导图,思维导图中可以包括多个节点,通过定义各个节点的内容可以得到思维导图文件。
26.作为本实施例一种可选的实现方式,针对业务构建思维导图包括:定义业务包含的状态节点,其中,每个状态节点对应一个状态信息;基于所述状态信息,定义操作节点;定义每一个操作节点对应的事件节点,其中,定义事件节点的内容包括:定义操作之前的状态信息;定义操作之后的状态信息,定义本操作对应的角色信息。
27.进一步地,基于分析的需求信息建立思维导图,包括定义思维导图中的节点,包括状态节点、操作节点和事件节点。参考图2,以业务中的环节“销售机会状态变迁”为例,所构建的思维导图可以通过enums、actions、events三个节点来分别记录状态列表、操作列表以及事件列表,其中events节点下的子节点,可用于记录在某个操作之后对应的操作之前的状态(src),操作之后的状态(dst),什么角色可以进行本操作(role)。
28.步骤102:对所述思维导图文件进行解析,得到思维导图的代码。
29.在本实施例中,可以通过程序解析上述思维导图文件,得到对应信息,生成对应代码。
30.通过思维导图先定义好所有的状态、操作、事件、角色,之后通过解析思维导图,生成相关代码,最终在系统中统一处理当前用户的可用操作,以及执行操作之后应该进行的状态变更,这样可以提高开发效率,提高代码质量,减少代码缺陷的产生,易于后期维护。
31.步骤103:根据思维导图的代码,生成业务代码。
32.在本实施例中,业务代码可以直接应用于项目中,以支持实际业务需求的变化。
33.作为本实施例一种可选的实现方式,方法还包括:对思维导图中的内容进行修改,得到新思维导图代码;基于新思维导图的代码,生成新业务代码。
34.在本实施例中,如果需求发生了变更,只需要修改思维导图中的定义,再重新解析思维导图,生成新的代码便可直接应用在项目中。
35.通过对业务构建思维导图后,后期只需要调整思维导图,并对思维导图文件重新进行解析生成业务代码,即可支持实际业务需求的变化。此种方式,能快速实现系统原型,并能快速响应需求变化,提高了代码开发效率,避免了人工开发代码时间长,工作量大的缺陷
36.作为本实施例一种可选的实现方式,方法还包括:与前端界面建立连接;针对当前登录用户以及业务的当前状态,确定当前登录用户对应的操作列表;当前登录用户通过前端界面操作后,确定操作之前的业务的状态、操作之后的业务状态,并基于状态执行改变业务状态的操作。
37.在本可选的实现方式中,代码中可以预设有与前端界面连接的接口。前端可以包括管理界面或自定义页面。在管理界面中配置有统一的默认项,用户可通过管理界面触发默认类型的操作按钮。在自定义页面中用户可以按需对页面进行渲染,而后可在该页面触发自定义的操作按钮。
38.可通过get_available_action函数,根据当前用户身份,以及当前对象状态,计算出可用的操作列表(即当根据当前的角色,确定映射的数据)。可以将该数据(可用操作列表)返回给前端。此时前端不需要任何额外的处理,直接展示操作列表中各个操作对应的操作按钮即可。当用户触发按钮后,系统可以计算出操作之前的状态,操作之后的状态,进而执行改变状态的操作。
39.示例性的,针对当前登录用户以及业务的当前状态,确定当前登录用户对应的操作列表时,参考图2,在确定用户角色后,如果当前状态为已签单,则将角色所映射的该状态之后的数据发送至前端,例如,将输单相关的数据发送至前端,以使前端基于该数据展示输单相应的操作按钮。
40.示例性地,当用户在前端界面触发某个操作按钮后,可以通过触发后端的submit_action函数,此函数会根据生成的思维导图的代码,检查当前用户是否可以执行本操作。如果可以,就继续根据思维导图的代码,设置本次操作后对象的状态,将该状态保存到数据库。
41.需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
42.根据本公开实施例,还提供了一种用于实施上述用于流程更新的代码生成方法的装置,如图3所示,该装置包括:思维导图构建单元301,被配置成针对业务构建思维导图,得到业务对应的思维导图文件,其中,思维导图文件中定义了节点的内容;解析单元302,被配置成对所述思维导图文件进行解析,得到思维导图的代码;代码生成单元303,被配置成根据思维导图的代码,生成业务代码。
43.作为本实施例一种可选的实现方式,针对业务构建思维导图包括:定义业务包含的状态节点,其中,每个状态节点对应一个状态信息;基于所述状态信息,定义操作节点;定义每一个操作节点对应的事件节点,其中,定义事件节点的内容包括:定义操作之前的状态信息;定义操作之后的状态信息,定义本操作对应的角色信息。
44.作为本实施例一种可选的实现方式,装置还包括:与前端界面建立连接;针对当前登录用户以及业务的当前状态,确定当前登录用户对应的操作列表;当前登录用户通过前端界面操作后,确定操作之前的业务的状态、操作之后的业务状态,并基于状态执行改变业务状态的操作。
45.作为本实施例一种可选的实现方式,所述装置还包括:对思维导图中的内容进行修改,得到新思维导图文件;对所述新思维导图文件进行解析,得到新思维导图的代码;基于新思维导图的代码,生成新业务代码。
46.本公开实施例提供了一种电子设备,如图4所示,该电子设备包括一个或多个处理器41以及存储器42,图4中以一个处理器41为例。
47.该控制器还可以包括:输入装置43和输出装置44。
48.处理器41、存储器42、输入装置43和输出装置44可以通过总线或者其他方式连接,图4中以通过总线连接为例。
49.处理器41可以为中央处理器(central processingunit,cpu)。处理器41还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(app
licationspecificintegratedcircuit,asic)、现场可编程门阵列(field

programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
50.存储器42作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本公开实施例中的控制方法对应的程序指令/模块。处理器41通过运行存储在存储器42中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的代码生成方法。
51.存储器42可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器42可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器42可选包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
52.输入装置43可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置44可包括显示屏等显示设备。
53.一个或者多个模块存储在存储器42中,当被一个或者多个处理器41执行时,执行如图1所示的方法。
54.本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各电机控制方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(read

onlymemory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flashmemory)、硬盘(harddiskdrive,缩写:hdd)或固态硬盘(solid

statedrive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
55.虽然结合附图描述了本公开的实施方式,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1