一种代码检测方法、装置、设备及存储介质制造方法及图纸

技术编号:25308353 阅读:22 留言:0更新日期:2020-08-18 22:27
本公开实施例公开了一种代码检测方法、装置、设备及存储介质,所述方法包括:获取原始代码,根据检测条件从所述原始代码中提取出待检测代码;对所述待检测代码进行检测,判断所述待检测代码中是否存在待修复硬编码;若所述待检测代码中存在待修复硬编码,则获取所述待修复硬编码的位置信息,以根据所述位置信息对所述待修复硬编码进行修复。本发明专利技术实施例提供的代码检测方法通过设置检测条件选取需要检测的代码进行检测,避免了检测无需检测的代码造成的检测结果不准确,提高了检测速度和检测效率。

【技术实现步骤摘要】
一种代码检测方法、装置、设备及存储介质
本公开实施例涉及计算机
,尤其涉及一种代码检测方法、装置、设备及存储介质。
技术介绍
随着移动互联网技术的快速发展,应用程序国际化的需求也随之增多。应用程序国际化,是指应用程序在不修改内部代码的情况下,能根据不同国家或地区的语言显示相应的界面,不出现严重影响使用的错误。应用程序国际化时,需要将代码中使用硬编码的位置找出来,并替换成对应的国际化语言的键值,以使在用户使用时,系统能够根据用户设置的系统语言和键值,找到对应的国际化文案展示在页面上。为了保证应用程序国际化后的准确性,在人工将代码中的硬编码替换后,需要对替换后的代码进行检测,判断是否存在未替换的硬编码。目前,代码的检测方法有两种:一是模拟用户使用系统的情况,对每个页面进行切换语言并查看是否存在未国际化文案的情况。二是在一些集成开发工具中,使用全文搜索的功能,对所有代码进行检测。上述两种方式中,模拟使用的检测方法效率较低,且容易遗漏,使用全文搜索检测的方法由于代码中包含有其他信息,导致全文搜索判断结果不准确。
技术实现思路
本公开提供一种代码检测方法、装置、设备及存储介质,以实现提高代码的检测速度和检测效率。第一方面,本公开实施例提供了一种代码检测方法,包括:获取原始代码,根据检测条件从所述原始代码中提取出待检测代码;对所述待检测代码进行检测,判断所述待检测代码中是否存在待修复硬编码;若所述待检测代码中存在待修复硬编码,则获取所述待修复硬编码的位置信息,以根据所述位置信息对所述待修复硬编码进行修复。第二方面,本公开实施例还提供了一种代码检测装置,包括:待检测代码获取模块,用于获取原始代码,根据检测条件从所述原始代码中提取出待检测代码;代码检测模块,用于对所述待检测代码进行检测,判断所述待检测代码中是否存在待修复硬编码;位置信息获取模块,用于若所述待检测代码中存在待修复硬编码,则获取所述待修复硬编码的位置信息,以根据所述位置信息对所述待修复硬编码进行修复。第三方面,本公开实施例还提供了一种计算机设备,所述计算机设备包括:一个或多个处理装置;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现如本专利技术任意实施例所提供的代码检测方法。第四方面,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本专利技术任意实施例所提供的代码检测方法。本公开实施例通过获取原始代码,根据检测条件从所述原始代码中提取出待检测代码;对所述待检测代码进行检测,判断所述待检测代码中是否存在待修复硬编码;若所述待检测代码中存在待修复硬编码,则获取所述待修复硬编码的位置信息,以根据所述位置信息对所述待修复硬编码进行修复,通过设置检测条件选取需要检测的代码进行检测,避免了检测无需检测的代码造成的检测结果不准确,提高了检测速度和检测效率。附图说明结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。图1为本公开实施例一提供的一种代码检测方法的流程图;图2为本公开实施例二提供的一种代码检测方法的流程图;图3为本公开实施例三提供的一种代码检测装置的结构示意图;图4为本公开实施例四提供的一种计算机设备的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。下述各实施例中,每个实施例中同时提供了可选特征和示例,实施例中记载的各个特征可进行组合,形成多个可选方案,不应将每个编号的实施例仅视为一个技术方案。实施例一图1为本公开实施例一提供的一种代码检测方法的流程图。本实施例可适用于将应用程序国际化后对程序代码进行检测,以判断国际化后的代码中是否存在未修复的硬编码时的情形,该方法可以由代码检测装置来执行,该代码检测装置可以采用软件和/或硬件的方式实现,例如,该代码检测装置可以配置于终端设备中。如图1所示,所述方法包括:S110、获取原始代码,根据检测条件从所述原始代码中提取出待检测代码。在本实施例中,原始代码可以为应用程序国际化后的程序代码。一般的,应用程序代码中除用于执行的代码外,可能还包括对代码的注释。本实施例中,通过跳过原始代码中的注释等信息,过滤掉无需检测的内容,提取出需要检测的待检测代码,仅对需要检测的待检测代码进行检测,加快了检测速度,提高了检测准确度。可选的,可以预先设置检测条件,用于对原始代码进行过滤,得到原始代码中的待检测代码。其中,检测条件可以根据注释添加的方式进行设置。示例性的,检测条件可以为跳过原始代码中的注释内容,其中原始代码中的注释内容可以根据注释开始标识和/或注释结束标识确定,假设注释开始标识为“/*”,注释结束标识为“*/”,则将原始代码中“/*”和“*/”之间的内容跳过,将原始代码中除跳过内容之外的代码作为待检测代码。示例性的,假设原始代码为“d_w(j)=xite*e(k)*h(j);/*计算权值的增量,根据设置的参数,输出误差与激活函数*/”,则跳过“/*”和“*/”之间的内容“计算权值的增量,根据设置的参数,输出误差与激活函数”,将原始代码中除跳过内容之外的代码“d_w(j)=xite*e(k)*h(j)”作为待检测代码。在本专利技术的一种实施方式中,所述根据检测条件从本文档来自技高网...

【技术保护点】
1.一种代码检测方法,其特征在于,包括:/n获取原始代码,根据检测条件从所述原始代码中提取出待检测代码;/n对所述待检测代码进行检测,判断所述待检测代码中是否存在待修复硬编码;/n若所述待检测代码中存在待修复硬编码,则获取所述待修复硬编码的位置信息,以根据所述位置信息对所述待修复硬编码进行修复。/n

【技术特征摘要】
1.一种代码检测方法,其特征在于,包括:
获取原始代码,根据检测条件从所述原始代码中提取出待检测代码;
对所述待检测代码进行检测,判断所述待检测代码中是否存在待修复硬编码;
若所述待检测代码中存在待修复硬编码,则获取所述待修复硬编码的位置信息,以根据所述位置信息对所述待修复硬编码进行修复。


2.根据权利要求1所述的方法,其特征在于,所述根据检测条件从所述原始代码中提取出待检测代码,包括:
将所述原始代码划分为至少一个分割代码;
针对每个所述分割代码,判断所述分割代码中是否包含预设的跳过标识;
若所述分割代码中包含预设的跳过标识,则根据所述跳过标识确定所述分割代码中包含的待检测代码;
若所述分割代码中不包含预设的跳过标识,则将所述分割代码作为所述待检测代码。


3.根据权利要求1所述的方法,其特征在于,所述获取原始代码,包括:
根据待检测项目的目录信息,遍历所述待检测项目中的目录文件;
针对每个所述目录文件,判断所述目录文件的文件类型是否为候选检测类型;
若所述目录文件的文件类型为所述候选检测类型,则获取所述目录文件中的代码作为所述原始代码。


4.根据权利要求3所述的方法,其特征在于,所述根据待检测项目的目录信息,遍历所述待检测项目中的目录文件,包括:
根据所述目录信息,使用深度优先搜索算法遍历所述待检测项目中的目录文件。


5.根据权利要求1所述的方法,其特征在于,所述对所述待检测代码进行检测,判断所述待检测代码中是否存在待修复硬编码,包括:
根据预...

【专利技术属性】
技术研发人员:宋易现
申请(专利权)人:北京字节跳动网络技术有限公司
类型:发明
国别省市:北京;11

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

1