CN116483344A - 代码生成方法及装置、终端设备、计算机可读存储介质 - Google Patents
代码生成方法及装置、终端设备、计算机可读存储介质 Download PDFInfo
- Publication number
- CN116483344A CN116483344A CN202310461753.1A CN202310461753A CN116483344A CN 116483344 A CN116483344 A CN 116483344A CN 202310461753 A CN202310461753 A CN 202310461753A CN 116483344 A CN116483344 A CN 116483344A
- Authority
- CN
- China
- Prior art keywords
- demand
- code
- information
- requirement
- attribute
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000013507 mapping Methods 0.000 claims abstract description 12
- 238000012795 verification Methods 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 21
- 238000012216 screening Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012986 modification Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 5
- 238000007792 addition Methods 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 13
- 238000011161 development Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
-
- 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/36—Software reuse
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明公开了一种代码生成方法及装置、终端设备、计算机可读存储介质,所述代码生成方法包括:获取多个需求信息,所述需求信息具有属性;根据多个需求信息生成需求树,所述需求树中节点与需求信息相对应;利用所述需求树中各个节点对应的所述需求信息的属性及其与代码模板的映射关系,确定需求代码模板,并根据所述需求信息的属性以及所述需求代码模板生成代码。使用上述技术方案能够提高代码生成的效率。
Description
技术领域
本发明涉及代码生成技术领域,更具体地,其涉及一种代码生成方法及装置、终端设备、计算机可读存储介质。
背景技术
低代码(Low Code)是一种可视化的应用开发方法,通过少量代码或不用代码实现数字化转型中的场景应用。现有技术中的低代码开发平台通常是通过图形化拖拽的形式实现用户的需求,并根据用户的需求生成对应的代码。但是当需求量大且低代码开发平台中图形很多时,用户无法快速地在低代码开发平台中确定需求,从而影响代码生成的效率。
因此,如何提高代码生成的效率,是现在亟需解决的问题。
发明内容
本发明解决的技术问题是如何进行代码生成,以提高代码的生成效率。
为解决上述技术问题,本发明提供一种代码生成方法,所述代码生成方法包括:获取用户的输入信息;根据所述输入信息生成多个需求信息,所述需求信息具有属性;根据多个需求信息生成需求树,所述需求树中节点与需求信息相对应;利用所述需求树中各个节点对应的所述需求信息的属性及其与代码模板的映射关系,确定需求代码模板,并根据所述需求信息的属性以及所述需求代码模板生成代码。
可选的,所述需求信息的属性具有唯一标识,所述映射关系用于指示各个需求信息的属性的唯一标识及其对应的代码模板。
可选地,所述需求信息具有类型,所述需求树中不同节点对应不同类型的属性。
可选地,所述类型包括显示类型和筛选类型,所述类型为所述显示类型的所述需求信息用于指示实现展示功能,所述类型为所述筛选类型的所述需求信息用于指示实现筛选功能。
可选地,所述根据多个需求信息生成需求树包括:根据各个需求信息的类型生成各个需求信息的类型对应的节点;将各个需求信息的属性加入对应的节点,以得到所述需求树,所述需求信息的属性包括属性名和属性值。
可选地,所述代码生成方法还包括:根据所述多个需求信息及其属性生成预览窗口,并展示所述需求树,所述预览窗口用于在预设位置展示所述多个需求信息,所述需求树和所述预览窗口中的需求信息一致。
可选地,所述代码生成方法还包括:获取针对所述需求信息的调整指令,并利用所述调整指令对所述需求树进行调整,以得到调整后的调整需求树;其中,所述调整指令包括删除、新增、修改。
可选地,所述代码生成方法还包括:利用所述调整指令对所述预览窗口中的需求信息进行调整,所述调整需求树和调整后的预览窗口中的需求信息一致。
可选地,所述用户的输入信息包括:响应于代码生成请求输出需求问题;获取用户针对所述需求问题的答复内容,以获得所述输入信息。
可选地,所述根据所述需求信息的属性以及所述需求代码模板生成代码包括:根据所述需求信息的属性对所述代码模板中的待填充内容进行填充,以生成所述需求信息对应的代码。
可选地,所述代码生成方法还包括:对所述代码进行校验,以生成所述代码的校验报告,所述校验报告包括错误代码及其错误类型。
可选地,所述对所述代码进行校验,以生成所述代码的校验报告包括:获取多个校验程序,所述校验程序用于对所述代码进行校验,不同校验程序指示不同错误类型;利用多个校验程序对所述代码进行校验,以确定所述错误代码,并生成所述代码的所述校验报告。
本发明还公开一种代码生成装置,所述代码生成装置包括:获取模块,用于获取用户的输入信息;需求生成模块,用于根据所述输入信息生成多个需求信息,所述需求信息具有属性;第一生成模块,用于根据多个需求信息生成需求树,所述需求树中节点与需求信息相对应;第二生成模块,用于利用所述需求树中各个节点对应的所述需求信息的属性及其与代码模板的映射关系,确定需求代码模板,并根据所述需求信息的属性以及所述需求代码模板生成代码。
本发明还公开一种终端设备,包括存储器和处理器,所述存储器上存储有可在处理器上运行的计算机程序,所述计算机程序被处理器运行时执行上述任一种所述代码生成方法的步骤。
本发明还公开一种计算机可读存储介质,其上存储有计算机程序,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,所述计算机程序被处理器运行时执行上述任一种所述代码生成方法的步骤。
与现有技术相比,本发明的技术方案具有以下有益效果:
本发明提出一种代码生成方法,通过获取用户的输入信息;根据所述输入信息生成多个需求信息,根据多个需求信息的属性生成需求树,需求树中节点和需求信息相对应;利用需求树中各个节点对应的需求信息的属性及其与代码模板的映射关系,可以确定每一需求信息对应的需求代码模板,并根据需求信息的属性以及需求代码模板生成代码。本发明技术方案利用需求信息的属性对多个需求信息进行整理,根据需求信息生成需求树,用户能够从需求树中获取各个需求信息之间的关联关系,以提升需求信息的确定效率,进而提高代码生成的效率。此外,对于用户而言,其只需输入输入信息即可获得相应的代码,能够降低用户的操作难度,简化代码的生成过程,进一步提升用户在设计软件时的使用体验。
进一步地,在显示界面展示需求树,用户可以直接从需求树查看到具有相同属性的需求信息,还可以对需求树或预览窗口中的需求信息进行编辑,且需求树和预览窗口中需求信息一致,需求树和预览窗口中将同步显示修改后的需求信息。用户可以直接在预览窗口中对需求信息的属性进行编辑,也可以在需求树中对已完成分类的需求信息直接进行查看和编辑。用户可以更快捷地确定需要编辑的需求信息,大大提升用户代码生成的使用体验,并提高业务效率。
进一步地,响应于代码生成请求输出需求问题,需求问题可以引导用户明确需求,以提供针对需求问题的答复内容。可以根据答复内容确定答复内容对应的需求信息,以生成预览窗口和需求树,用户无需进行过多的操作即可实现代码的生成,简化代码的生成过程,降低用户的操作难度。
附图说明
图1是本发明实施例提供的一种代码生成方法的整体流程图;
图2是本发明实施例提供的一种需求树的示意图;
图3是本发明实施例提供的一种显示界面的示意图;
图4是本发明实施例提供的一种代码生成方法的具体流程图;
图5是本发明实施例提供的一种代码生成装置的结构示意图。
具体实施方式
如背景技术中所述,现有技术中的低代码开发平台通常是通过图形化拖拽的形式实现用户的需求,并根据用户的需求生成对应的代码。但是当需求量大且低代码开发平台中图形很多时,用户无法快速地在低代码开发平台中确定需求,从而影响代码生成的效率。因此,如何提高代码生成的效率,是现在亟需解决的问题。
本发明中,通过获取多个需求信息,根据多个需求信息的属性生成需求树,需求树中节点和需求信息相对应;利用需求树中各个节点对应的需求信息的属性及其与代码模板的映射关系,可以确定每一需求信息对应的需求代码模板,并根据需求信息的属性以及需求代码模板生成代码。本发明技术方案利用需求信息的属性对多个需求信息进行整理,根据需求信息生成需求树,用户能够从需求树中获取各个需求信息之间的关联关系,以提升需求信息的确定效率,进而提高代码生成的效率。
进一步地,在显示界面展示需求树,用户可以直接从需求树查看到具有相同属性的需求信息,还可以对需求树或预览窗口中的需求信息进行编辑,且需求树和预览窗口中需求信息一致,需求树和预览窗口中将同步显示修改后的需求信息。用户可以直接在预览窗口中对需求信息的属性进行编辑,也可以在需求树中对已完成分类的需求信息直接进行查看和编辑。用户可以更快捷地确定需要编辑的需求信息,大大提升用户代码生成的使用体验,并提高业务效率。
进一步地,响应于代码生成请求输出需求问题,需求问题可以引导用户明确需求,以提供针对需求问题的答复内容。可以根据答复内容确定答复内容对应的需求信息,以生成预览窗口和需求树,用户无需进行过多的操作即可实现代码的生成,简化代码的生成过程,降低用户的操作难度。
本实施例中所称需求信息用于表示用户对于待开发软件的界面和功能的要求。例如,需求信息可以为需要展示的字段信息,或者需要实现的功能。
本实施例中所称需求树用于表示多个需求信息。
本实施例中所称预览窗口用于展示需求信息。
为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明实施例提供的一种代码生成方法的整体流程图。
在具体实施中,下述步骤101至步骤103所记载的代码生成方法可以用于终端设备中。上述步骤具体可以由终端设备来执行,也可以由终端设备中具有数据处理功能的芯片所执行,也可以由终端设备中包含有数据处理功能的内嵌芯片模组来执行。在一个具体的实施例中,可以由服务器执行代码生成方法的各个步骤。
具体地,如图1所示,代码生成方法可以包括以下步骤:
在步骤101中,获取用户的输入信息;
在步骤102中,根据输入信息生成多个需求信息;
在步骤103中,根据多个需求信息生成需求树;
在步骤104中,利用所述需求树中各个节点对应的所述需求信息的属性及其与代码模板的映射关系,确定需求代码模板,并根据所述需求信息的属性以及所述需求代码模板生成代码。在步骤101和步骤102的具体实施方式中,服务器获取用户对于待开发软件的多个需求信息,每一需求信息具有属性,需求信息的属性可以包括属性名和属性值。例如,需求信息1包括姓名-小明;需求信息2包括性别—男;需求信息3包括年龄—20,其中,姓名、性别、年龄分别为属性名,小明、男和20分别是属性值。
在具体实施方式中,可以通过不同方式获取需求信息。例如,可以获取预设格式的需求文件,需求文件包括多个需求信息及其属性,对文件进行解析后可以得到多个需求信息;还可以获取输入的需求文本,需求文本包括多个需求信息及其属性。
在一个非限制的实施例中,用户可以通过输入语音或文本,通过对语音或文本进行语义理解,例如,提取语音或文本中的关键字,获得需求信息。
在另一个非限制的实施例中,服务器可以向用户提供多个选项,每一选项指示一个需求信息,用户可以勾选选项。通过用户的勾选选项,能够获得相应的需求信息。
在又一个非限制的实施例中,用户在准备开始进行代码生成时可以通过客户端向服务器发送代码生成请求。服务器响应于代码生成请求,向用户输出需求问题,需求问题可以指引用户输入对于待开发软件的不同需求。在获取用户针对需求问题的答复内容后,可以根据答复内容及其与需求信息的对应关系获取答复内容对应的需求信息。例如,需求问题可以是“本系统需要具备什么功能?”,在得到用户输入的答复内容“筛选和排序”后,根据答复内容和需求信息的对应关系确定该答复内容对应的需求信息为“筛选功能”和“排序功能”。答复内容和需求信息的对应关系可以预先存储于服务器中。通过提供需求问题的方式获取需求信息,用户无需具有一定技术基础也可进行软件的开发,可以降低用户的操作难度,简化代码的生成过程,进一步提升用户在设计软件时的使用体验。
需要说明的是,获取需求信息的方式不限于上述方式,还可以包括选择框、图像等方式。关于获取需求信息的方式可以根据实际情况确定,本申请对此不作限制。
在一个具体实施例中,可以在获取需求信息后获取用户选取的预览窗口模型,以确定待开发软件的界面样式,预览窗口模型用于表示软件的界面以及不同类型的需求信息的预设展示位置。为了便于对待开发软件进行管理,还可以在确定预览窗口模型后创建工程,每一工程对应于一个待开发软件,工程包括所述待开发软件的需求信息等内容。并根据选取的预览窗口模型、需求信息及其属性生成预览窗口。用户可以通过打开不同的工程对不同的待开发软件进行需求信息调整与代码生成,便于对多个待开发软件进行批量管理。
在步骤103的具体实施方式中,根据需求信息及其属性生成需求树,需求树中的节点与需求信息相对应。需求树中不同节点可以对应不同类型的属性。进一步地,类型包括显示类型和筛选类型,类型为显示类型的需求信息用于指示实现展示功能,类型为筛选类型的需求信息用于指示实现筛选功能。
在具体实施方式中,根据需求信息的类型生成各个需求信息的类型对应的节点,再根将各个需求信息的属性加入对应的节点,以得到需求树。
在一个具体实施方式中,根据多个需求信息形成的需求树如图2所示。节点“模块:研发管理系统”可以是用户预先确定的项目名称,为自动创建的父节点,节点“窗体:预立项”可以表示预览窗口,为自动创建的父节点。节点“筛选组”(也即类型为筛选类型)和节点“显示组”(也即类型为显示类型)为根据需求信息的属性生成的节点,用于区分需求信息的不同类型,节点“筛选组”中的每一子节点对应具有功能类型的需求信息,“显示组”中的每一子节点对应展示类型的需求信息。节点“显示组A”与节点“显示组B”可以用于区分需求信息在预设窗口中的位置。
在一个非限制的实施例中,可以在显示界面展示需求树,需求树和预览窗口中的需求信息一致,也即预览窗口中可以查看到该需求树中的各个需求信息。用户能够更直观地查看各个需求信息之间的关联关系,并确定具有相同类型的需求信息,大大提升用户的使用体验。
服务器获取到的需求信息的属性可以是“名称:项目代号;类型:显示组-显示组A”,根据该需求信息的类型可以确定该需求信息的类型对应的父节点为“显示组”与“显示组A”,且“显示组”为“显示组A”的父节点。生成父节点“显示组”和“显示组A”,并生成子节点“字段:项目代号”,根据类型将子节点作为“显示组A”的子节点。
进一步地,服务器获取到的需求信息的属性还可以是“名称:项目名称;类型:显示组-显示组A”。由于该需求信息的类型与前述生成的子节点“字段:项目代号”对应的需求信息的类型一致,因此在生成子节点“字段:项目名称”后,将节点“字段:项目代号”加入同一父节点“显示组A”。同理,分别根据“搜索字段:项目代号”、“排序方式:项目代号”、“筛选条件:近一年内”、“字段:市场领域”的属性生成对应的父节点及其子节点,以获得如图2所示的需求树。
相应地,节点“字段:项目代号”对应的需求信息的属性为“名称:项目代号;类型:显示组-显示组A”,该需求信息可以用于在预览窗口中显示组A的对应位置展示“项目代号”这一字段。
子节点“字段:项目名称”对应的需求信息的属性可以是“名称:项目名称;类型:显示组-显示组A”。该子节点与子节点“字段:项目代号”属于同一父节点“显示组A”。用户可以更直观地查看各个需求信息的属性,更快捷地确定需要编辑的需求信息,进一步地提升用户代码生成的使用体验。
在具体实施方式中,显示界面的示意图如图3所示,显示界面可以包括需求树展示区、预览窗口、属性展示区和代码生成结果展示区。其中,需求树展示区可以用于展示需求树,需求树展示区中展示的需求信息与预览窗口中展示的需求信息一致;属性展示区可以用于展示需求信息的属性,例如需求信息的名称和类型;代码生成结果展示区可以用于展示代码的生成结果,例如代码的校验报告等信息。
具体地,用户可以在需求树展示区中更新需求树的节点,在这种情况下,预览窗口中也相应更新上述节点对应的需求信息。或者,用户也可以在预览窗口中更新需求信息,在这种情况下,需求树展示区中也相应更新上述需求信息对应的需求树的节点。也就是说,通过上述同步更新的过程,使得需求树展示区中需求树中各节点对应的需求信息与预览窗口中展示的需求信息是一致的。
在属性展示区展示子节点对应的需求信息的属性时,可以同时展示该子节点对应的父节点至根节点的相关信息,使用户更全面地查看到子节点的相关信息。
在一个非限制性的实施例中,用户可以对需求树中的各个节点进行调整,以满足对待开发软件的不同需求。具体地,获取针对需求信息的调整指令,调整指令包括删除、新增、修改,并利用调整指令对需求树中各个节点对应的需求信息的属性进行调整。需求树将根据需求信息的属性变化而变化,以得到调整后的调整需求树。
继续结合图2所示的需求树对调整指令的作用进行说明。若调整指令指示删除节点“筛选条件:近一年内”对应的需求信息,则相应地删除节点“筛选条件:近一年内”;若调整指令指示修改节点“字段:项目代号”对应的需求信息的属性,将该需求信息的类型修改为“显示组-显示组B”,则相应地将节点“字段:项目代号”移动至父节点“显示组B”。相应地,在得到调整后的调整需求树时,也将调整预览窗口中展示的需求信息。
在具体实施方式中,也可以通过直接拖拽节点的方式将节点移动至其他父节点,相应地,被移动的节点对应的需求信息的类型将适应性变更,节点无法在功能类的类型与显示类的类型之间变换类型。
在一个非限制的实施例中,还可以利用调整指令对预览窗口中的需求信息进行调整。具体地,调整指令可以对预览窗口中展示的需求信息的属性进行修改,或者对需求信息进行新增与删除。若调整指令指示新增需求信息,则在新增需求信息后调整预览窗口,并相应地在调整需求树中增加新增需求信息对应的子节点。确保调整需求树和调整后的预览窗口中的需求信息一致,使用户在利用需求树和预览窗口共同对需求信息进行调整时需求信息的同步。用户可以从预览窗口中直接选取需要调整的需求信息,也可以在需求树中选取需要调整的子节点,大大提升需求变更时用户进行需求信息调整的操作便捷性,提升用户的使用体验。
继续参考图1,在步骤104的具体实施方式中,服务器预先存储有多个代码模板,代码模板与需求信息的属性的唯一标识具有映射关系。遍历需求树的各个节点,并根据各个节点对应的需求信息的属性的唯一标识确定该需求信息对应的需求代码模板,以根据需求信息的属性以及需求代码模板生成代码。
在一个非限制性的实施例中,根据需求信息的类型确定该需求信息对应的需求代码模板,需求代码模板具有待填充内容。可以根据需求信息的属性对需求代码模板中的待填充内容进行填充,以生成该需求信息对应的代码。同理,对每一需求信息生成其对应的代码,以得到待开发软件的代码。
例如,对于需求信息1,姓名-小明,其属性的唯一标识对应的代码模板为:printf("替换符号”,”替换符号”)。根据需求信息的属性(也即姓名-小明)对需求代码模板中的待填充内容进行填充,得到需求信息1对应的代码:printf("name”,”小明”)。
在具体实施方式中,需求信息的属性中还可以包括注释信息。在生成代码时,具有注释信息的需求信息对应的代码中可以显示该注释信息,以便于用户了解该代码的用途。
在一个非限制的实施例中,服务器存储有多个校验程序,校验程序用于对代码进行校验,以发现代码的程序错误,不同的校验程序指示不同的错误类型。可以在生成待开发软件的代码后利用多个校验程序对代码进行校验,并生成代码的校验报告,校验报告可以包括错误代码及其错误类型。具体地,校验报告还可以包括错误代码所在行号,以及针对错误代码的修改说明。用户可以根据校验报告对需求信息或代码进行调整,以确保代码能够顺利运行。
请参照图4,图4示出了一种代码生成方法的具体流程。
与图1所示方法不同的是,本发明实施例还包括对代码进行校验的过程。
具体地,在步骤404中,判断代码是否校验通过,如果是,则执行步骤405,否则继续执行步骤402。
其中,对代码进行校验的过程可以是采用上述多个校验程序进行校验的,具体实施方式可参照前述实施例,此处不再赘述。
在步骤405中,输出代码。也就是说,代码校验通过后输出代码,以保证代码的准确性以及运行性能。
关于步骤401至步骤403的具体实施方式可以参照图1以及对应实施例,此处不再赘述。
在具体实施方式中,服务器可以存储有代码优化程序,代码优化程序用于根据代码的错误类型对代码进行调整,以消除代码的程序错误。例如,代码中存在变量重复的命名,导致代码无法运行。代码优化程序可以在每一命名中添加后缀,以区分不同的命名,使代码能够正常运行。
在一个非限制性的实施例中,还可以根据各个需求信息的属性按照预设格式生成说明文档,说明文档用于对各个需求信息进行统计,以向用户展示各个需求信息的详细内容,方便用户查看待开发软件中的各个需求信息。
在本实施例中,根据需求信息得到预览窗口和需求树,预览窗口可以实时展示软件的预览效果,需求树根据各个需求信息的类型对需求信息进行分类,用户根据预览窗口与需求树即可直观且快速地查看各个需求信息的属性,以便于对需求信息进行调整,提升用户的使用体验与业务效率。根据代码模板生成代码,可以使用户无需自行编写代码,根据需求信息的类型及对应的需求代码模板即可获取需求信息对应的代码,大大降低软件的开发难度,同时提升代码复用率、减少代码的错误率,提升软件开发效率。
如图5所示,本发明实施例还公开了一种代码生成装置。代码生成装置50包括:
获取模块501,用于获取用户的输入信息;
需求生成模块502,用于根据输入信息生成多个需求信息,所述需求信息具有属性;
第一生成模块503,用于根据多个需求信息生成需求树,所述需求树中节点与需求信息相对应;
第二生成模块504,用于利用所述需求树中各个节点对应的所述需求信息的属性及其与代码模板的映射关系,确定需求代码模板,并根据所述需求信息的属性以及所述需求代码模板生成代码。
在具体实施中,上述代码生成装置可以对应于终端设备中具有数据处理功能的芯片,例如SOC(System-On-a-Chip,片上系统)、应用处理器芯片等;或者对应于终端设备中包括具有数据处理功能的芯片模组;或者对应于具有数据处理功能的内嵌芯片模组,或者对应于终端设备。
关于所述代码生成装置50的工作原理、工作方式的更多内容,可以参照图1至图4中的相关描述,这里不再赘述。
关于上述实施例中描述的各个装置、产品包含的各个模块/单元,其可以是软件模块/单元,也可以是硬件模块/单元,或者也可以部分是软件模块/单元,部分是硬件模块/单元。例如,对于应用于或集成于芯片的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于芯片模组的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于芯片模组的同一组件(例如芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于芯片模组内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现;对于应用于或集成于终端的各个装置、产品,其包含的各个模块/单元可以都采用电路等硬件的方式实现,不同的模块/单元可以位于终端内同一组件(例如,芯片、电路模块等)或者不同组件中,或者,至少部分模块/单元可以采用软件程序的方式实现,该软件程序运行于终端内部集成的处理器,剩余的(如果有)部分模块/单元可以采用电路等硬件方式实现。
本发明实施例还公开了一种存储介质,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,所述存储介质为计算机可读存储介质,其上存储有计算机程序,所述计算机程序运行时可以执行图1或图4中所示方法的步骤。
本发明实施例还公开了一种终端设备,所述终端设备可以包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时可以执行图1或图4中所示方法的步骤。
本申请实施例中出现的“多个”是指两个或两个以上。
本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
应理解,本申请实施例中,所述处理器可以为中央处理单元(central processingunit,简称CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,简称DSP)、专用集成电路(application specific integrated circuit,简称ASIC)、现成可编程门阵列(field programmable gate array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,简称ROM)、可编程只读存储器(programmable ROM,简称PROM)、可擦除可编程只读存储器(erasable PROM,简称EPROM)、电可擦除可编程只读存储器(electricallyEPROM,简称EEPROM)或闪存。易失性存储器可以是随机存取存储器(random accessmemory,简称RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random access memory,简称RAM)可用,例如静态随机存取存储器(staticRAM,简称SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronousDRAM,简称SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,简称DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,简称ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,简称SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,简称DR RAM)。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。所述存储介质还可以包括非挥发性存储器(non-volatile)或者非瞬态(non-transitory)存储器等。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和系统,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。
虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。
Claims (15)
1.一种代码生成方法,其特征在于,包括:
获取用户的输入信息;
根据所述输入信息生成多个需求信息,所述需求信息具有属性;
根据多个需求信息生成需求树,所述需求树中节点与需求信息相对应;
利用所述需求树中各个节点对应的所述需求信息的属性及其与代码模板的映射关系,确定需求代码模板,并根据所述需求信息的属性以及所述需求代码模板生成代码。
2.根据权利要求1所述的代码生成方法,其特征在于,所述需求信息的属性具有唯一标识,所述映射关系用于指示各个需求信息的属性的唯一标识及其对应的代码模板。
3.根据权利要求1所述的代码生成方法,其特征在于,所述需求信息具有类型,所述需求树中不同节点对应不同类型的属性。
4.根据权利要求3所述的代码生成方法,其特征在于,所述类型包括显示类型和筛选类型,类型为所述显示类型的所述需求信息用于指示实现展示功能,类型为所述筛选类型的所述需求信息用于指示实现筛选功能。
5.根据权利要求3所述的代码生成方法,其特征在于,所述根据多个需求信息生成需求树包括:
根据各个需求信息的类型生成各个需求信息的类型对应的节点;
将各个需求信息的属性加入对应的节点,以得到所述需求树,所述需求信息的属性包括属性名和属性值。
6.根据权利要求1所述的代码生成方法,其特征在于,还包括:
根据所述多个需求信息及其属性生成预览窗口,并展示所述需求树,所述预览窗口用于在预设位置展示所述多个需求信息,所述需求树和所述预览窗口中的需求信息一致。
7.根据权利要求6所述的代码生成方法,其特征在于,还包括:
获取针对所述需求信息的调整指令,并利用所述调整指令对所述需求树进行调整,以得到调整后的调整需求树;
其中,所述调整指令包括删除、新增、修改。
8.根据权利要求7所述的代码生成方法,其特征在于,还包括:
利用所述调整指令对所述预览窗口中的需求信息进行调整,所述调整需求树和调整后的预览窗口中的需求信息一致。
9.根据权利要求1所述的代码生成方法,其特征在于,所述获取用户的输入信息包括:
响应于代码生成请求输出需求问题;
获取用户针对所述需求问题的答复内容,以获得所述输入信息。
10.根据权利要求1所述的代码生成方法,其特征在于,所述根据所述需求信息的属性以及所述需求代码模板生成代码包括:
根据所述需求信息的属性对所述代码模板中的待填充内容进行填充,以生成所述需求信息对应的代码。
11.根据权利要求1所述的代码生成方法,其特征在于,还包括:
对所述代码进行校验,以生成所述代码的校验报告,所述校验报告包括错误代码及其错误类型。
12.根据权利要求11所述的代码生成方法,其特征在于,所述对所述代码进行校验,以生成所述代码的校验报告包括:
获取多个校验程序,所述校验程序用于对所述代码进行校验,不同校验程序指示不同错误类型;
利用多个校验程序对所述代码进行校验,以确定所述错误代码,并生成所述代码的所述校验报告。
13.一种代码生成装置,其特征在于,包括:
获取模块,用于获取用户的输入信息;
需求生成模块,用于根据所述输入信息生成多个需求信息,所述需求信息具有属性;
第一生成模块,用于根据多个需求信息生成需求树,所述需求树中节点与需求信息相对应;
第二生成模块,用于利用所述需求树中各个节点对应的所述需求信息的属性及其与代码模板的映射关系,确定需求代码模板,并根据所述需求信息的属性以及所述需求代码模板生成代码。
14.一种终端设备,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器运行所述计算机程序时执行权利要求1至12中任一项所述代码生成方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机可读存储介质为非易失性存储介质或非瞬态存储介质,所述计算机程序被处理器运行时执行权利要求1至12中任一项所述代码生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310461753.1A CN116483344A (zh) | 2023-04-25 | 2023-04-25 | 代码生成方法及装置、终端设备、计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310461753.1A CN116483344A (zh) | 2023-04-25 | 2023-04-25 | 代码生成方法及装置、终端设备、计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116483344A true CN116483344A (zh) | 2023-07-25 |
Family
ID=87211550
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310461753.1A Pending CN116483344A (zh) | 2023-04-25 | 2023-04-25 | 代码生成方法及装置、终端设备、计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116483344A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116893805A (zh) * | 2023-07-31 | 2023-10-17 | 红石阳光(北京)科技股份有限公司 | 一种满足定制化需求的代码生成方法 |
-
2023
- 2023-04-25 CN CN202310461753.1A patent/CN116483344A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116893805A (zh) * | 2023-07-31 | 2023-10-17 | 红石阳光(北京)科技股份有限公司 | 一种满足定制化需求的代码生成方法 |
CN116893805B (zh) * | 2023-07-31 | 2024-03-15 | 红石阳光(北京)科技股份有限公司 | 一种满足定制化需求的代码生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10824691B2 (en) | Page rendering method, device, and data storage medium | |
US11294968B2 (en) | Combining website characteristics in an automatically generated website | |
CN106133766B (zh) | 用于计算、应用和显示文档增量的系统和方法 | |
US11669503B2 (en) | Building and managing data-processing attributes for modeled data sources | |
CN110806863A (zh) | 接口文档生成方法及装置、电子设备、存储介质 | |
CN110688343B (zh) | 一种转换数据格式的方法及装置 | |
CN108762743B (zh) | 一种数据表操作代码生成方法及装置 | |
US9967370B2 (en) | OData enabled mobile software applications | |
US20140245196A1 (en) | User interface generation and preview | |
US20120266131A1 (en) | Automatic program generation device, method, and computer program | |
CN104572668A (zh) | 基于多个样式文件生成合并样式文件的方法和设备 | |
CN111581920A (zh) | 文档转换方法、装置、设备及计算机存储介质 | |
CN116483344A (zh) | 代码生成方法及装置、终端设备、计算机可读存储介质 | |
CN111427577A (zh) | 代码处理方法、装置及服务器 | |
CN113495730A (zh) | 资源包的生成及解析方法和装置 | |
US20210124752A1 (en) | System for Data Collection, Aggregation, Storage, Verification and Analytics with User Interface | |
CN110888634B (zh) | 游戏落地页生成方法、装置、计算机设备和存储介质 | |
CN109240679A (zh) | 脚本文件的图形化方法及装置 | |
JP2019101889A (ja) | テスト実行装置及びプログラム | |
CN112597023A (zh) | 基于导图的案例管理方法、装置、计算机设备及存储介质 | |
EP4180951A1 (en) | Generating lossless static object models of dynamic webpages | |
CN113254455B (zh) | 数据库的动态配置方法、装置、计算机设备及存储介质 | |
CN113204558B (zh) | 数据表结构自动更新方法和装置 | |
CN113098961B (zh) | 组件上传方法、装置、系统、计算机设备及可读存储介质 | |
US11036932B2 (en) | Technology platform having integrated content creation features |
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 |