CN113867706A - 代码生成方法及装置 - Google Patents

代码生成方法及装置 Download PDF

Info

Publication number
CN113867706A
CN113867706A CN202111148259.7A CN202111148259A CN113867706A CN 113867706 A CN113867706 A CN 113867706A CN 202111148259 A CN202111148259 A CN 202111148259A CN 113867706 A CN113867706 A CN 113867706A
Authority
CN
China
Prior art keywords
code
service
mind map
state
defining
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
CN202111148259.7A
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.)
Shanghai Zhongyan Network Technology Co ltd
Original Assignee
Shanghai Zhongyan 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 Shanghai Zhongyan Network Technology Co ltd filed Critical Shanghai Zhongyan Network Technology Co ltd
Priority to CN202111148259.7A priority Critical patent/CN113867706A/zh
Publication of CN113867706A publication Critical patent/CN113867706A/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开实施例公开了一种代码生成方法及装置,首先针对业务构建思维导图,得到业务对应的思维导图文件,其中,思维导图文件中定义了节点的内容;对所述思维导图文件进行解析,得到思维导图的代码;根据思维导图的代码生成业务代码。通过构建思维导图,生成相关代码,最终在系统中统一处理当前用户的可用操作,以及执行操作之后应该进行的状态变更,可以提高开发效率,提高代码质量,减少代码缺陷的产生,易于后期维护。避免了开发代码时间长,开发的代码质量低的缺陷。

Description

代码生成方法及装置
技术领域
本公开涉及数据处理技术领域,具体涉及到一种代码生成方法及装置。
背景技术
相关技术中,在实现业务状态变更时,通常通过分散在系统各处的if else代码来实现的,采用该方式开发效率低,代码的质量低下。
发明内容
本公开的主要目的在于提供一种代码生成方法及装置。
为了实现上述目的,根据本公开的第一方面,提供了一种代码生成方法,包括:针对业务构建思维导图,得到业务对应的思维导图文件,其中,思维导图文件中定义了节点的内容;对所述思维导图文件进行解析,得到思维导图的代码;根据思维导图的代码,生成业务代码。
可选地,针对业务构建思维导图包括:定义业务包含的状态节点,其中,每个状态节点对应一个状态信息;基于所述状态信息,定义操作节点;定义每一个操作节点对应的事件节点,其中,定义事件节点的内容包括:定义操作之前的状态信息;定义操作之后的状态信息,定义本操作对应的角色信息。
可选地,方法还包括:与前端界面建立连接;针对当前登录用户以及业务的当前状态,确定当前登录用户对应的操作列表;当前登录用户通过前端界面操作后,确定操作之前的业务的状态、操作之后的业务状态,并基于状态执行改变业务状态的操作。
可选地,方法还包括:对思维导图中的内容进行修改,得到新思维导图文件;对所述新思维导图文件进行解析,得到新思维导图的代码;基于新思维导图的代码,生成新业务代码。
根据本公开的第二方面,提供了一种代码生成装置,包括:思维导图构建单元,被配置成针对业务构建思维导图,得到业务对应的思维导图文件,其中,思维导图文件中定义了节点的内容;解析单元,被配置成对所述思维导图文件进行解析,得到思维导图的代码;代码生成单元,被配置成根据思维导图的代码,生成业务代码。
可选地,针对业务构建思维导图包括:定义业务包含的状态节点,其中,每个状态节点对应一个状态信息;基于所述状态信息,定义操作节点;定义每一个操作节点对应的事件节点,其中,定义事件节点的内容包括:定义操作之前的状态信息;定义操作之后的状态信息,定义本操作对应的角色信息。
可选地,装置还包括:与前端界面建立连接;针对当前登录用户以及业务的当前状态,确定当前登录用户对应的操作列表;当前登录用户通过前端界面操作后,确定操作之前的业务的状态、操作之后的业务状态,并基于状态执行改变业务状态的操作。
根据本公开的第三方面,提供了一种计算机可读存储介质,存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面任意一项所述的代码生成方法。
根据本公开的第四方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行第一方面任意一项实现方式所述的代码生成方法。
本公开实施例代码生成方法及装置,首先针对业务构建思维导图,得到业务对应的思维导图文件,其中,思维导图文件中定义了节点的内容;对所述思维导图文件进行解析,得到思维导图的代码;根据思维导图的代码生成业务代码。通过构建思维导图,生成相关代码,最终在系统中统一处理当前用户的可用操作,以及执行操作之后应该进行的状态变更,可以提高开发效率,提高代码质量,减少代码缺陷的产生,易于后期维护。避免了开发代码时间长,开发的代码质量低的缺陷。
附图说明
为了更清楚地说明本公开具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本公开的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本公开实施例的代码生成方法的流程图;
图2是根据本公开实施例的代码生成方法的应用场景图;
图3是根据本公开实施例的代码生成装置的结构示意图;
图4是根据本公开实施例的电子设备的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
根据本公开实施例,提供了一种代码生成方法,如图1所示,该方法包括如下的步骤101至步骤103:
步骤101:针对业务构建思维导图,得到业务对应的思维导图文件,其中,思维导图文件中定义了节点的内容。
在本实施例中,可以首先对业务进行需求分析,例如,分析当前业务在执行过程中包括哪些状态;针对不同的状态,不同的角色可以进行哪些操作(不同的角色所对应的操作信息);每个操作执行之前的状态是什么(操作被执行之前的状态),执行之后的状态是什么(操作被执行之后的状态)。
基于需求分析,构建思维导图,思维导图中可以包括多个节点,通过定义各个节点的内容可以得到思维导图文件。
作为本实施例一种可选的实现方式,针对业务构建思维导图包括:定义业务包含的状态节点,其中,每个状态节点对应一个状态信息;基于所述状态信息,定义操作节点;定义每一个操作节点对应的事件节点,其中,定义事件节点的内容包括:定义操作之前的状态信息;定义操作之后的状态信息,定义本操作对应的角色信息。
进一步地,基于分析的需求信息建立思维导图,包括定义思维导图中的节点,包括状态节点、操作节点和事件节点。参考图2,以业务中的环节“销售机会状态变迁”为例,所构建的思维导图可以通过enums、actions、events三个节点来分别记录状态列表、操作列表以及事件列表,其中events节点下的子节点,可用于记录在某个操作之后对应的操作之前的状态(src),操作之后的状态(dst),什么角色可以进行本操作(role)。
步骤102:对所述思维导图文件进行解析,得到思维导图的代码。
在本实施例中,可以通过程序解析上述思维导图文件,得到对应信息,生成对应代码。
通过思维导图先定义好所有的状态、操作、事件、角色,之后通过解析思维导图,生成相关代码,最终在系统中统一处理当前用户的可用操作,以及执行操作之后应该进行的状态变更,这样可以提高开发效率,提高代码质量,减少代码缺陷的产生,易于后期维护。
步骤103:根据思维导图的代码,生成业务代码。
在本实施例中,业务代码可以直接应用于项目中,以支持实际业务需求的变化。
作为本实施例一种可选的实现方式,方法还包括:对思维导图中的内容进行修改,得到新思维导图代码;基于新思维导图的代码,生成新业务代码。
在本实施例中,如果需求发生了变更,只需要修改思维导图中的定义,再重新解析思维导图,生成新的代码便可直接应用在项目中。
通过对业务构建思维导图后,后期只需要调整思维导图,并对思维导图文件重新进行解析生成业务代码,即可支持实际业务需求的变化。此种方式,能快速实现系统原型,并能快速响应需求变化,提高了代码开发效率,避免了人工开发代码时间长,工作量大的缺陷
作为本实施例一种可选的实现方式,方法还包括:与前端界面建立连接;针对当前登录用户以及业务的当前状态,确定当前登录用户对应的操作列表;当前登录用户通过前端界面操作后,确定操作之前的业务的状态、操作之后的业务状态,并基于状态执行改变业务状态的操作。
在本可选的实现方式中,代码中可以预设有与前端界面连接的接口。前端可以包括管理界面或自定义页面。在管理界面中配置有统一的默认项,用户可通过管理界面触发默认类型的操作按钮。在自定义页面中用户可以按需对页面进行渲染,而后可在该页面触发自定义的操作按钮。
可通过get_available_action函数,根据当前用户身份,以及当前对象状态,计算出可用的操作列表(即当根据当前的角色,确定映射的数据)。可以将该数据(可用操作列表)返回给前端。此时前端不需要任何额外的处理,直接展示操作列表中各个操作对应的操作按钮即可。当用户触发按钮后,系统可以计算出操作之前的状态,操作之后的状态,进而执行改变状态的操作。
示例性的,针对当前登录用户以及业务的当前状态,确定当前登录用户对应的操作列表时,参考图2,在确定用户角色后,如果当前状态为已签单,则将角色所映射的该状态之后的数据发送至前端,例如,将输单相关的数据发送至前端,以使前端基于该数据展示输单相应的操作按钮。
示例性地,当用户在前端界面触发某个操作按钮后,可以通过触发后端的submit_action函数,此函数会根据生成的思维导图的代码,检查当前用户是否可以执行本操作。如果可以,就继续根据思维导图的代码,设置本次操作后对象的状态,将该状态保存到数据库。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本公开实施例,还提供了一种用于实施上述用于流程更新的代码生成方法的装置,如图3所示,该装置包括:思维导图构建单元301,被配置成针对业务构建思维导图,得到业务对应的思维导图文件,其中,思维导图文件中定义了节点的内容;解析单元302,被配置成对所述思维导图文件进行解析,得到思维导图的代码;代码生成单元303,被配置成根据思维导图的代码,生成业务代码。
作为本实施例一种可选的实现方式,针对业务构建思维导图包括:定义业务包含的状态节点,其中,每个状态节点对应一个状态信息;基于所述状态信息,定义操作节点;定义每一个操作节点对应的事件节点,其中,定义事件节点的内容包括:定义操作之前的状态信息;定义操作之后的状态信息,定义本操作对应的角色信息。
作为本实施例一种可选的实现方式,装置还包括:与前端界面建立连接;针对当前登录用户以及业务的当前状态,确定当前登录用户对应的操作列表;当前登录用户通过前端界面操作后,确定操作之前的业务的状态、操作之后的业务状态,并基于状态执行改变业务状态的操作。
作为本实施例一种可选的实现方式,所述装置还包括:对思维导图中的内容进行修改,得到新思维导图文件;对所述新思维导图文件进行解析,得到新思维导图的代码;基于新思维导图的代码,生成新业务代码。
本公开实施例提供了一种电子设备,如图4所示,该电子设备包括一个或多个处理器41以及存储器42,图4中以一个处理器41为例。
该控制器还可以包括:输入装置43和输出装置44。
处理器41、存储器42、输入装置43和输出装置44可以通过总线或者其他方式连接,图4中以通过总线连接为例。
处理器41可以为中央处理器(Central ProcessingUnit,CPU)。处理器41还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器42作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本公开实施例中的控制方法对应的程序指令/模块。处理器41通过运行存储在存储器42中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例的代码生成方法。
存储器42可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据服务器操作的处理装置的使用所创建的数据等。此外,存储器42可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器42可选包括相对于处理器41远程设置的存储器,这些远程存储器可以通过网络连接至网络连接装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置43可接收输入的数字或字符信息,以及产生与服务器的处理装置的用户设置以及功能控制有关的键信号输入。输出装置44可包括显示屏等显示设备。
一个或者多个模块存储在存储器42中,当被一个或者多个处理器41执行时,执行如图1所示的方法。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各电机控制方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(RandomAccessMemory,RAM)、快闪存储器(FlashMemory)、硬盘(HardDiskDrive,缩写:HDD)或固态硬盘(Solid-StateDrive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本公开的实施方式,但是本领域技术人员可以在不脱离本公开的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (10)

1.一种代码生成方法,其特征在于,包括:
针对业务构建思维导图,得到业务对应的思维导图文件,其中,思维导图文件中定义了节点的内容;
对所述思维导图文件进行解析,得到思维导图的代码;
根据思维导图的代码,生成业务代码。
2.根据权利要求1所述的代码生成方法,其特征在于,针对业务构建思维导图包括:
定义业务包含的状态节点,其中,每个状态节点对应一个状态信息;
基于所述状态信息,定义操作节点;
定义每一个操作节点对应的事件节点,其中,定义事件节点的内容包括:定义操作之前的状态信息;定义操作之后的状态信息,定义本操作对应的角色信息。
3.根据权利要求2所述的代码生成方法,其特征在于,所述方法还包括:
与前端界面建立连接;
针对当前登录用户以及业务的当前状态,确定当前登录用户对应的操作列表;
当前登录用户通过前端界面操作后,确定操作之前的业务的状态、操作之后的业务状态,并基于状态执行改变业务状态的操作。
4.根据权利要求1所述的代码生成方法,其特征在于,所述方法还包括:
对思维导图中的内容进行修改,得到新思维导图文件;
对所述新思维导图文件进行解析,得到新思维导图的代码;
基于新思维导图的代码,生成新业务代码。
5.一种代码生成装置,其特征在于,包括:
思维导图构建单元,被配置成针对业务构建思维导图,得到业务对应的思维导图文件,其中,思维导图文件中定义了节点的内容;
解析单元,被配置成对所述思维导图文件进行解析,得到思维导图的代码;
代码生成单元,被配置成根据思维导图的代码,生成业务代码。
6.根据权利要求5所述的代码生成装置,其特征在于,针对业务构建思维导图包括:
定义业务包含的状态节点,其中,每个状态节点对应一个状态信息;
基于所述状态信息,定义操作节点;
定义每一个操作节点对应的事件节点,其中,定义事件节点的内容包括:定义操作之前的状态信息;定义操作之后的状态信息,定义本操作对应的角色信息。
7.根据权利要求6所述的代码生成装置,其特征在于,所述装置还包括:
与前端界面建立连接;
针对当前登录用户以及业务的当前状态,确定当前登录用户对应的操作列表;
当前登录用户通过前端界面操作后,确定操作之前的业务的状态、操作之后的业务状态,并基于状态执行改变业务状态的操作。
8.根据权利要求5所述的代码生成装置,其特征在于,所述装置还包括:
对思维导图中的内容进行修改,得到新思维导图文件;
对所述新思维导图文件进行解析,得到新思维导图的代码;
基于新思维导图的代码,生成新业务代码。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-4任意一项所述的代码生成方法。
10.一种电子设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器执行权利要求1-4任意一项所述的代码生成方法。
CN202111148259.7A 2021-09-29 2021-09-29 代码生成方法及装置 Pending CN113867706A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111148259.7A CN113867706A (zh) 2021-09-29 2021-09-29 代码生成方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111148259.7A CN113867706A (zh) 2021-09-29 2021-09-29 代码生成方法及装置

Publications (1)

Publication Number Publication Date
CN113867706A true CN113867706A (zh) 2021-12-31

Family

ID=78992291

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111148259.7A Pending CN113867706A (zh) 2021-09-29 2021-09-29 代码生成方法及装置

Country Status (1)

Country Link
CN (1) CN113867706A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115858824A (zh) * 2023-02-28 2023-03-28 北京朗知网络传媒科技股份有限公司 一种交互式数码传媒文章的智能生成方法和装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115858824A (zh) * 2023-02-28 2023-03-28 北京朗知网络传媒科技股份有限公司 一种交互式数码传媒文章的智能生成方法和装置

Similar Documents

Publication Publication Date Title
CN109683953B (zh) 一种基于可视化界面进行配置文件处理的方法及装置
US10943191B2 (en) Designer tool for managing cloud computing services
CN111314141B (zh) 路由更新方法及装置
US10521462B2 (en) Virtual services rapid deployment tool
CN113934913A (zh) 数据抓取方法、装置、存储介质及电子设备
CN111737137A (zh) 接口测试数据生成方法、装置、主机及存储介质
CN112131015A (zh) 一种信息处理方法、装置、云服务器和存储介质
CN113867706A (zh) 代码生成方法及装置
CN113296760A (zh) 模型代码的生成方法、计算机设备及可读存储介质
WO2021129812A1 (zh) 运行人工智能应用的方法、系统及设备
US20220180174A1 (en) Using a deep learning based surrogate model in a simulation
CN116661936A (zh) 页面数据的处理方法、装置、计算机设备及存储介质
CN116578293A (zh) 业务数据方法、装置、设备及存储介质
CN111124634A (zh) 一种训练方法、装置及电子设备和存储介质
CN108632069B (zh) 一种客户端配置方法、系统及相关设备
CN107818002B (zh) 一种命令行界面的管理方法及装置
US20210274005A1 (en) Method, apparatus, device and computer storage medium for determining source channel
US9069562B2 (en) Mobile computing program slicing and behavior
KR102594638B1 (ko) Devs 내에서 원자 모델을 테스트하기 위한 방법
US11567743B1 (en) Integrated testing tool for data replication
CN111443905A (zh) 业务数据的处理方法、装置、系统及电子设备
CN113806596B (zh) 运营数据管理方法及相关装置
CN113760723B (zh) 一种业务流程调试方法和装置
US20240231838A1 (en) Methods for generating configuration data packet and file, processing method, device and medium
Pogrebnoy Constructing graph models for software system development and analysis

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