CN106201861A - 一种代码质量的检测方法及装置 - Google Patents

一种代码质量的检测方法及装置 Download PDF

Info

Publication number
CN106201861A
CN106201861A CN201510229655.0A CN201510229655A CN106201861A CN 106201861 A CN106201861 A CN 106201861A CN 201510229655 A CN201510229655 A CN 201510229655A CN 106201861 A CN106201861 A CN 106201861A
Authority
CN
China
Prior art keywords
code
information
detection
version
project
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
Application number
CN201510229655.0A
Other languages
English (en)
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510229655.0A priority Critical patent/CN106201861A/zh
Publication of CN106201861A publication Critical patent/CN106201861A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请公开了一种代码质量的检测方法,方法包括:获取终端发送的代码和代码信息;根据表示与所述代码匹配的代码规范的信息,获取与所述代码匹配的代码规范;根据获取的代码规范检测代码的质量。用于解决按照现有的代码质量检测方式,可能导致检测通过的代码的质量不满足代码规范要求的问题。本申请还公开了一种代码质量的检测装置,以及一种代码的发送方法及装置。

Description

一种代码质量的检测方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种代码质量的检测方法及装置。
背景技术
团队协同开发时通常对于每个项目都有至少一个代码规范,代码规范中包含对于代码编写的风格和规则要求,可以统称为对于代码编写的质量要求。同一个项目组的所有开发人员依照该项目的代码规范,编写出的代码质量需要符合该代码规范的质量要求。比如,某一项目的代码规范对换行的要求以及程序效率的要求(超长表达式要换行、尽量减少循环嵌套层次)等等。但是由于每个人都有固定的编写习惯,并且可能出现一个开发人员身兼数职的情况,所以在不经意间就会出现编写出的代码质量不符合所属项目代码规范的要求。如果一个开发人员编写的代码质量不符合所属项目的代码规范要求时,在与该项目其它开发人员编写出的符合该项目代码规范要求的代码进行合并时,就可能导致程序不能成功运行。
现有技术,会为开发人员提供代码质量的检测工具,以便开发人员在编写代码时,检测自己编写的代码质量是否符合所属项目的代码规范要求。但可能出现同一项目在不同开发阶段的代码规范不同,从而导致检测工具的变化,如果出现开发人员的没有及时更新自己的检测工具(比如,项目组长更新并共享了检测工具,但项目组员没有及时更新),还是按照历史版本的代码规范进行编写,在与该项目的其它开发人员按照最新版本的代码规范编写出的代码进行合并时,就会导致程序不能成功运行。此外,如果一个开发人员如果身兼数职,会有不同项目的多个检测工具,如果因为疏忽,在不同项目之间,用错了检测工具,也会导致最终的程序不能成功运行。
发明内容
本申请实施例提供一种代码质量的检测方法,用于解决按照现有的代码质量检测方式,可能导致检测通过的代码的质量不满足代码规范要求的问题。
本申请实施例提供一种代码质量的检测装置,用于解决按照现有的代码质量检测方式,可能导致检测通过的代码的质量不满足代码规范要求的问题。
本申请实施例提供一种代码的发送方法。
本申请实施例提供一种代码的发送装置。
本申请实施例采用下述技术方案:
一种代码质量的检测方法,包括:获取终端发送的代码和代码信息;其中,所述代码信息包含表示与所述代码匹配的代码规范的信息;根据表示与所述代码匹配的代码规范的信息,获取与所述代码匹配的代码规范;根据获取的代码规范检测代码的质量。
一种代码质量的检测装置,包括:获取代码单元,用于获取终端发送的代码和代码信息;其中,所述代码信息包含表示与所述代码匹配的代码规范的信息;获取规范单元,用于根据表示与所述代码匹配的代码规范的信息,获取与所述代码匹配的代码规范;检测代码单元,用于根据获取的代码规范检测代码的质量。
一种代码的发送方法,包括:获取代码和代码信息;其中,所述代码信息包含表示与所述代码匹配的代码规范的信息;将代码和代码信息发送到检测设备。
一种代码的发送装置,包括:获取单元,用于获取代码和代码信息;其中,所述代码信息包含表示与所述代码匹配的代码规范的信息;发送单元,用于将代码和代码信息发送到检测设备。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
由于可以根据获取到的代码和表示与代码匹配的代码规范的信息,获取到与代码匹配的代码规范,并实现代码质量的自动检测,从而避免了开发人员自己利用检测工具检测代码质量时,由于没有及时更新检测工具,导致检测出的代码质量不符合最新的代码规范要求的问题。此外,还能避免开发人员身兼数职时,由于疏忽造成检测工具混用带来的问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例1提供的一种代码质量的检测方法的具体实现流程示意图;
图2为本申请实施例2提供的一种代码质量的检测装置的具体结构示意图;
图3为本申请实施例3提供的一种代码的发送方法的具体实现流程示意图;
图4为本申请实施例4提供的一种代码的发送装置的具体结构示意图;
图5为本申请实施例5提供的一种应用于分布式版本控制***中代码质量的检测方法流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
实施例1提供了一种代码质量的检测方法,用于解决按照现有的代码质量检测方式,可能导致检测通过的代码的质量不满足代码规范要求的问题。假设执行主体为检测设备,该方法的具体流程示意图如图1所示,包括下述步骤:
步骤11,获取终端发送的代码和代码信息。
针对步骤11而言,代码信息包含表示与代码匹配的代码规范的信息。每个项目,都有至少一个指定的代码规范,比如,项目A下的所有代码,都需要按照代码规范A的要求来编写。与代码匹配的代码规范的信息可以是代码所属项目的标识,通过该信息,可以找到与代码匹配的代码规范,最终完成对代码质量的检测。比如,某段代码的代码信息中,包含的表示与代码匹配的代码规范的信息是project-A,通过该信息,可以找到用于检测该段代码质量的代码规范A,最终可以利用代码规范A检测这段代码的质量。
检测设备获取终端发送的代码和代码信息,可以是获取终端直接发送的代码和代码信息,也可以是获取终端发送到指定位置的代码和代码信息。终端可以是开发人员所用的个人计算机(personal computer,PC),指定位置可以是用于存储和管理代码的服务器。比如,可以获取开发人员通过PC发送过来的代码和代码信息,也可以获取开发人员发送到指定服务器中的代码和代码信息。
在一种实施方式中,表示与代码匹配的代码规范的信息,也可以包括指定的检测要求。比如,该要求可以是“当代码规范发生变更以后,需要对所有代码进行检测”;以及“如果代码规范未发生变更,则只需要对变化的代码进行检测”。
在一种实施方式中,可以将代码信息存储为一个配置文件,以便检测工具获取配置文件中与代码匹配的代码规范的信息,以及对代码的检测要求。比如,当代码规范发生变更以后,可以在配置文件中添加一个全部检测的指令,以便检测工具对所有的代码文件重新检测;或在配置文件中添加代码所属项目的标识,以便检测工具能够根据该标识,找到与代码匹配的代码规范。
在分布式版本控制***(如git)中,开发人员可以从用于存储和管理代码的公共服务器(简称公共服务器)上克隆公共服务器代码仓库(用于存放指定项目代码的位置,git repository)到本地,在本地修改代码,并提交修改后的代码到本地代码仓库(local repository),然后将local repository同步到gitrepository中。
local repository会为每次提交的代码文件集合添加数字签名,该数字签名可以是通过安全哈希算法计算出的哈希值(简称SHA1),如果代码文件发生改变,计算出的SHA1值一定不同。当开发人员将修改过的代码文件集合提交到local repository时,local repository会为该集合计算一个SHA1值,即计算该集合的SHA1值。本地修改的代码文件集合可以称为在后版本的代码文件集合,修改前的代码文件集合可以称为在先版本的代码文件集合。
可以为git repository添加一个监控装置(hook),hook可以在git repository发生变化时,即开发人员将local repository同步到git repository时,获取在先版本的代码文件集合的SHA1值(简称before SHA1)和在后版本的代码文件集合的SHA1值(简称after SHA1)。可以在hook中设置一个检测设备的地址,比如一个统一资源定位符(Uniform Resource Locator,URL),以便hook将beforeSHA1和after SHA1,发送到检测设备中。此外,hook还可以在git repository发生变化时,获取到发生变化的git repository的名称和地址(repository name和repository url),并发送到检测设备中,该地址和名称也可以是表示与代码匹配的代码规范的信息。比如,通过repository name,可以获取到与该repositoryname中的代码匹配的代码规范。
由于代码文件发生改变,所以分别为在先版本的代码文件集合和在后版本的代码文件集合计算出的SHA1值一定不同。检测设备可以对before SHA1和after SHA1进行解析、比对,可以确定出在后版本的代码文件集合中发生变化的文件,然后再去获取发生变化的代码文件,所以,在步骤11之前,方法还可以包括:若判断出对项目的在先版本的代码文件集合进行过检测,则从终端发送的项目的在后版本的代码文件集合中,确定相对于在先版本的代码文件集合发生变化的代码文件。
具体地,因为每一次检测都会有检测记录,该记录中会保留已检测过的代码文件集合的SHA1值,所以可以先通过before SHA1,判断出是否对在先版本的代码文件集合进行过检测,如果判断出对在先版本的代码文件集合进行过检测,那么仅需要对发生变化的文件进行检测即可。可以通过before SHA1和after SHA1,确定出发生变化的代码文件。比如,在先版本的代码文件集合(该集合的SHA1值为before SHA1)中包含三个代码文件(代码文件1、代码文件2、代码文件3),开发人员对代码文件1进行了修改,生成了代码文件1’,并添加了新的代码文件4,所以在后版本的代码文件集合(该集合的SHA1值为after SHA1)中包含四个代码文件(代码文件1’、代码文件2、代码文件3、代码文件4),则可以通过解析、比对before SHA1和after SHA1,确定出发生变化的两个代码文件(代码文件1’和代码文件4)。
在确定出发生变化的代码文件后,就需要对发生变化的代码文件进行获取,所以步骤11,获取终端发送的代码,可以包括:获取终端发送的发生变化的代码文件中的代码。
比如,以上文提到的“确定出发生变化的两个代码文件(代码文件1’和代码文件4)”为例,获取终端发送的发生变化的两个代码文件(代码文件1’和代码文件4)中的代码。
需要说明的是,由于代码文件的变化可能是整段代码的添加或删除,也有可能一句代码中添加或删除一些字符或符号(比如,添加冒号“:”等)。如果确定出发生变化的代码为整段代码,那么只对该段代码进行检测是有意义的,但如果仅仅确定出发生变化的代码为添加冒号“:”,那么对该冒号“:”进行检测是没有意义的,因为该冒号只有和代码中前后搭配时才能发挥它的作用。所以,一般情况下,是对发生变化的代码文件中的所有代码做检测。
在实际应用中,有可能出现以前没有对在先版本的代码文件集合进行过检测,就需要对在后版本的代码文件集合中的所有文件进行检测。所以,依然以上文提到的“确定出发生变化的两个代码文件(代码文件1’和代码文件4)”为例,方法还可以包括:若判断出对项目的在先版本的代码文件集合未进行过检测,比如,判断出在先版本的代码文件集合中包含的三个代码文件(代码文件1、代码文件2、代码文件3)都没有被检测过,则步骤11中,获取终端发送的代码的具体实现方式可以包括:获取终端发送的项目的在后版本的代码文件集合中的代码。也就是获取四个代码文件(代码文件1’、代码文件2、代码文件3、代码文件4)中的代码。
步骤12,根据表示与代码匹配的代码规范的信息,获取与代码匹配的代码规范。
在步骤11中已经介绍了表示与代码匹配的代码规范的信息,其意义就是能通过该信息,找到与代码匹配的代码规范。
比如,检测设备根据项目标识,获取到与该项目匹配的代码规范,对该项目下的代码进行检测。
但在实际情况中,代码中不是所有的部分都是需要检测的,所以,针对步骤12而言,代码规范,可以包括:代码检测规范。代码检测规范是指代码中需要检测的部分,这部分是会关系到代码可否执行,所以需要检测。
然而,代码中的有一些部分是可以不检测的,对也不会影响代码可否执行,所以,代码规范,还可以包括:代码忽略规则。该规则可以忽略一些不需要检测的代码,或者对该部分检测也没有意义的代码。
由于把代码分为需要检测的部分和不需要检测的部分,就可以灵活控制对代码各个部分的检测需求,从而优化的计算资源,减少计算资源浪费。
步骤13,根据获取的代码规范检测代码的质量。
针对步骤13而言,根据执行步骤12获取到的代码规范,检测执行步骤11获取到的代码的质量,可以根据代码规范中的代码检测规范和代码忽略规则,对代码进行检测。
具体地,可以先根据代码忽略规则,确定出需要被检测的代码,再根据代码检测规范,来检测需要被检测的代码。
在一种实施方式中,为了方便开发人员查看检测结果,方法还可以包括:
将检测结果保存在指定位置。
具体地,可以布设一个存储设备,用于存储所有代码的检测结果。可以将检测结果按照指定规则分类,比如,按照所属项目(项目A、项目B)进行分类,或按照开发阶段(测试版、正式版)进行分类,等等。在开发人员需要查看时,为他们提供便利。
对于检测结果,只有将其传递出去,才有意义,所以,在一种实施方式中,方法还可以包括:
将检测结果发送到指定位置。
具体地,可以将检测结果发送到存储设备中,也可以发送给指定的人员。
在一种实施方式中,为了方便开发人员尽快得知自己编写的代码的检测结果,代码信息,还可以包括:开发人员标识,则
将检测结果发送到指定位置,可以包括:
根据开发人员标识,将检测结果发送给开发人员。
具体地,开发人员标识可以表示代码是哪个开发人员编写的,可以包括:电子邮箱地址、办公电脑IP地址等。可以按照电子邮箱地址、办公电脑IP地址等将检测结果发送给指定的开发人员,方便得知代码的质量是否符合代码规范的要求。
在一种实施方式中,为了使得检测结果便于查看,方法还可以包括:
将检测结果转换为可视化信息。
具体地,检测设备的检测结果可能是机器语言,开发人员如果看不懂,那么检测结果毫无意义,所以可以将检测结果转换为可视化信息,使开发人员能够容易地看懂检测设备对自己编写的代码的检测结果。此外,还可以体现更加人性化的办公环境。
采用实施例1提供的该方法,由于可以根据获取到的代码和表示与代码匹配的代码规范的信息,获取到与代码匹配的代码规范,并实现代码质量的自动检测,从而避免了开发人员自己利用检测工具检测代码质量时,由于没有及时更新检测工具,导致检测出的代码质量不符合最新的代码规范要求的问题。此外,还能避免开发人员身兼数职时,由于疏忽造成检测工具混用带来的问题。
需要说明的是,实施例1所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法的各步骤也可以由不同设备作为执行主体。比如,步骤11和步骤12的执行主体可以为设备1,步骤13的执行主体可以为设备2;又比如,步骤11的执行主体可以为设备1,步骤12和步骤13的执行主体可以为设备2;等等。
实施例2
基于相同的发明构思,实施例2提供了一种代码质量的检测装置,用于解决按照现有的代码质量检测方式,可能导致检测通过的代码的质量不满足代码规范要求的问题。如图2所示,该装置包括:
获取代码单元21,可以用于获取终端发送的代码和代码信息;其中,代码信息包含表示与代码匹配的代码规范的信息;
获取规范单元22,可以用于根据表示与代码匹配的代码规范的信息,获取与代码匹配的代码规范;
检测代码单元23,可以用于根据获取的代码规范检测代码的质量。
在一种实施方式中,装置还可以包括:
存储结果单元,可以用于将检测结果保存在指定位置。
在一种实施方式中,装置还可以包括:
发送结果单元,可以用于将检测结果发送到指定位置。
在一种实施方式中,代码信息,还可以包括:开发人员标识,则
发送结果单元,可以用于:
根据开发人员标识,将检测结果发送给开发人员。
在一种实施方式中,装置还可以包括:
转换结果单元,可以用于将检测结果转换为可视化信息。
在一种实施方式中,获取代码单元21,还可以用于:在获取终端发送的代码和代码信息之前,
若判断出对项目的在先版本的代码文件集合进行过检测,则从终端发送的所述项目的在后版本的代码文件集合中,确定相对于在先版本的代码文件集合发生变化的代码文件;则
获取代码单元21,可以用于:
获取终端发送的所述发生变化的代码文件中的代码。
在一种实施方式中,获取代码单元21,还可以用于:
若判断出对项目的在先版本的代码文件集合未进行过检测,则
获取代码单元21,可以用于:
获取终端发送的所述项目的在后版本的代码文件集合中的代码。
在一种实施方式中,代码规范,可以包括:
代码检测规范。
在一种实施方式中,代码规范,还可以包括:
代码忽略规则。
采用实施例2提供的该装置,由于可以根据获取到的代码和表示与代码匹配的代码规范的信息,获取到与代码匹配的代码规范,并实现代码质量的自动检测,从而避免了开发人员自己利用检测工具检测代码质量时,由于没有及时更新检测工具,导致检测出的代码质量不符合最新的代码规范要求的问题。此外,还能避免开发人员身兼数职时,由于疏忽造成检测工具混用带来的问题。
实施例3
基于相同的发明构思,实施例3提供了一种代码的发送方法。该方法的示意图如图3所示,包括下述步骤:
步骤31,获取代码和代码信息;其中,所述代码信息包含表示与所述代码匹配的代码规范的信息;
具体地,可以获取保存在终端中的代码和代码信息,也可以是获取终端发送到用于存储和管理代码的服务器中的代码和代码信息。比如,获取开发人员发送的在PC上完成编写的代码;又如,在分布式版本控制***(如git)中,开发人员会将本地代码仓库同步到公共服务器代码仓库中,所以就可以获取公共服务器代码仓库中的代码和代码信息。
步骤32,将代码和代码信息发送到检测设备。
具体地,可以将直接从开发人员PC上获取的代码和代码文件发送到检测设备;也可以将从公共服务器代码仓库中获取的代码和代码文件发送到检测设备。
采用实施例3提供的该方法,提供了一种将代码和代码信息发送到检测设备的方法,以便检测设备对代码进行检测。
实施例4
基于相同的发明构思,实施例4提供了一种代码的发送装置。如图4所示,该装置包括:
获取单元41,可以用于获取代码和代码信息;其中,所述代码信息包含表示与所述代码匹配的代码规范的信息。
发送单元42,可以用于将代码和代码信息发送到检测设备。
采用实施例4提供的该装置,提供了一种将代码和代码信息发送到检测设备的装置,以便检测设备对代码进行检测。
实施例5
基于相同的发明构思,实施例5提供了一种应用于分布式版本控制***中代码质量的检测方法。假设利用分布式版本控制***(git)来管理代码,某开发人员将修改后的代码提交到本地代码库中,再同步到公共服务器代码库中,公共服务器代码库中存在监控装置,当监控到公共服务器代码库发生变化时,向检测设备发送检测请求(也即代码和代码信息)。该方法的示意图如图5所示,包括下述步骤:
步骤51,接收到公共服务器代码库发送的检测请求(代码和代码信息),该请求中包括:在先版本的代码文件集合(包含代码文件1、代码文件2)、该集合的SHA1值(简称before SHA1),在后版本的代码文件集合(代码文件1’、代码文件2、代码文件3)、该集合的SHA1值(简称after SHA1),所属项目的标识(project-A),以及开发人员标识。
其中,开发人员标识中包含开发人员的电子邮箱地址。
步骤52,根据before SHA1和after SHA1,确定出发生变化的代码文件为:代码文件1’和代码文件3,并获取发生变化的代码文件。
步骤53,根据所属项目的标识project-A,获取到与project-A匹配的代码规范A,其中包括:代码检测规范和代码忽略规则。
步骤54,根据获取的代码忽略规则,过滤掉代码文件在无需检测的代码,再根据代码检测规范,检测代码文件1’和代码文件3中需要检测的代码的质量。
步骤55,将检测结果保存到公共服务器中。
步骤56,根据开发人员的电子邮箱地址,将检测结果发送给该开发人员。
采用实施例5提供的该方法,由于先获取检测请求,再根据请求中的内容确定出变化的代码文件,以及获取到与代码匹配的代码规范,然后检测代码的质量,从而避免了开发人员自己利用检测工具检测代码质量时,由于没有及时更新检测工具,导致检测出的代码质量不符合最新的代码规范要求的问题。此外,还能避免开发人员身兼数职时,由于疏忽造成检测工具混用带来的问题。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、***或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (20)

1.一种代码质量的检测方法,其特征在于,包括:
获取终端发送的代码和代码信息;其中,所述代码信息包含表示与所述代码匹配的代码规范的信息;
根据表示与所述代码匹配的代码规范的信息,获取与所述代码匹配的代码规范;
根据获取的代码规范检测代码的质量。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
将检测结果保存在指定位置。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
将检测结果发送到指定位置。
4.如权利要求3所述的方法,其特征在于,代码信息,还包括:开发人员标识,则
将检测结果发送到指定位置,包括:
根据开发人员标识,将检测结果发送给开发人员。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
将检测结果转换为可视化信息。
6.如权利要求1所述的方法,其特征在于,获取终端发送的代码和代码信息之前,所述方法还包括:
若判断出对项目的在先版本的代码文件集合进行过检测,则从终端发送的所述项目的在后版本的代码文件集合中,确定相对于在先版本的代码文件集合发生变化的代码文件;则
获取终端发送的代码,包括:
获取终端发送的所述发生变化的代码文件中的代码。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
若判断出对项目的在先版本的代码文件集合未进行过检测,则
获取终端发送的代码,包括:
获取终端发送的所述项目的在后版本的代码文件集合中的代码。
8.如权利要求1所述的方法,其特征在于,代码规范,包括:
代码检测规范。
9.如权利要求8所述的方法,其特征在于,代码规范,还包括:
代码忽略规则。
10.一种代码质量的检测装置,其特征在于,包括:
获取代码单元,用于获取终端发送的代码和代码信息;其中,所述代码信息包含表示与所述代码匹配的代码规范的信息;
获取规范单元,用于根据表示与所述代码匹配的代码规范的信息,获取与所述代码匹配的代码规范;
检测代码单元,用于根据获取的代码规范检测代码的质量。
11.如权利要求10所述的装置,其特征在于,所述装置还包括:
存储结果单元,用于将检测结果保存在指定位置。
12.如权利要求10所述的装置,其特征在于,所述装置还包括:
发送结果单元,用于将检测结果发送到指定位置。
13.如权利要求12所述的装置,其特征在于,代码信息,还包括:开发人员标识,则
发送结果单元,用于:
根据开发人员标识,将检测结果发送给开发人员。
14.如权利要求10所述的装置,其特征在于,所述装置还包括:
转换结果单元,用于将检测结果转换为可视化信息。
15.如权利要求10所述的装置,其特征在于,获取代码单元,还用于:在获取终端发送的代码和代码信息之前,
若判断出对项目的在先版本的代码文件集合进行过检测,则从终端发送的所述项目的在后版本的代码文件集合中,确定相对于在先版本的代码文件集合发生变化的代码文件;则
获取代码单元,用于:
获取终端发送的所述发生变化的代码文件中的代码。
16.如权利要求15所述的装置,其特征在于,获取代码单元,还用于:
若判断出对项目的在先版本的代码文件集合未进行过检测,则
获取代码单元,用于:
获取终端发送的所述项目的在后版本的代码文件集合中的代码。
17.如权利要求10所述的装置,其特征在于,代码规范,包括:
代码检测规范。
18.如权利要求17所述的装置,其特征在于,代码规范,还包括:
代码忽略规则。
19.一种代码的发送方法,其特征在于,包括:
获取代码和代码信息;其中,所述代码信息包含表示与所述代码匹配的代码规范的信息;
将代码和代码信息发送到检测设备。
20.一种代码的发送装置,其特征在于,包括:
获取单元,用于获取代码和代码信息;其中,所述代码信息包含表示与所述代码匹配的代码规范的信息;
发送单元,用于将代码和代码信息发送到检测设备。
CN201510229655.0A 2015-05-07 2015-05-07 一种代码质量的检测方法及装置 Pending CN106201861A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510229655.0A CN106201861A (zh) 2015-05-07 2015-05-07 一种代码质量的检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510229655.0A CN106201861A (zh) 2015-05-07 2015-05-07 一种代码质量的检测方法及装置

Publications (1)

Publication Number Publication Date
CN106201861A true CN106201861A (zh) 2016-12-07

Family

ID=57459600

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510229655.0A Pending CN106201861A (zh) 2015-05-07 2015-05-07 一种代码质量的检测方法及装置

Country Status (1)

Country Link
CN (1) CN106201861A (zh)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357733A (zh) * 2017-07-17 2017-11-17 万帮充电设备有限公司 提高代码质量的方法及装置
CN107643894A (zh) * 2017-09-30 2018-01-30 深圳市沃特沃德股份有限公司 代码开发管理方法和***
CN107688541A (zh) * 2017-09-15 2018-02-13 广州酷狗计算机科技有限公司 文件评审方法、装置、服务器及计算机可读存储介质
CN108334448A (zh) * 2018-01-22 2018-07-27 泰康保险集团股份有限公司 代码验证方法、装置及设备
CN108415843A (zh) * 2018-03-21 2018-08-17 南京邮电大学盐城大数据研究院有限公司 一种面向Selenium Remote Control的Java测试代码质量评判方法
CN108446230A (zh) * 2018-03-19 2018-08-24 南京邮电大学 一种面向WebDriver的Java测试代码质量评判方法
CN108563445A (zh) * 2018-03-30 2018-09-21 平安科技(深圳)有限公司 应用程序代码检测方法及服务器
CN108614769A (zh) * 2018-03-19 2018-10-02 南京邮电大学盐城大数据研究院有限公司 一种面向Appium的Java测试代码质量评判方法
CN109254774A (zh) * 2018-08-30 2019-01-22 郑州云海信息技术有限公司 软件开发***中代码的管理方法和装置
CN109343892A (zh) * 2018-08-27 2019-02-15 北京奇虎科技有限公司 一种用于检测文件的方法、装置及计算机设备
CN109344072A (zh) * 2018-10-12 2019-02-15 携程旅游信息技术(上海)有限公司 代码质量检测方法、服务器、***、设备及存储介质
CN109508204A (zh) * 2018-11-15 2019-03-22 四川长虹电器股份有限公司 一种前端代码质量检测方法及装置
CN109871317A (zh) * 2019-01-11 2019-06-11 平安普惠企业管理有限公司 代码质量分析方法及装置、存储介质及电子设备
CN110377497A (zh) * 2019-05-27 2019-10-25 深圳壹账通智能科技有限公司 代码检测方法、装置、计算机装置及存储介质
CN110865806A (zh) * 2019-11-20 2020-03-06 腾讯科技(深圳)有限公司 代码处理方法、装置、服务器及存储介质
CN111427786A (zh) * 2020-03-25 2020-07-17 中国建设银行股份有限公司 异常Full GC问题检测方法及装置
CN111444093A (zh) * 2020-03-25 2020-07-24 世纪龙信息网络有限责任公司 项目开发过程质量的确定方法、装置、计算机设备
CN112860564A (zh) * 2021-02-24 2021-05-28 深圳海付移通科技有限公司 代码检测方法、服务器、用户端、计算机设备和存储介质
CN114547085A (zh) * 2022-03-22 2022-05-27 中国铁塔股份有限公司 一种数据处理方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102054100A (zh) * 2010-12-17 2011-05-11 中国科学院计算技术研究所 一种基于静态分析的rtl设计错误检测方法和***
US20130014093A1 (en) * 2010-03-29 2013-01-10 Soft4Soft Co., Ltd. Code inspection executing system for performing a code inspection of abap source codes
CN103092761A (zh) * 2013-02-05 2013-05-08 烽火通信科技股份有限公司 基于差异信息文件识别和检查修改代码块的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130014093A1 (en) * 2010-03-29 2013-01-10 Soft4Soft Co., Ltd. Code inspection executing system for performing a code inspection of abap source codes
CN102054100A (zh) * 2010-12-17 2011-05-11 中国科学院计算技术研究所 一种基于静态分析的rtl设计错误检测方法和***
CN103092761A (zh) * 2013-02-05 2013-05-08 烽火通信科技股份有限公司 基于差异信息文件识别和检查修改代码块的方法及装置

Cited By (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107357733A (zh) * 2017-07-17 2017-11-17 万帮充电设备有限公司 提高代码质量的方法及装置
CN107688541A (zh) * 2017-09-15 2018-02-13 广州酷狗计算机科技有限公司 文件评审方法、装置、服务器及计算机可读存储介质
CN107643894A (zh) * 2017-09-30 2018-01-30 深圳市沃特沃德股份有限公司 代码开发管理方法和***
WO2019061750A1 (zh) * 2017-09-30 2019-04-04 深圳市沃特沃德股份有限公司 代码开发管理方法和***
CN108334448A (zh) * 2018-01-22 2018-07-27 泰康保险集团股份有限公司 代码验证方法、装置及设备
CN108334448B (zh) * 2018-01-22 2021-07-09 泰康保险集团股份有限公司 代码验证方法、装置及设备
CN108614769B (zh) * 2018-03-19 2022-02-08 南京邮电大学盐城大数据研究院有限公司 一种面向Appium的Java测试代码质量评判方法
CN108446230A (zh) * 2018-03-19 2018-08-24 南京邮电大学 一种面向WebDriver的Java测试代码质量评判方法
CN108446230B (zh) * 2018-03-19 2021-07-20 南京邮电大学 一种面向WebDriver的Java测试代码质量评判方法
CN108614769A (zh) * 2018-03-19 2018-10-02 南京邮电大学盐城大数据研究院有限公司 一种面向Appium的Java测试代码质量评判方法
CN108415843A (zh) * 2018-03-21 2018-08-17 南京邮电大学盐城大数据研究院有限公司 一种面向Selenium Remote Control的Java测试代码质量评判方法
CN108415843B (zh) * 2018-03-21 2021-08-27 南京邮电大学盐城大数据研究院有限公司 一种面向Selenium Remote Control的Java测试代码质量评判方法
CN108563445B (zh) * 2018-03-30 2021-09-10 平安科技(深圳)有限公司 应用程序代码检测方法及服务器
CN108563445A (zh) * 2018-03-30 2018-09-21 平安科技(深圳)有限公司 应用程序代码检测方法及服务器
CN109343892A (zh) * 2018-08-27 2019-02-15 北京奇虎科技有限公司 一种用于检测文件的方法、装置及计算机设备
CN109254774A (zh) * 2018-08-30 2019-01-22 郑州云海信息技术有限公司 软件开发***中代码的管理方法和装置
CN109344072A (zh) * 2018-10-12 2019-02-15 携程旅游信息技术(上海)有限公司 代码质量检测方法、服务器、***、设备及存储介质
CN109508204B (zh) * 2018-11-15 2021-08-06 四川长虹电器股份有限公司 一种前端代码质量检测方法及装置
CN109508204A (zh) * 2018-11-15 2019-03-22 四川长虹电器股份有限公司 一种前端代码质量检测方法及装置
CN109871317A (zh) * 2019-01-11 2019-06-11 平安普惠企业管理有限公司 代码质量分析方法及装置、存储介质及电子设备
CN110377497A (zh) * 2019-05-27 2019-10-25 深圳壹账通智能科技有限公司 代码检测方法、装置、计算机装置及存储介质
CN110865806A (zh) * 2019-11-20 2020-03-06 腾讯科技(深圳)有限公司 代码处理方法、装置、服务器及存储介质
CN110865806B (zh) * 2019-11-20 2023-08-18 腾讯科技(深圳)有限公司 代码处理方法、装置、服务器及存储介质
CN111444093A (zh) * 2020-03-25 2020-07-24 世纪龙信息网络有限责任公司 项目开发过程质量的确定方法、装置、计算机设备
CN111427786A (zh) * 2020-03-25 2020-07-17 中国建设银行股份有限公司 异常Full GC问题检测方法及装置
CN111444093B (zh) * 2020-03-25 2024-04-02 天翼数字生活科技有限公司 项目开发过程质量的确定方法、装置、计算机设备
CN112860564A (zh) * 2021-02-24 2021-05-28 深圳海付移通科技有限公司 代码检测方法、服务器、用户端、计算机设备和存储介质
CN114547085A (zh) * 2022-03-22 2022-05-27 中国铁塔股份有限公司 一种数据处理方法、装置、电子设备及存储介质
CN114547085B (zh) * 2022-03-22 2023-05-05 中国铁塔股份有限公司 一种数据处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN106201861A (zh) 一种代码质量的检测方法及装置
US11106626B2 (en) Managing changes to one or more files via linked mapping records
US11163731B1 (en) Autobuild log anomaly detection methods and systems
US8799869B2 (en) System for ensuring comprehensiveness of requirements testing of software applications
US20160306627A1 (en) Determining errors and warnings corresponding to a source code revision
CN107016047A (zh) 文档查询、文档存储方法及装置
CN108509209A (zh) 一种资源包的生成方法、装置、计算机设备及存储介质
CN106886445A (zh) Java数据包生成方法及设备和信息提取方法及设备
CN106873960A (zh) 一种应用软件的更新方法和设备
CN112860777B (zh) 数据处理方法、装置及设备
CN108595187A (zh) 安卓安装包集成软件开发工具包的法、装置及存储介质
CN107729031A (zh) 代码管理方法、装置、计算机设备和计算机可读存储介质
CN107015794B (zh) 软件即服务参考流程扩展验证框架
CN106095501A (zh) 一种应用部署方法及装置
CN107169000A (zh) 静态资源发布方法及装置
US20130151519A1 (en) Ranking Programs in a Marketplace System
CN106897342A (zh) 一种数据校验方法和设备
CN106326129A (zh) 一种程序异常信息生成方法及装置
US9891911B2 (en) Software development work item management system
US10394551B2 (en) Managing kernel application binary interface/application programming interface-based discrepancies relating to kernel packages
CN102171696B (zh) 定制资料的生成方法和装置
CN105867886A (zh) 一种写表格的方法及装置
KR101174398B1 (ko) 컨텐츠 추천 장치 및 방법
CN106021087A (zh) 代码检测方法及装置
CN104769548A (zh) 打包、存储和分发指南包

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20161207

RJ01 Rejection of invention patent application after publication