一种基于拓扑图的代码生成方法及装置制造方法及图纸

技术编号:29930700 阅读:30 留言:0更新日期:2021-09-04 18:58
本发明专利技术提供了一种基于拓扑图的代码生成方法及装置,可以应用于金融领域,方法包括:在获取的代码编写拓扑图中确定各段代码的级别并按级别为各代码进行编号;根据代码在代码编写拓扑图中的走向线对代码进行合并编号;对代码编写拓扑图进行编号逻辑校验并进行预编译。本申请支持通过组件拖拉来绘制拓扑图,结合拓扑图,将原本涉及大量分支的测试代码的分支路线整合到一起,从整体性角度阅读避免了需要阅读大量代码去整理测试分支的情况,而且,通过构建编码的拓扑图,实现了在无需严格按照语法规则去抽取公共代码的前提下,有效大幅避免去编写或者复制粘贴重复代码等非必要劳动,可以减少大量人力投入并降低代码的编写错误率。减少大量人力投入并降低代码的编写错误率。减少大量人力投入并降低代码的编写错误率。

【技术实现步骤摘要】
一种基于拓扑图的代码生成方法及装置


[0001]本申请属于代码编译
,具体地讲,涉及一种基于拓扑图的代码生成方法及装置。

技术介绍

[0002]目前,自动生成代码技术主要有AI自动生成代码和通过预先设置的代码模板自动生成代码两种方式。但是,这两种方法也存在各自的缺陷,AI技术的缺点在于需要大量的样本数据并且结果不稳定有误差,通过实现设置代码模板主要用于一些开发人员不熟悉的场景或者编写难度较大且风险较高的场景,测试代码编写难度很低,主要是需要准备各类数据等用于验证,不复杂,但是很繁琐,一行行准备数据编写量很大,且对于同一个方法的测试准备为了验证不同的场景,需要准备的数据大部分相同,其中极少数不同,而这个不同的点在同一个方法的测试代码中随测试场景变化也会产生变动,抽取公共部分会变得比较琐碎,而且提高了对开发人员的能力要求。

技术实现思路

[0003]本申请提供了一种基于拓扑图的代码生成方法及装置,以至少解决目前AI自动生成代码技术和代码模板自动生成代码技术的缺陷。
[0004]根据本申请的第一个方面,提供了一种基于拓扑图的代码生成方法,包括:
[0005]在获取的代码编写拓扑图中确定各段代码的级别并按级别为各代码进行编号;
[0006]根据代码在代码编写拓扑图中的走向线对代码进行合并编号;
[0007]对代码编写拓扑图进行编号逻辑校验并进行预编译。
[0008]在一实施例中,在获取的代码编写拓扑图中确定各段代码的级别并按级别为各代码进行编号,包括:
[0009]对代码编写拓扑图中的全部代码划分级别;
[0010]确定每一个级别的级别编号;
[0011]根据级别编号确定代码编号的首位;
[0012]为同一级别中的不同代码进行依序排号;
[0013]根据级别编号和排号确定代码编号。
[0014]在一实施例中,根据代码在代码编写拓扑图中的走向线对代码进行合并编号,包括:
[0015]判断代码的走向线的合并类型;
[0016]根据走向线的合并类型对合并后的代码进行编号。
[0017]在一实施例中,当合并类型为同级所有线合并时,根据走向线的合并类型对合并后的代码进行编号,包括:
[0018]提取代码所属级别的级别编号;
[0019]将级别编号作为合并后的代码的编号。
[0020]在一实施例中,当合并类型为同级部分线合并时,根据走向线的合并类型对合并后的代码进行编号,包括:
[0021]提取被合并的所有代码编号;
[0022]将所有代码编号进行串联作为合并后的代码的编号。
[0023]在一实施例中,基于拓扑图的代码生成方法还包括:
[0024]当代码编写拓扑图发生更新时,自动更新代码编写拓扑图对应的代码;
[0025]调用编译器对更新后的代码进行静态预编译;
[0026]获取编译后的异常信息并上报。
[0027]在一实施例中,基于拓扑图的代码生成方法还包括:
[0028]监听走向线上发生的点击事件;
[0029]当走向线上发生点击事件时,将其上下游的走向线用不同颜色的高亮显示。
[0030]根据本申请的第二个方面,还提供了一种基于拓扑图的代码生成装置,包括:
[0031]基础代码编号单元,用于在获取的代码编写拓扑图中确定各段代码的级别并按级别为各代码进行编号;
[0032]合并编号单元,用于根据代码在代码编写拓扑图中的走向线对代码进行合并编号;
[0033]编译单元,用于对代码编写拓扑图进行编号逻辑校验并进行预编译。
[0034]在一实施例中,基础代码编号单元包括:
[0035]级别划分模块,用于对代码编写拓扑图中的全部代码划分级别;
[0036]级别编号确定模块,用于确定每一个级别的级别编号;
[0037]编号首位确定模块,用于根据级别编号确定代码编号的首位;
[0038]排号模块,用于为同一级别中的不同代码进行依序排号;
[0039]代码编号模块,用于根据级别编号和排号确定代码编号。
[0040]在一实施例中,合并编号单元包括:
[0041]类型判断模块,用于判断代码的走向线的合并类型;
[0042]编号模块,用于根据走向线的合并类型对合并后的代码进行编号。
[0043]在一实施例中,当合并类型为同级所有线合并时,编号模块包括:
[0044]第一提取模块,用于提取代码所属级别的级别编号;
[0045]第一编号模块,用于将级别编号作为合并后的代码的编号。
[0046]在一实施例中,当合并类型为同级部分线合并时,编号模块包括:
[0047]第二提取模块,用于提取被合并的所有代码编号;
[0048]第二编号模块,用于将所有代码编号进行串联作为合并后的代码的编号。
[0049]根据本申请的第三个方面,还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现基于拓扑图的代码生成方法的步骤。
[0050]根据本申请的第四个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现基于拓扑图的代码生成方法的步骤。
[0051]由上述技术方案可知,本申请提供了一种基于拓扑图的代码生成方法及装置,方法包括:在获取的代码编写拓扑图中确定各段代码的级别并按级别为各代码进行编号;根
据代码在代码编写拓扑图中的走向线对代码进行合并编号;对代码编写拓扑图进行编号逻辑校验并进行预编译。本申请支持通过组件拖拉来绘制拓扑图,结合拓扑图,将原本涉及大量分支的测试代码的分支路线整合到一起,从整体性角度阅读避免了需要阅读大量代码去整理测试分支的情况,直接可以实现在使用本方法编码过程中一边编码一边对代码进行整理的技术效果,而且,通过构建编码的拓扑图,实现了在无需严格按照语法规则去抽取公共代码的前提下,有效大幅避免去编写或者复制粘贴重复代码等非必要劳动,由于测试代码中为了保证代码覆盖率,重复代码占比极高,可以减少大量人力投入并降低代码的编写错误率。
附图说明
[0052]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0053]图1为本申请提供的一种基于拓扑图的代码生成方法流程图。
[0054]图2为本申请实施例中一种代码拓扑图实例。
[0055]图3为本申请实施例中确定各段代码的级别并按级别为各代码进行编号的方法流程图。
[0056]图4为本申请实施例中对代码进行合并的流程图。
[0057]图5为本申请实施例中对代码进行合并编号的第一种实施方式。...

【技术保护点】

【技术特征摘要】
1.一种基于拓扑图的代码生成方法,其特征在于,包括:在获取的代码编写拓扑图中确定各段代码的级别并按级别为各代码进行编号;根据代码在所述代码编写拓扑图中的走向线对代码进行合并编号;对所述代码编写拓扑图进行编号逻辑校验并进行预编译。2.根据权利要求1所述的基于拓扑图的代码生成方法,其特征在于,所述在获取的代码编写拓扑图中确定各段代码的级别并按级别为各代码进行编号,包括:对所述代码编写拓扑图中的全部代码划分级别;确定每一个级别的级别编号;根据所述级别编号确定代码编号的首位;为同一级别中的不同代码进行依序排号;根据所述级别编号和所述排号确定代码编号。3.根据权利要求2所述的基于拓扑图的代码生成方法,其特征在于,所述根据代码在所述代码编写拓扑图中的走向线对代码进行合并编号,包括:判断代码的走向线的合并类型;根据走向线的所述合并类型对合并后的代码进行编号。4.根据权利要求3所述的基于拓扑图的代码生成方法,其特征在于,当所述合并类型为同级所有线合并时,所述根据走向线的所述合并类型对合并后的代码进行编号,包括:提取代码所属级别的级别编号;将所述级别编号作为合并后的代码的编号。5.根据权利要求3所述的基于拓扑图的代码生成方法,其特征在于,当所述合并类型为同级部分线合并时,所述根据走向线的所述合并类型对合并后的代码进行编号,包括:提取被合并的所有代码编号;将所有代码编号进行串联作为合并后的代码的编号。6.根据权利要求1所述的基于拓扑图的代码生成方法,其特征在于,还包括:当所述代码编写拓扑图发生更新时,自动更新所述代码编写拓扑图对应的代码;调用编译器对更新后的代码进行静态预编译;获取编译后的异常信息并上报。7.根据权利要求6所述的基于拓扑图的代码生成方法,其特征在于,还包括:监听走向线上发生的点击事件;当走向线上发生点击事件时,将其上下游的走向线用不同颜色的高亮显示。8.一种基于拓扑图的代码生成装置,其特...

【专利技术属性】
技术研发人员:林慕云潘杰锋余振殷富成
申请(专利权)人:中国工商银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1