CN116893805A - 一种满足定制化需求的代码生成方法 - Google Patents

一种满足定制化需求的代码生成方法 Download PDF

Info

Publication number
CN116893805A
CN116893805A CN202310950748.7A CN202310950748A CN116893805A CN 116893805 A CN116893805 A CN 116893805A CN 202310950748 A CN202310950748 A CN 202310950748A CN 116893805 A CN116893805 A CN 116893805A
Authority
CN
China
Prior art keywords
code
function
steps
customized
general
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
Application number
CN202310950748.7A
Other languages
English (en)
Other versions
CN116893805B (zh
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.)
Redstone Sunshine Beijing Technology Co ltd
Original Assignee
Redstone Sunshine Beijing 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 Redstone Sunshine Beijing Technology Co ltd filed Critical Redstone Sunshine Beijing Technology Co ltd
Priority to CN202310950748.7A priority Critical patent/CN116893805B/zh
Publication of CN116893805A publication Critical patent/CN116893805A/zh
Application granted granted Critical
Publication of CN116893805B publication Critical patent/CN116893805B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本发明提供了一种满足定制化需求的代码生成方法,包括:S1:确定出定制化需求的所有功能实现步骤;S2:基于所有功能实现步骤筛选出通用代码模块,并基于筛选出的所有通用代码模块生成主干核心代码;S3:基于所有功能实现步骤中除通用代码模块可实现的功能实现步骤以外剩余的功能实现步骤和历史定制化代码库,确定出定制代码模块;S4:基于定制化需求对所有定制代码模块进行编辑配置,获得分支定制代码;S5:将主干核心代码和分支定制代码进行合并配置,获得定制化需求代码生成结果;用以减少满足定制化需求的代码过程中的人工参与程度,提高了满足定制化需求的代码生成效率和准确率。

Description

一种满足定制化需求的代码生成方法
技术领域
本发明涉及后端代码自动生成技术领域,特别涉及一种满足定制化需求的代码生成方法。
背景技术
目前,在传统的软件开发中,一个后台管理系统的大部分业务代码都需要由程序员进行编写,除了一些定制化要求极高或者非标准的功能以外,很多功能都是相似的,比如常见的列表展现、列表查询搜索、表单添加、表单编辑、删除等。相似度较高的编码过程会严重导致开发效率低下、人力成本增加、开发周期长等问题。为了解决这个问题,很多框架或者工具都提供用代码生成器来进行代码编写。
但是,大部分代码生成器生成的代码存在如下缺陷:
第一,代码生成器生成的文件完全脱离项目,与当前项目的源码结果无任何关系,需要人工按照框架或者项目的配置参数将代码生成器生成的代码手动分配到指定目录,这样不但导致代码生成过程效率低下,而且生成的代码容易出现失误。
第二,代码生成器生成的代码遵循固定规则,当定制化需求变更时,需要程序员重新编写规则或者改写生成的代码结果,使得代码生成过程仍然需要程序员的大量技术参与,且这样也会进一步地导致代码生成过程效率低下,也进一步地增大了生成的代码失误概率。
因此,本发明提出了一种满足定制化需求的代码生成方法。
发明内容
本发明提供一种满足定制化需求的代码生成方法,用以克服背景技术中提出的技术问题。
本发明提供一种满足定制化需求的代码生成方法,包括:
S1:确定出定制化需求的所有功能实现步骤;
S2:基于所有功能实现步骤筛选出通用代码模块,并基于筛选出的所有通用代码模块生成主干核心代码;
S3:基于所有功能实现步骤中除通用代码模块可实现的功能实现步骤以外剩余的功能实现步骤和历史定制化代码库,确定出定制代码模块;
S4:基于定制化需求对所有定制代码模块进行编辑配置,获得分支定制代码;
S5:将主干核心代码和分支定制代码进行合并配置,获得定制化需求代码生成结果。
优选的,所述的一种满足定制化需求的代码生成方法,S1:确定出定制化需求的所有功能实现步骤,包括:
S101:对定制化需求进行初次实现步骤确定,获得功能实现流程树;
S102:基于功能实现流程树中的所有初次确定步骤和所有通用代码模块对应的通用功能实现流程,确定出定制化需求的所有功能实现步骤。
优选的,所述的一种满足定制化需求的代码生成方法,S102:基于功能实现流程树中的所有初次确定步骤和所有通用代码模块对应的通用功能实现流程,确定出定制化需求的所有功能实现步骤,包括:
在所有通用代码模块中筛选出功能实现流程树中包含与对应的通用功能实现流程匹配的部分功能实现流程的通用代码模块,并将筛选出的通用代码模块当作待选通用代码模块;
将所有待选通用代码模块的通用功能实现流程中包含的通用功能实现步骤总数的最大值,当作最大间隔步骤数阈值;
确定出所有初次确定步骤在功能实现流程树中的层级序数;
基于功能实现流程树中每个初次确定步骤的层级序数和最大间隔步骤数阈值,将所有待选通用代码模块与功能实现流程树进行匹配,获得多个完整匹配结果;
确定出功能实现流程树的实现步骤总数与完整匹配结果中所有通用代码模块的通用功能实现流程包含的实现步骤总数的差值;
判断出最小差值是否不超过最小差值阈值,若是,则将所有初次确定步骤当作定制化需求的所有功能实现步骤,否则,重新对定制化需求进行实现步骤确定,直至最新确定出的最小差值不超过最小差值阈值时,则将最新获得的所有划分步骤当作定制化需求的所有功能实现步骤。
优选的,所述的一种满足定制化需求的代码生成方法,基于功能实现流程树中每个初次确定步骤的层级序数和最大间隔步骤数阈值,将所有待选通用代码模块与功能实现流程树进行匹配,获得多个完整匹配结果,包括:
S1041:将功能实现流程树中层级序数不超出最大间隔步骤数阈值的初次确定步骤,当作假设通用功能起始步骤;
S1042:将所有待选通用代码模块中满足完全匹配条件的待选通用代码模块当作初选通用代码模块;
S1043:基于当前确定出的初选通用代码模块的终点步骤在功能实现流程树中的层级序数和最大间隔步骤数阈值,在功能实现流程树中确定出每个初选通用代码模块对应的新的假设通用功能起始步骤;
S1044:并将所有待选通用代码模块中除了所有初选通用代码模块以外剩余的待选通用代码模块,当作最新的待选通用代码模块;
S1045:将所有最新的待选通用代码模块中筛选出满足完全匹配条件新的待选通用代码模块,并将筛选出的新的待选通用代码模块与对应的初选通用代码模块进行汇总,获得假设匹配结果;
S1046:基于最新筛选出的待选通用代码模块不断循环执行S1043至S1045,并更新假设匹配结果,直至当前剩余的初选通用代码模块中不存在满足完全匹配条件的初选通用代码模块时,则将最新获得的假设匹配结果当作完整匹配结果。
优选的,所述的一种满足定制化需求的代码生成方法,完全匹配条件,包括:
完全匹配条件一:待选通用代码模块对应的通用功能实现流程的起始步骤为假设通用功能起始步骤;
完全匹配条件二:在功能实现流程树中从当前的假设通用功能起始步骤起之后的所有实现步骤中,存在与待选通用代码模块对应的通用功能实现流程完全匹配的初次确定步骤;
其中,将同时满足完全匹配条件一和完全匹配条件二的待选通用代码模块判定为满足完全匹配条件的待选通用代码模块。
优选的,根据权利要求1所述的一种满足定制化需求的代码生成方法,S2:基于所有功能实现步骤筛选出通用代码模块,并基于筛选出的所有通用代码模块生成主干核心代码,包括:
在通用代码模块库中筛选出对应的通用功能实现流程与功能实现步骤中的部分功能实现流程一致的通用代码模块;
对筛选出的所有通用代码模块进行编辑配置,获得主干核心代码。
优选的,所述的一种满足定制化需求的代码生成方法,S3:基于所有功能实现步骤中除通用代码模块可实现的功能实现步骤以外剩余的功能实现步骤和历史定制化代码库,确定出定制代码模块,包括:
S301:将所有功能实现步骤中除通用代码模块可实现的功能实现步骤以外剩余的功能实现步骤,当作定制功能实现步骤;
S302:将所有功能实现步骤中连续的定制功能实现步骤拼接,获得多个定制功能实现流程;
S303:确定出历史定制化代码库中每个历史定制化代码的部分历史功能实现流程树;
S304:基于所有历史功能实现流程树和所有定制功能实现流程,确定出定制代码模块。
优选的,所述的一种满足定制化需求的代码生成方法,S304:基于所有历史功能实现流程树和所有定制功能实现流程,确定出定制代码模块,包括:
在所有历史功能实现流程树中检索出与定制功能实现流程匹配的部分历史功能实现流程,并将匹配获得的部分历史功能实现流程对应的部分历史代码初始化,获得对应定制功能实现流程的第一定制代码框架;
基于所有历史功能实现流程树中都不存在对应匹配的部分历史功能实现流程的定制功能实现步骤,生成人工生成代码提示指令;
基于人工生成代码提示指令,接收对应定制功能实现流程的第二定制代码框架;
将所有第一定制代码框架和第二定制代码框架分别进行模块封装,获得定制代码模块。
优选的,所述的一种满足定制化需求的代码生成方法,S4:基于定制化需求对所有定制代码模块进行编辑配置,获得分支定制代码,包括:
S401:确定出定制化需求的定制化配置参数;
S402:基于定制化配置参数对所有定制代码模块进行编辑配置,获得分支定制代码。
优选的,所述的一种满足定制化需求的代码生成方法,S5:将主干核心代码和分支定制代码进行合并配置,获得定制化需求代码生成结果,包括:
将主干核心代码和分支定制代码进行合并,获得合并代码;
基于定制化需求的定制化配置参数对合并代码进行二次编辑配置,获得定制化需求代码生成结果。
本发明的有益效果为:经过自动配置使得生成的代码文件无需人工手动配置,减少了满足定制化需求的代码过程中的人工参与程度,而且通过将通用代码模块和历史定制化代码案例的实现步骤与定制化需求的实现步骤的匹配实现满足多样化定制化需求的代码的自动生成,进一步减少了满足定制化需求的代码过程中的人工参与程度,进而提高了满足定制化需求的代码生成效率和准确率。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明实施例中一种满足定制化需求的代码生成方法流程图;
图2为本发明实施例中的将所有待选通用代码模块与功能实现流程树进行匹配的匹配过程示意图;
图3为本发明实施例中的代码配置过程示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
实施例1:
本发明提供了一种满足定制化需求的代码生成方法,参考图1和3,包括:
S1:确定出定制化需求的所有功能实现步骤;
S2:基于所有功能实现步骤筛选出通用代码模块,并基于筛选出的所有通用代码模块生成主干核心代码;
S3:基于所有功能实现步骤中除通用代码模块可实现的功能实现步骤以外剩余的功能实现步骤和历史定制化代码库,确定出定制代码模块;
S4:基于定制化需求对所有定制代码模块进行编辑配置,获得分支定制代码;
S5:将主干核心代码和分支定制代码进行合并配置,获得定制化需求代码生成结果。
该实施例中,定制化需求即为不同客户针对自身产品对象实现不同执行功能的程序需求,增加收支分析功能、网站访问量统计功能等需求。
该实施例中,功能实现步骤即为实现定制化需求中所需实现的功能时的代码实现过程中包含的步骤,例如:“设定监控周期”或“获取网站在监控周期内的访问量”等。
该实施例中,通用代码模块即为经过后续参数配置后可实现某种功能的通用代码模块,通用代码模块中包含有被以模块形式封装的可实现对应功能的代码框架;例如当通用代码模块可实现的功能为获取目标数据(该目标数据的被获取对象可由后续配置确定,进而实现该功能)。
该实施例中,主干核心代码即为利用筛选出的所有通用代码模块生成的代码(该过程中主要包括对所有通用代码模块进行参数配置)。
该实施例中,历史定制化代码库即为存储大量历史定制化代码实例的数据库。
该实施例中,定制代码模块即为可实现定制化需求中除了通用代码模块可实现的功能实现步骤以外剩余的功能实现步骤的代码模块,定制代码模块中包含有被以模块形式封装的可实现定制化需求中除了通用代码模块可实现的功能实现步骤以外剩余的一个或多个功能实现步骤的代码框架。
该实施例中,基于定制化需求对所有定制代码模块进行编辑配置,获得分支定制代码,代码配置过程参考图3:
以扩展依赖包的形式加载至项目;
在生成代码时,自动获取源码所在目录,并配置全局变量,便于后续生成模块使用,按照开发规范构建目录关系(例如构建源码目录层级关系,包含控制器、模型、配置文件、路由等),并结合根据全局变量命名空间、类名称(根据全局变量、目录层级关系,构建命令空间、类名称等),变量名称、方法名称等(补充每个类的属性名称、方法名),确保生成的代码负责当前代码开发规范和目录要求,直接供代码使用;
通过中间配置层控制代码模板、传输参数、数据格式、查询方式、查询参数、查询方法、数据项配置、数据校验规则、数据库配置等;
动态查询数据库结构,避免每次数据库结果变更而调整代码的问题;
即以多个流程模块来配置生成的主干核心代码或分支定制代码或主干核心代码和分支定制代码合并后获得的代码,包含CURD代码模板、代码模板变量参数、数据驱动配置、数据主模块、数据关联模块、列表数据查询引擎配置模块、表单数据校验配置模块,具体配置过程包括:
CURD代码模块,包含新增、编辑、列表三个基础代码模板内容,根据实际业务情况可以调整基础模板内容;
代码模板变量参数,包含多语言配置变量参数、循环数据变量参数、列表数据查询引擎配置模块的参数、表单数据校验配置模块的参数等,根据实际业务情况可以调整参数传入传出的要求;
数据驱动配置,用于配置生成代码所连接数据库的驱动配置,如驱动类型、连接地址、账号、密码、端口以及特定配置等;
数据主模块,用于配置主要数据模块的名称、数据库连接信息、数据库表名称、数据库表前缀、数据库表别名、API地址相关信息、关联模块相关信息等;
数据关联模块,基于数据主模块的关联模块相关信息,配置关联的必要条件以及关联输出的字段信息;
列表数据查询引擎配置模块,用于配置列表数据列表的查询配置项以及查询表达式,如相同、包含、不包含、大于、大于等于、小于等于、区间等;
表单数据校验配置模块,用于校验表单数据的有效性,如是否为数据、是否为汉字、是否在有效时间范围内、是否已存在、是否为手机号、是否为邮箱地址、是否为有效网址等;
其中,代码每次执行时,动态获取数据库结构内容,根据数据结构内容查询数据库,为了提高查询性能,会将数据库结构内容进行缓存,第二次读取时会加载缓存内容,如数据库发生变更,只要主动清理缓存即可,即使部分需求需要重新生成代码,也不会影响现有的业务代码。
该实施例中,分支定制代码即为对定制代码模块中包含的代码框架进行参数配置(例如构建类名称、命令空间等)后获得的代码。
该实施例中,将主干核心代码和分支定制代码进行合并配置,即为:基于定制化需求中的所有功能实现步骤的实现顺序,将主干核心代码和分支定制代码进行排序并合并,获得合并代码;
对合并代码进行再次参数配置,例如基于全局变量和源代码所在目录中的层级关系,对相应的命令空间进行再次部分更新,或进行文件打包等一系列步骤,获得准确的满足定制化需求的代码生成结果。
该实施例中,定制化需求代码生成结果即为基于本实施例中的满足定制化需求的代码生成方法生成的可以实现对应定制化需求的完整代码文件。
以上技术的有益效果为:经过自动配置使得生成的代码文件无需人工手动配置,减少了满足定制化需求的代码过程中的人工参与程度,而且通过将通用代码模块和历史定制化代码案例的实现步骤与定制化需求的实现步骤的匹配实现满足多样化定制化需求的代码的自动生成,进一步减少了满足定制化需求的代码过程中的人工参与程度,进而提高了满足定制化需求的代码生成效率和准确率。
实施例2:
在实施例1的基础上,所述的一种满足定制化需求的代码生成方法,S1:确定出定制化需求的所有功能实现步骤,包括:
S101:对定制化需求进行初次实现步骤确定,获得功能实现流程树;
S102:基于功能实现流程树中的所有初次确定步骤和所有通用代码模块对应的通用功能实现流程,确定出定制化需求的所有功能实现步骤。
该实施例中,对定制化需求进行初次实现步骤确定,获得功能实现流程树,包括:
基于机器学习方法学习大量经由人工确定好的不同功能实现需求对应的实现逻辑中的代码实现步骤,获得实现步骤确定模型;
基于实现步骤确定模型确定出当前定制化需求的所有初次确定步骤及其执行顺序;
按照执行顺序将所有初次确定步骤进行流程化并用树结构表示,获得功能实现流程树。
该实施例中,功能实现流程树即为包含对定制化需求进行初次实现步骤确定出的所有初步确定步骤及其对应的执行顺序的流程树。
该实施例中,初步确定步骤即为经由实现步骤确定模型确定出的为实现定制化需求而需要执行的步骤,例如获取访问量数据。
该实施例中,通用功能实现流程即为将通用代码模块的所有功能实现步骤进行流程化表示后获得的结果。
以上技术的有益效果为:基于机器学习方法获得的实现步骤确定模型对定制化需求进行初次实现步骤确定,获得功能实现流程树,并基于确定出的现有的通用代码模块的通用功能实现流程对定制化需求的功能实现流程树进行步骤划分,有利于后续最大化地利用现有的通用代码模块实现定制化需求对应的功能实现流程树中的部分功能实现步骤,即可进一步减少程序员的技术参与,提高了满足定制化需求的代码生成过程的自动化程度,也减少了代码生成结果中出现错误的概率。
实施例3:
在实施例2的基础上,所述的一种满足定制化需求的代码生成方法,S102:基于功能实现流程树中的所有初次确定步骤和所有通用代码模块对应的通用功能实现流程,确定出定制化需求的所有功能实现步骤,包括:
在所有通用代码模块中筛选出功能实现流程树中包含与对应的通用功能实现流程匹配的部分功能实现流程的通用代码模块,并将筛选出的通用代码模块当作待选通用代码模块;
将所有待选通用代码模块的通用功能实现流程中包含的通用功能实现步骤总数的最大值,当作最大间隔步骤数阈值;
确定出所有初次确定步骤在功能实现流程树中的层级序数;
基于功能实现流程树中每个初次确定步骤的层级序数和最大间隔步骤数阈值,将所有待选通用代码模块与功能实现流程树进行匹配,获得多个完整匹配结果;
确定出功能实现流程树的实现步骤总数与完整匹配结果中所有通用代码模块的通用功能实现流程包含的实现步骤总数的差值;
判断出最小差值是否不超过最小差值阈值,若是,则将所有初次确定步骤当作定制化需求的所有功能实现步骤,否则,重新对定制化需求进行实现步骤确定,直至最新确定出的最小差值不超过最小差值阈值时,则将最新获得的所有划分步骤当作定制化需求的所有功能实现步骤。
该实施例中,待选通用代码模块即为功能实现流程树中包含与对应的通用功能实现流程匹配的部分功能实现流程的通用代码模块。
该实施例中,最大间隔步骤数阈值即为所有待选通用代码模块的通用功能实现流程中包含的通用功能实现步骤总数中的最大值,也是后续的匹配循环过程中每次确定假设通用功能起始步骤的依据,基于该最大间隔步骤数阈值,可以保证循环匹配最终生成的完整匹配结果中的通用代码模块可尽可能实现功能实现流程树中的大部分功能实现步骤。
该实施例中,层级序数即为功能实现流程树的树结构中所有初次确定步骤对应的叶节点或根节点在功能实现流程树中的所在层级在功能实现流程树中从上至下的排序序数。
该实施例中,完整匹配结果即为将功能实现流程树中的功能实现步骤和所有通用代码模块中的通用功能实现步骤进行连续匹配后获得的结果,其中,包含了多个与功能实现流程树中的功能实现步骤连续匹配的通用代码模块。
该实施例中,实现步骤总数即为完整匹配结果中所有通用代码模块的通用功能实现流程中包含的通用功能实现步骤的总数。
该实施例中,确定出功能实现流程树的实现步骤总数与完整匹配结果中所有通用代码模块的通用功能实现流程包含的实现步骤总数的差值,即为:
功能实现流程树的实现步骤总数-完整匹配结果中所有通用代码模块的通用功能实现流程包含的实现步骤总数=差值。
该实施例中,最小差值阈值即为预先设定的当最新获得的所有划分步骤可以被当作定制化需求的所有功能实现步骤时对应的最小差值可允许达到的最大值。
该实施例中,重新对定制化需求进行实现步骤确定,包括:
基于机器学习方法学习其他的大量经由人工确定好的不同功能实现需求对应的实现逻辑中的代码实现步骤,获得新的实现步骤确定模型;
基于新的实现步骤确定模型对定制化需求重新进行实现步骤确定。
以上技术的有益效果为:通过将通用代码模块中包含的通用功能实现流程与最新确定出的定制化需求的功能实现流程树进行匹配,实现对通用代码模块的初步筛选,并基于初步筛选出的通用代码模块确定出最大间隔步骤数阈值,保证了循环匹配最终生成的完整匹配结果中的通用代码模块可尽可能实现功能实现流程树中的大部分功能实现步骤,最后基于匹配循环接触获得的完整匹配结果确定出未被匹配的初步确定步骤的总数的最小值(即最小差值),基于该最小差值实现了对初步确定出的初步确定步骤的合格程度的评价,进而更进一步保证了最后确定出的功能实现步骤可以尽可能地通过通用代码模块实现,即可更进一步减少程序员的技术参与,也更提高了满足定制化需求的代码生成过程的自动化程度,也更减少了代码生成结果中出现错误的概率。
实施例4:
在实施例3的基础上,所述的一种满足定制化需求的代码生成方法,基于功能实现流程树中每个初次确定步骤的层级序数和最大间隔步骤数阈值,将所有待选通用代码模块与功能实现流程树进行匹配,获得多个完整匹配结果,参考图2,包括:
S1041:将功能实现流程树中层级序数不超出最大间隔步骤数阈值的初次确定步骤,当作假设通用功能起始步骤;
S1042:将所有待选通用代码模块中满足完全匹配条件的待选通用代码模块当作初选通用代码模块;
S1043:基于当前确定出的初选通用代码模块的终点步骤在功能实现流程树中的层级序数和最大间隔步骤数阈值,在功能实现流程树中确定出每个初选通用代码模块对应的新的假设通用功能起始步骤;
S1044:并将所有待选通用代码模块中除了所有初选通用代码模块以外剩余的待选通用代码模块,当作最新的待选通用代码模块;
S1045:将所有最新的待选通用代码模块中筛选出满足完全匹配条件新的待选通用代码模块,并将筛选出的新的待选通用代码模块与对应的初选通用代码模块进行汇总,获得假设匹配结果;
S1046:基于最新筛选出的待选通用代码模块不断循环执行S1043至S1045,并更新假设匹配结果,直至当前剩余的初选通用代码模块中不存在满足完全匹配条件的初选通用代码模块时,则将最新获得的假设匹配结果当作完整匹配结果。
该实施例中,假设通用功能起始步骤即为功能实现流程树中层级序数不超出最大间隔步骤数阈值的初次确定步骤。
该实施例中,完全匹配条件即为待选通用代码模块的通用功能实现流程与功能实现流程树中的部分功能实现流程完全匹配时需要满足的条件。
该实施例中,初选通用代码模块即为满足完全匹配条件的待选通用代码模块。
该实施例中,终点步骤即为初选通用代码模块的通用功能实现流程中的最后一个通用功能实现步骤。
该实施例中,基于当前确定出的初选通用代码模块的终点步骤在功能实现流程树中的层级序数和最大间隔步骤数阈值,在功能实现流程树中确定出每个初选通用代码模块对应的新的假设通用功能起始步骤,包括:
将层级序数的数值为“当前确定出的初选通用代码模块的终点步骤在功能实现流程树中的层级序数加1”与“当前确定出的初选通用代码模块的终点步骤在功能实现流程树中的层级序数和最大间隔步骤数阈值的和”之间的初步确定步骤,当作对应初选通用代码模块对应的新的假设通用功能起始步骤。
该实施例中,假设匹配结果包含当前筛选出的所有待选通用代码模块及与对应的部分功能实现流程匹配结果。
该实施例中,基于最新筛选出的待选通用代码模块不断循环执行S1043至S1045,并更新假设匹配结果:
基于最新筛选出的待选通用代码模块不断循环执行S1043至S1045,不算获得新的待选通用代码模块,并将当前获得的所有新的待选通用代码模块不断纳入假设匹配结果,即实现对假设匹配结果的不断更新。
该实施例中,完整匹配结果即为直至当前剩余的初选通用代码模块中不存在满足完全匹配条件的初选通用代码模块时最新获得的假设匹配结果。
以上技术的有益效果为:通过基于当前筛选出的待选通用代码模块,不断确定新的假设通用功能起始步骤,并基于新的假设通用功能起始步骤将待选通用代码模块与功能实现流程树中的剩余初步确定步骤进行不断匹配,使得基于最终确定出的完整匹配结果确定出的功能实现流程树中的大部分功能实现步骤可以被通用代码模块实现,即可更进一步减少程序员的技术参与,也更提高了满足定制化需求的代码生成过程的自动化程度,也更减少了代码生成结果中出现错误的概率。
实施例5:
在实施例4的基础上,所述的一种满足定制化需求的代码生成方法,完全匹配条件,包括:
完全匹配条件一:待选通用代码模块对应的通用功能实现流程的起始步骤为假设通用功能起始步骤;
完全匹配条件二:在功能实现流程树中从当前的假设通用功能起始步骤起之后的所有实现步骤中,存在与待选通用代码模块对应的通用功能实现流程完全匹配的初次确定步骤;
其中,将同时满足完全匹配条件一和完全匹配条件二的待选通用代码模块判定为满足完全匹配条件的待选通用代码模块。
该实施例中,起始步骤即为通用功能实现流程中的第一个通用功能实现步骤。
该实施例中,完全匹配即为连续多个初次确定步骤与通用功能实现流程中包含的通用功能实现步骤完全一致。
该实施例中,连续实现步骤即为与通用功能实现流程中包含的通用功能实现步骤完全一致的连续的初次确定步骤。
以上技术的有益效果为:通过上述两个完全匹配条件实现循环匹配的顺利进行,保证了循环匹配过程的匹配精度。
实施例6:
在实施例1的基础上,所述的一种满足定制化需求的代码生成方法,S2:基于所有功能实现步骤筛选出通用代码模块,并基于筛选出的所有通用代码模块生成主干核心代码,包括:
在通用代码模块库中筛选出对应的通用功能实现流程与功能实现步骤中的部分功能实现流程一致的通用代码模块;
对筛选出的所有通用代码模块进行编辑配置,获得主干核心代码。
该实施例中,通用代码模块库即为存储有大量通用代码模块的数据库。
该实施例中,对筛选出的所有通用代码模块进行编辑配置以实施例1中包含CURD代码模板、代码模板变量参数、数据驱动配置、数据主模块、数据关联模块、列表数据查询引擎配置模块、表单数据校验配置模块的具体配置过程实现。
以上技术的有益效果为:通过对匹配出的通用代码模块的编辑配置,获得主干核心代码。
实施例7:
在实施例1的基础上,所述的一种满足定制化需求的代码生成方法,S3:基于所有功能实现步骤中除通用代码模块可实现的功能实现步骤以外剩余的功能实现步骤和历史定制化代码库,确定出定制代码模块,包括:
S301:将所有功能实现步骤中除通用代码模块可实现的功能实现步骤以外剩余的功能实现步骤,当作定制功能实现步骤;
S302:将所有功能实现步骤中连续的定制功能实现步骤拼接,获得多个定制功能实现流程;
S303:确定出历史定制化代码库中每个历史定制化代码的部分历史功能实现流程树;
S304:基于所有历史功能实现流程树和所有定制功能实现流程,确定出定制代码模块。
该实施例中,定制功能实现步骤即为所有功能实现步骤中除通用代码模块可实现的功能实现步骤中以外剩余的功能实现步骤。
该实施例中,定制功能实现流程即为由连续的定制功能实现步骤拼接而成的。
该实施例中,历史定制化代码即为历史定制化代码库中的历史定制化代码实例中的完整代码。
该实施例中,历史功能实现流程树即为价格历史定制化代码的所有功能实现步骤流程化后获得的树结构。
以上技术的有益效果为:通过将所有功能实现步骤中除通用代码模块可实现的功能实现步骤中以外剩余的定制功能实现步骤拼接,获得定制功能实现流程,再结合史定制化代码库中的历史功能实现流程树,生成定制代码模块,相比现有技术中的代码生成方式,提高了其自动化程度,减少了人工参与的作用。
实施例8:
在实施例7的基础上,所述的一种满足定制化需求的代码生成方法,S304:基于所有历史功能实现流程树和所有定制功能实现流程,确定出定制代码模块,包括:
在所有历史功能实现流程树中检索出与定制功能实现流程匹配的部分历史功能实现流程,并将匹配获得的部分历史功能实现流程对应的部分历史代码初始化,获得对应定制功能实现流程的第一定制代码框架;
基于所有历史功能实现流程树中都不存在对应匹配的部分历史功能实现流程的定制功能实现步骤,生成人工生成代码提示指令;
基于人工生成代码提示指令,接收对应定制功能实现流程的第二定制代码框架;
将所有第一定制代码框架和第二定制代码框架分别进行模块封装,获得定制代码模块。
该实施例中,部分历史代码即为执行部分历史功能实现流程的完整代码。
该实施例中,将匹配获得的部分历史功能实现流程对应的部分历史代码初始化,即为:将部分历史代码中的项目源码所在目录等与当前定制化需求对应的项目有关的、需要后续进行对应配置的配置参数进行初始化。
该实施例中,第一定制代码框架将匹配获得的历史功能实现流程对应的部分历史代码初始化后获得的代码框架。
该实施例中,人工生成代码提示指令即为用于提示程序员输入可实现对应定制功能实现步骤的代码框架;
虽然该步骤涉及程序员的人工参与,但是这是在经过前述多次通用代码模块和历史功能实时流程树与功能实现流程树匹配后剩余的极少部分的功能实现步骤,程序员只需对该极少部分的功能实现步骤进行代码框架的编写,因此,相比于现有技术的代码生成方式还是会极大程度减少程序员的人工技术参与。
该实施例中,第二定制代码框架即为程序员编写后输入的可以实现匹配剩余的定制功能实现步骤所需实现的功能的代码框架。
以上技术的有益效果为:通过将历史功能实现流程树与定制功能实现流程进行匹配,基于匹配结果确定出可直接从历史功能实现流程中确定出的第一定制代码框架,并基于不可匹配的定制功能实现步骤提示程序员编写输入,减少了程序员的人工技术参与。
实施例9:
在实施例2的基础上,所述的一种满足定制化需求的代码生成方法,S4:基于定制化需求对所有定制代码模块进行编辑配置,获得分支定制代码,包括:
S401:确定出定制化需求的定制化配置参数;
S402:基于定制化配置参数对所有定制代码模块进行编辑配置,获得分支定制代码。
该实施例中,定制化配置参数为与定制化需求对应的项目相关的配置参数,例如源码所在目录等。
该实施例中,确定出定制化需求的定制化配置参数例如源码所在目录等。
该实施例中,基于定制化配置参数对所有定制代码模块进行编辑配置,获得分支定制代码,即为:
基于定制化配置参数对所有定制代码模块进行补充构建(构建源码目录层级关系,包含控制器、模型、配置文件、路由等;根据全局变量、目录层级关系,构建命令空间、类名称等;补充每个类的属性名称、方法名等),使其变成可实现对应定制功能实现步骤的完整代码。
以上技术的有益效果为:基于定制化需求的定制化配置参数对所有定制代码模块进行编辑配置,实现定制代码模块对应的代码的自动完整生成。
实施例10:
在实施例1的基础上,所述的一种满足定制化需求的代码生成方法,S5:将主干核心代码和分支定制代码进行合并配置,获得定制化需求代码生成结果,包括:
将主干核心代码和分支定制代码进行合并,获得合并代码;
基于定制化需求的定制化配置参数对合并代码进行二次编辑配置,获得定制化需求代码生成结果。
该实施例中,合并代码即为将主干核心代码和分支定制代码进行合并后获得的代码。
该实施例中,基于定制化需求的定制化配置参数对合并代码进行二次编辑配置,获得定制化需求代码生成结果,例如基于全局变量和源代码所在目录中的层级关系,对相应的命令空间进行再次部分更新,或进行文件打包等一系列步骤,获得准确的满足定制化需求的代码生成结果。
以上技术的有益效果为:通过将主干核心代码和分支定制代码进行合并后再次配置,获得最终可实现定制化需求的完整代码。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种满足定制化需求的代码生成方法,其特征在于,包括:
S1:确定出定制化需求的所有功能实现步骤;
S2:基于所有功能实现步骤筛选出通用代码模块,并基于筛选出的所有通用代码模块生成主干核心代码;
S3:基于所有功能实现步骤中除通用代码模块可实现的功能实现步骤以外剩余的功能实现步骤和历史定制化代码库,确定出定制代码模块;
S4:基于定制化需求对所有定制代码模块进行编辑配置,获得分支定制代码;
S5:将主干核心代码和分支定制代码进行合并配置,获得定制化需求代码生成结果。
2.根据权利要求1所述的满足定制化需求的代码生成方法,其特征在于,S1:确定出定制化需求的所有功能实现步骤,包括:
S101:对定制化需求进行初次实现步骤确定,获得功能实现流程树;
S102:基于功能实现流程树中的所有初次确定步骤和所有通用代码模块对应的通用功能实现流程,确定出定制化需求的所有功能实现步骤。
3.根据权利要求2所述的满足定制化需求的代码生成方法,其特征在于,S102:基于功能实现流程树中的所有初次确定步骤和所有通用代码模块对应的通用功能实现流程,确定出定制化需求的所有功能实现步骤,包括:
在所有通用代码模块中筛选出功能实现流程树中包含与对应的通用功能实现流程匹配的部分功能实现流程的通用代码模块,并将筛选出的通用代码模块当作待选通用代码模块;
将所有待选通用代码模块的通用功能实现流程中包含的通用功能实现步骤总数的最大值,当作最大间隔步骤数阈值;
确定出所有初次确定步骤在功能实现流程树中的层级序数;
基于功能实现流程树中每个初次确定步骤的层级序数和最大间隔步骤数阈值,将所有待选通用代码模块与功能实现流程树进行匹配,获得多个完整匹配结果;
确定出功能实现流程树的实现步骤总数与完整匹配结果中所有通用代码模块的通用功能实现流程包含的实现步骤总数的差值;
判断出最小差值是否不超过最小差值阈值,若是,则将所有初次确定步骤当作定制化需求的所有功能实现步骤,否则,重新对定制化需求进行实现步骤确定,直至最新确定出的最小差值不超过最小差值阈值时,则将最新获得的所有划分步骤当作定制化需求的所有功能实现步骤。
4.根据权利要求3所述的满足定制化需求的代码生成方法,其特征在于,基于功能实现流程树中每个初次确定步骤的层级序数和最大间隔步骤数阈值,将所有待选通用代码模块与功能实现流程树进行匹配,获得多个完整匹配结果,包括:
S1041:将功能实现流程树中层级序数不超出最大间隔步骤数阈值的初次确定步骤,当作假设通用功能起始步骤;
S1042:将所有待选通用代码模块中满足完全匹配条件的待选通用代码模块当作初选通用代码模块;
S1043:基于当前确定出的初选通用代码模块的终点步骤在功能实现流程树中的层级序数和最大间隔步骤数阈值,在功能实现流程树中确定出每个初选通用代码模块对应的新的假设通用功能起始步骤;
S1044:并将所有待选通用代码模块中除了所有初选通用代码模块以外剩余的待选通用代码模块,当作最新的待选通用代码模块;
S1045:将所有最新的待选通用代码模块中筛选出满足完全匹配条件新的待选通用代码模块,并将筛选出的新的待选通用代码模块与对应的初选通用代码模块进行汇总,获得假设匹配结果;
S1046:基于最新筛选出的待选通用代码模块不断循环执行S1043至S1045,并更新假设匹配结果,直至当前剩余的初选通用代码模块中不存在满足完全匹配条件的初选通用代码模块时,则将最新获得的假设匹配结果当作完整匹配结果。
5.根据权利要求4所述的满足定制化需求的代码生成方法,其特征在于,完全匹配条件,包括:
完全匹配条件一:待选通用代码模块对应的通用功能实现流程的起始步骤为假设通用功能起始步骤;
完全匹配条件二:在功能实现流程树中从当前的假设通用功能起始步骤起之后的所有实现步骤中,存在与待选通用代码模块对应的通用功能实现流程完全匹配的初次确定步骤;
其中,将同时满足完全匹配条件一和完全匹配条件二的待选通用代码模块判定为满足完全匹配条件的待选通用代码模块。
6.根据权利要求1所述的满足定制化需求的代码生成方法,其特征在于,S2:基于所有功能实现步骤筛选出通用代码模块,并基于筛选出的所有通用代码模块生成主干核心代码,包括:
在通用代码模块库中筛选出对应的通用功能实现流程与功能实现步骤中的部分功能实现流程一致的通用代码模块;
对筛选出的所有通用代码模块进行编辑配置,获得主干核心代码。
7.根据权利要求1所述的满足定制化需求的代码生成方法,其特征在于,S3:基于所有功能实现步骤中除通用代码模块可实现的功能实现步骤以外剩余的功能实现步骤和历史定制化代码库,确定出定制代码模块,包括:
S301:将所有功能实现步骤中除通用代码模块可实现的功能实现步骤以外剩余的功能实现步骤,当作定制功能实现步骤;
S302:将所有功能实现步骤中连续的定制功能实现步骤拼接,获得多个定制功能实现流程;
S303:确定出历史定制化代码库中每个历史定制化代码的部分历史功能实现流程树;
S304:基于所有历史功能实现流程树和所有定制功能实现流程,确定出定制代码模块。
8.根据权利要求7所述的满足定制化需求的代码生成方法,其特征在于,S304:基于所有历史功能实现流程树和所有定制功能实现流程,确定出定制代码模块,包括:
在所有历史功能实现流程树中检索出与定制功能实现流程匹配的部分历史功能实现流程,并将匹配获得的部分历史功能实现流程对应的部分历史代码初始化,获得对应定制功能实现流程的第一定制代码框架;
基于所有历史功能实现流程树中都不存在对应匹配的部分历史功能实现流程的定制功能实现步骤,生成人工生成代码提示指令;
基于人工生成代码提示指令,接收对应定制功能实现流程的第二定制代码框架;
将所有第一定制代码框架和第二定制代码框架分别进行模块封装,获得定制代码模块。
9.根据权利要求2所述的满足定制化需求的代码生成方法,其特征在于,S4:基于定制化需求对所有定制代码模块进行编辑配置,获得分支定制代码,包括:
S401:确定出定制化需求的定制化配置参数;
S402:基于定制化配置参数对所有定制代码模块进行编辑配置,获得分支定制代码。
10.根据权利要求1所述的满足定制化需求的代码生成方法,其特征在于,S5:将主干核心代码和分支定制代码进行合并配置,获得定制化需求代码生成结果,包括:
将主干核心代码和分支定制代码进行合并,获得合并代码;
基于定制化需求的定制化配置参数对合并代码进行二次编辑配置,获得定制化需求代码生成结果。
CN202310950748.7A 2023-07-31 2023-07-31 一种满足定制化需求的代码生成方法 Active CN116893805B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310950748.7A CN116893805B (zh) 2023-07-31 2023-07-31 一种满足定制化需求的代码生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310950748.7A CN116893805B (zh) 2023-07-31 2023-07-31 一种满足定制化需求的代码生成方法

Publications (2)

Publication Number Publication Date
CN116893805A true CN116893805A (zh) 2023-10-17
CN116893805B CN116893805B (zh) 2024-03-15

Family

ID=88310717

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310950748.7A Active CN116893805B (zh) 2023-07-31 2023-07-31 一种满足定制化需求的代码生成方法

Country Status (1)

Country Link
CN (1) CN116893805B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718261A (zh) * 2015-01-16 2016-06-29 贾志东 一种基于功件和功件树的目标产品生成方法和系统
CN110554885A (zh) * 2019-08-29 2019-12-10 五八有限公司 子应用生成方法、装置、电子设备及存储介质
CN110688098A (zh) * 2019-09-02 2020-01-14 深圳壹账通智能科技有限公司 生成系统框架代码的方法、装置、电子设备及存储介质
CN110750712A (zh) * 2019-09-10 2020-02-04 天津大学 基于数据驱动的软件安全需求推荐方法
CN113110832A (zh) * 2021-04-08 2021-07-13 北京联创新天科技有限公司 一种智能高效代码生成方法、装置及存储介质
CN113296755A (zh) * 2020-06-08 2021-08-24 阿里巴巴集团控股有限公司 代码结构树库构建方法和信息推送方法
JP7106086B1 (ja) * 2021-10-25 2022-07-26 昇 西村 マッチング装置、マッチング方法、コンピュータプログラム
CN115080039A (zh) * 2022-06-20 2022-09-20 中国工商银行股份有限公司 前端代码生成方法、装置、计算机设备、存储介质和产品
CN115421725A (zh) * 2022-08-30 2022-12-02 中国工商银行股份有限公司 基于大数据的代码生成方法及其装置、电子设备
CN115964038A (zh) * 2022-12-30 2023-04-14 浙江金网信息产业股份有限公司 一种基于双模型驱动的低代码开发方法
CN116382663A (zh) * 2022-12-26 2023-07-04 上海海速芯微电子有限公司 一种自动生成芯片软件代码工程的方法
CN116483344A (zh) * 2023-04-25 2023-07-25 上海东软载波微电子有限公司 代码生成方法及装置、终端设备、计算机可读存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105718261A (zh) * 2015-01-16 2016-06-29 贾志东 一种基于功件和功件树的目标产品生成方法和系统
CN110554885A (zh) * 2019-08-29 2019-12-10 五八有限公司 子应用生成方法、装置、电子设备及存储介质
CN110688098A (zh) * 2019-09-02 2020-01-14 深圳壹账通智能科技有限公司 生成系统框架代码的方法、装置、电子设备及存储介质
CN110750712A (zh) * 2019-09-10 2020-02-04 天津大学 基于数据驱动的软件安全需求推荐方法
CN113296755A (zh) * 2020-06-08 2021-08-24 阿里巴巴集团控股有限公司 代码结构树库构建方法和信息推送方法
CN113110832A (zh) * 2021-04-08 2021-07-13 北京联创新天科技有限公司 一种智能高效代码生成方法、装置及存储介质
JP7106086B1 (ja) * 2021-10-25 2022-07-26 昇 西村 マッチング装置、マッチング方法、コンピュータプログラム
CN115080039A (zh) * 2022-06-20 2022-09-20 中国工商银行股份有限公司 前端代码生成方法、装置、计算机设备、存储介质和产品
CN115421725A (zh) * 2022-08-30 2022-12-02 中国工商银行股份有限公司 基于大数据的代码生成方法及其装置、电子设备
CN116382663A (zh) * 2022-12-26 2023-07-04 上海海速芯微电子有限公司 一种自动生成芯片软件代码工程的方法
CN115964038A (zh) * 2022-12-30 2023-04-14 浙江金网信息产业股份有限公司 一种基于双模型驱动的低代码开发方法
CN116483344A (zh) * 2023-04-25 2023-07-25 上海东软载波微电子有限公司 代码生成方法及装置、终端设备、计算机可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
赵伟;张路;梅宏;孙家;: "一种基于功能需求层次凝聚的程序聚类方法", 软件学报, no. 08 *
钱斌: "用户需求驱动的代码自动生成技术研究与应用", 《中国优秀硕士学位论文全文数据库信息科技辑》, no. 6 *

Also Published As

Publication number Publication date
CN116893805B (zh) 2024-03-15

Similar Documents

Publication Publication Date Title
CN109087054B (zh) 协同办公数据流处理方法、装置、计算机设备及存储介质
CN112148509A (zh) 数据处理方法、装置、服务器及计算机可读存储介质
CN105447122A (zh) 一种基于多表关联可自主创建档案系统的实现方法
US20080250055A1 (en) Method and Device for Coding a Hierarchized Document
US5764978A (en) Database system having a hierarchical network database and a corresponding relational database
CN103020158A (zh) 一种报表创建方法、装置和系统
CN112989782A (zh) 一种自动化模板配置及报告生成的方法
CN116661756B (zh) 一种基于低代码dsl的对象解析方法及装置
CN1976320B (zh) 数据访问控制方法及系统
CN110795140A (zh) 一种配置文件生成方法及装置
CN115982416A (zh) 一种数据处理方法、装置、可读存储介质及电子设备
CN111144132B (zh) 一种语义识别方法及装置
CN106570095B (zh) 一种xml数据的操作方法及设备
CN116893805B (zh) 一种满足定制化需求的代码生成方法
CN104636471A (zh) 一种程序代码的查找方法及装置
CN115080011B (zh) 基于抽象语法树的代码生成方法及系统
CN114969215A (zh) 数据仓库贴源层自动批量装载数据的方法及相关设备
CN115391446A (zh) 基于bim系统的清单全自动映射方法、系统及可读存储介质
CN115757481A (zh) 数据迁移方法、装置、设备和存储介质
CN115292448A (zh) 语言转义方法、装置、设备及存储介质
CN114860300A (zh) 依赖配置方法及装置、电子设备及存储介质
CN114819631A (zh) 一种多任务的可视化方法、装置、计算机设备及存储介质
CN110704742B (zh) 一种特征提取方法及装置
CN109241515B (zh) 一种生成报告文件的方法及装置
CN116108021B (zh) 基于标准数据集进行多维度数据质控的方法、装置及设备

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
GR01 Patent grant
GR01 Patent grant