掌桥专利:专业的专利平台
掌桥专利
首页

一种智能高效代码生成方法、装置及存储介质

文献发布时间:2023-06-19 11:49:09


一种智能高效代码生成方法、装置及存储介质

技术领域

本发明涉及代码自动生成技术领域,特别涉及一种智能高效代码生成方法、装置及存储介质。

背景技术

传统软件开发,所有代码都得由程序员进行编写,但在代码中很多功能都是相似的,重复的编码过程导致开发效率低下、人力成本增加、开发周期长等问题。这就需要使用代码生成器进行代码编写。

现有技术中的代码生成器存在以下几个缺点:代码生成器代码生成后,需要人为的再拷贝到软件工程里面,不够高效;代码生成器生成的代码格式都一样,不能根据需求进行定制化生成,生成的代码要嵌入软件工程还需要人工进行调整,不够灵活;当出现后续业务需求变更时,数据库表中的字段进行变更后代码不能进行同步变更,变更的字段需要人工修改代码中的实体类字段,变更效率低不满足高可用特性。

发明内容

针对现有技术存在的问题,本发明主要提供一种智能高效代码生成方法、装置及存储介质。

为了实现上述目的,本发明采用的一个技术方案是:提供一种智能高效代码生成方法,其包括:对代码文件夹中是否存在当前目标业务代码相应的历史业务代码文件进行判断;若代码文件夹中存在当前目标业务代码相应的历史业务代码文件,则从数据库获取当前目标业务代码所需完整的当前代码参数信息,以及变更前历史业务代码完整的变更前代码参数信息,并将当前代码参数信息以及变更前代码参数信息进行差异对比,抽取当前差异化代码参数信息,组装当前未变化代码参数信息;以及,根据当前未变化代码参数信息以及当前未变化代码参数信息,利用代码文件模板生成当前目标业务代码文件。

本发明采用的另一个技术方案是:提供一种智能高效代码生成装置,其包括:用于对代码文件夹中是否存在当前目标业务代码相应的历史业务代码文件进行判断的模块;用于若代码文件夹中存在当前目标业务代码相应的历史业务代码文件,则从数据库获取当前目标业务代码所需完整的当前代码参数信息,以及变更前历史业务代码完整的变更前代码参数信息,并将当前代码参数信息以及变更前代码参数信息进行差异对比,抽取当前差异化代码参数信息,组装当前未变化代码参数信息的模块;以及,用于根据当前未变化代码参数信息以及当前未变化代码参数信息,利用代码文件模板生成当前目标业务代码文件的模块。

本发明采用的另一个技术方案是:提供一种智能高效代码生成系统,其包括:基础配置层,包括代码文件模板模块、代码参数配置模块和数据库连接配置模块,代码文件模板模块用于存储在生成代码过程中需要的不同的代码文件模板,代码参数配置模块用于代码参数配置以及数据库连接配置模块用于配置生成代码所连接的数据库;逻辑处理中心,包括运行环境校验模块、基础数据获取模块、数据处理中心模块和文件生成中心模块,运行环境校验模块用于进行生成参数格式校验、数据库连接校验和数据库存在性校验,基础数据获取模块用于从基础配置层中获取代码生成需要的各类参数,数据处理中心模块用于对各类参数进行处理,以及文件生成中心模块用于利用处理后的各类参数和代码文件模板生成代码文件;以及,用户交互层,包括用户操作交换模块和生成结果提示模块,用户操作交换模块用于进行用户操作响应,生成结果提示模块用于将运行环境校验结果生成的正常或者异常消息提醒显示给用户。

本发明采用的另一个技术方案是:提供一种计算机可读存储介质,其存储有计算机指令,该计算机指令被操作以执行方案一中的智能高效代码生成方法。

本发明的技术方案可以达到的有益效果是:本发明设计了一种智能高效代码生成方法、装置及存储介质。该方法通过定制代码生成器的代码文件模板,使生成的代码功能不一样,更加灵活;当需要进行后续业务变更时,数据库表中的字段变更后只需要重新同步即可,更加快捷可靠。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一种智能高效代码生成方法的一个具体实施方式的示意图;

图2是本发明一种智能高效代码生成装置的另一个具体实施方式的示意图;

图3是本发明一种智能高效代码生成系统的一个具体实施方式的示意图。

通过上述附图,已示出本发明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。

具体实施方式

下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

图1示出了本发明一种智能高效代码生成方法,该方法主要包括:S101,对代码文件夹中是否存在当前目标业务代码相应的历史业务代码文件进行判断;S102,若代码文件夹中存在当前目标业务代码相应的历史业务代码文件,则从数据库获取当前目标业务代码所需完整的当前代码参数信息,以及变更前历史业务代码完整的变更前代码参数信息,并将当前代码参数信息以及变更前代码参数信息进行差异对比,抽取当前差异化代码参数信息,组装当前未变化代码参数信息;以及,S103,根据当前未变化代码参数信息以及当前未变化代码参数信息,利用代码文件模板生成当前目标业务代码文件。

在进行代码文件生成时,首先判断代码文件夹中是否存在当前目标业务代码相应的历史业务代码文件,以防止代码文件夹中存在历史业务代码文件而用户在进行信息交互时选择生成新的代码文件造成的更新参数信息丢失。当代码文件夹中不存在当前目标业务代码相应的历史业务代码文件时,生成新的代码文件。当代码文件夹中存在当前目标业务代码相应的历史业务代码文件且需要进行参数更新时,获取变更前的参数和变更后的参数进行对比,得到差异化信息。根据差异化信息和未变化代码参数信息和已经编写好的代码文件模板生成当前目标业务代码文件。

在该具体实施方式中,智能高效代码生成方法主要包括步骤S101,对代码文件夹中是否存在当前目标业务代码相应的历史业务代码文件进行判断。

在本发明的一个具体实施例中,当进行代码生成时,用户在进行信息交互时选择“生成完整代码”即首次生成代码文件,会存在用户认为生成的当前目标业务代码文件部分不存在而实际存在的现象。若当前目标业务代码文件存在则说明这部分代码已经生成过甚至已经修改过,如果再次生成覆盖掉历史业务代码文件,会造成历史业务代码文件修改内容遗失,这会造成重要信息丢失现象。此时需要和用户进行信息交互,告知用户代码文件夹中已经存在对应的文件,由用户进行进一步判断是否还需要生成新的代码文件。当用户在进行信息交互时选择“业务更新”即仅更新部分参数,会存在代码所存放的文件夹中没有对应的历史业务代码文件的现象,这种情况下需要和和用户进行信息交互,告知用户代码文件夹中不存在历史业务代码文件,无法进行业务更新。因此在进行代码文件生成时需要判断代码文件夹中是否存在当前目标业务代码相应的历史业务代码文件,保证了后续步骤执行时符合用户预期目的。

在本发明的一个具体实施例中,智能高效代码生成方法还包括,在对代码文件夹中是否存在当前目标业务代码相应的历史业务代码文件进行判断之前,对预先设定的生成参数格式、数据库连接是否正常和数据库中是否存在数据表进行校验;若生成参数格式错误、校验数据库连接异常以及数据库中不存在数据表,则停止当前目标业务代码的生成进程。

该具体实施例,能够保证后续进行代码文件生成时需要调用和连接的各部分均正常,提高了代码生成的效率。

在图1所示的具体实施方式中,智能高效代码生成方法,还包括步骤S102,若代码文件夹中存在当前目标业务代码相应的历史业务代码文件,则从数据库获取当前目标业务代码所需完整的当前代码参数信息,以及变更前历史业务代码完整的变更前代码参数信息,并将当前代码参数信息以及变更前代码参数信息进行差异对比,抽取当前差异化代码参数信息,组装当前未变化代码参数信息。

在本发明的一个具体实施例中,在软件开发时,当代码参数等信息在后续过程中需要进行业务更新时,用户通过信息交互端口将修改后的参数信息保存在数据库中。数据处理中心从数据库中抽取出参数信息对应的表字段数据和类型,同时获取变更前实体类所有字段的属性和注解等信息,并利用数据处理中心的差异化对比程序将获取得到的两种信息进行数据差异对比,智能判断出需要保留的内容并将需要保留的内容从数据库中抽取出来,得到差异化代码参数信息,并将当前未变化代码组装成为当前未变化代码参数信息。

该具体实施例,通过组装差异化代码参数信息,进一步保证了在进行业务变更时的参数的可靠性,为根据差异化代码参数信息进行业务更新奠定基础。

在本发明的一个具体实施例中,智能高效代码生成方法还包括,在从数据库获取当前目标业务代码所需完整的当前代码参数信息之前,对数据库的类型进行判断。

例如,当代码参数存放在Oracle、Mysql和sqlserver几种不同类型的数据库中时,根据不同参数所存放的不同的数据库类型执行不同的结构化查询语句(SQL),来抽取该数据库中所存储的代码参数的表字段数据和类型。

该具体实施例,能够更加准确快速的获取代码参数信息,提高代码生成的效率。

在本发明的一个具体实施例中,步骤S102还包括,利用Java反射从数据库获取变更前代码参数信息。

在本发明的一个具体实例中,java的反射机制能够动态获取信息以及动态调用对象。具体的,Java反射机制能够在程序运行时对于任意一个类获取这个类的所有属性和方法。对于任意一个对象,能够调用它的任意一个方法和属性。本发明利用利用Java反射机制从数据库中获取变更前代码参数中实体类参数的所有字段的属性信息和注解信息,为进行差异化信息对比做准备。

在图1所示的具体实施方式中,智能高效代码生成方法,还包括步骤S103,根据当前未变化代码参数信息以及当前未变化代码参数信息,利用代码文件模板生成当前目标业务代码文件。

在本发明的一个具体实施例中,在独立存方在代码生成器工具中的手工编写好的一系列模板文件中,将代码文件模板中的参数替换为当前未变化代码参数信息以及当前未变化代码参数信息。

该具体实施例,能够实现同步变更功能即不需要人工同步核对变更参数,提高了业务变更时的工作效率,而且降低了漏同步和同步错的风险。同时可以根据需求进行调整的代码文件模板,能够适应更多种类的架构更加灵活。

在本发明的一个具体实施例中,步骤S103还包括,利用代码文件模板根据目标文件夹存储路径,在目标文件夹中存储当前目标业务代码文件。

在本发明的一个具体实例中,在生成完整的代码文件后将生成的代码文件直接存储到用户选择的目标文件夹中。

该具体实施例,将生成的当前目标业务代码文件直接存放到软件工程里面,不需要人工寻找文件夹目录拷贝进去,更加高效和简捷。

在本发明的一个具体实施例中,步骤S103还包括,对当前目标业务代码的架构类型进行判断,并根据判断结果利用代码文件模板生成相应架构类型的代码文件。

在本发明的一个具体实例中,在配置好生成代码文件需要用到的当前未变化代码参数信息和差异化代码参数信息以及代码文件模板后,根据用户选择的需要的生成代码文件的架构类型,判断生成的代码文件的架构类型,比如普通架构和微服务架构等,然后根据判断结果生成对应架构的代码文件。

该具体实施例,能够使本发明适配普通版本架构和微服务版本架构,使生成的代码文件类型更加灵活。

在本发明的一个具体实施例中,智能高效代码生成方法还包括,当代码文件夹中不存在当前目标业务代码相应的历史业务代码文件且需要新生成代码文件时,数据处理中心从数据库中调取生成新的代码文件所需要用到的代码参数信息并将抽取出的代码参数进行组装,并利用组装后的代码参数生成正常代码信息。根据正常代码信息和代码文件模板以及判断得到的架构类型生成目标架构的代码文件,并将生成的代码文件直接保存至目标文件夹中。

该具体实施例,不需要人工重复编写功能相似的代码文件,提高了软件开发的效率,减少了人工成本。通过根据需求生成相应架构的代码文件,使代码生成方式更加灵活,更加符合需求。同时,将生成的代码文件直接保存至目标文件夹更加高效,减少了用户需要进行介入的步骤。

图2示出了本发明智能高效代码生成装置的具体实施方式。

在该具体实施方式中,智能高效代码生成装置主要包括:模块201,用于对代码文件夹中是否存在当前目标业务代码相应的历史业务代码文件进行判断的模块;

模块202,用于若代码文件夹中存在当前目标业务代码相应的历史业务代码文件,则从数据库获取当前目标业务代码所需完整的当前代码参数信息,以及变更前历史业务代码完整的变更前代码参数信息,并将当前代码参数信息以及变更前代码参数信息进行差异对比,抽取当前差异化代码参数信息,组装当前未变化代码参数信息的模块;以及,

模块203,用于根据当前未变化代码参数信息以及当前未变化代码参数信息,利用代码文件模板生成当前目标业务代码文件的模块。

在本发明的一个具体实施例中,本发明智能高效代码生成装置中各功能模块可直接在硬件中、在由处理器执行的软件模块中或在两者的组合中。

软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸盘、CD-ROM或此项技术中已知的任何其它形式的存储介质中。示范性存储介质耦合到处理器,使得处理器可从存储介质读取信息和向存储介质写入信息。

处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)、现场可编程门阵列(英文:Field Programmable Gate Array,简称:FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合等。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或一个以上微处理器或任何其它此类配置。在替代方案中,存储介质可与处理器成一体式。处理器和存储介质可驻留在ASIC中。ASIC可驻留在用户终端中。在替代方案中,处理器和存储介质可作为离散组件驻留在用户终端中。

本发明提供的智能高效代码生成装置,可用于执行上述任一实施例描述的智能高效代码生成方法,其实现原理和技术效果类似,在此不再赘述。

图3示出了本发明智能高效代码生成系统的具体实施方式。

在本发明的一种智能高效代码生成系统的具体实施方式中,该系统主要包括:

基础配置层,包括代码文件模板模块、代码参数配置模块和数据库连接配置模块,代码文件模板模块用于存储在生成代码过程中需要的不同的代码文件模板,代码参数配置模块用于代码参数配置以及数据库连接配置模块用于配置生成代码所连接的数据库;

逻辑处理中心,包括运行环境校验模块、基础数据获取模块、数据处理中心模块和文件生成中心模块,运行环境校验模块用于进行生成参数格式校验、数据库连接校验和数据库存在性校验,基础数据获取模块用于从基础配置层中获取代码生成需要的各类参数,数据处理中心模块用于对各类参数进行处理,以及文件生成中心模块用于利用处理后的各类参数和代码文件模板生成代码文件;以及,

用户交互层,包括用户操作交换模块和生成结果提示模块,用户操作交换模块用于进行用户操作响应,生成结果提示模块用于将运行环境校验结果生成的正常或者异常消息提醒显示给用户。

在本发明的另一个具体实施方式中,一种计算机可读存储介质,其存储有计算机指令,计算机指令被操作以执行方案一中的智能高效代码生成方法。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 一种智能高效代码生成方法、装置及存储介质
  • 基于DSL的智能合约代码生成方法、装置、设备及存储介质
技术分类

06120113067073