CN109359028B - 代码质量监控方法、装置、计算机设备及存储介质 - Google Patents
代码质量监控方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109359028B CN109359028B CN201810958664.7A CN201810958664A CN109359028B CN 109359028 B CN109359028 B CN 109359028B CN 201810958664 A CN201810958664 A CN 201810958664A CN 109359028 B CN109359028 B CN 109359028B
- Authority
- CN
- China
- Prior art keywords
- code
- submitting
- log
- detection
- svn
- 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.)
- Active
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 80
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000001514 detection method Methods 0.000 claims abstract description 153
- 238000012986 modification Methods 0.000 claims description 56
- 230000004048 modification Effects 0.000 claims description 56
- 230000000007 visual effect Effects 0.000 claims description 38
- 230000006870 function Effects 0.000 claims description 26
- 230000001788 irregular Effects 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 16
- 238000012800 visualization Methods 0.000 claims description 7
- 238000011161 development Methods 0.000 description 21
- 230000018109 developmental process Effects 0.000 description 21
- 238000012552 review Methods 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000013515 script Methods 0.000 description 5
- 238000010276 construction Methods 0.000 description 3
- 238000012806 monitoring device Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software analysis for verifying properties of programs using software metrics
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种代码质量监控方法、装置、计算机设备及存储介质,该方法包括:基于代码提交请求,获取与代码提交请求对应的代码提交日志;采用SVN监控任务进程对代码提交日志进行监控,按照提交时间的先后顺序对代码提交日志进行排列,获取代码提交日志队列;采用代码规范检测工具对代码提交日志队列对应的源代码进行检测;当有代码提交日志对应的源代码检测出不规范代码时,基于不规范代码生成修改提示信息,并将修改提示信息发送给提交人ID对应的SVN客户端,以使SVN客户端显示修改提示信息。本方法提高对源代码进行规范性检测的效率,实现针对每个开发人员的源代码进行质量监控的功能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种代码质量监控方法、装置、计算机设备及存储介质。
背景技术
开发人员在编写完成源代码之后,需要将源代码发送给对应的评审人进行评审,由于源代码编写的复杂性越来越大,评审人员在评审开发人员提交的源代码时,不免会出现评审遗漏或评审不完整的情况发生,而且人工评审效率低。目前业内部分产品(如Jenkins)可以做到代码质量评审,但是功能不够系统,不能细分到对具体开发人员进行评审。另外,已有功能主要是针对系统级的代码质量评审,无法细分到针对某一个开发人员进行代码质量监控,由于当前不能对具体开发人员提交的源代码进行质量评审因此无法及时提醒开发人员对自己提交不符合规范的源代码进行修改,使得代码质量监控时效性不强的效果。
发明内容
本发明实施例提供一种代码质量监控方法、装置、计算机设备及存储介质,以解决人工评审代码效率低且代码质量监控时效性不强的问题。
一种代码质量监控方法,包括SVN服务器执行的如下步骤:
获取SVN客户端发送的代码提交请求,所述代码提交请求包括提交人ID、提交时间和源代码;
基于所述代码提交请求,获取与所述代码提交请求对应的代码提交日志;
采用SVN监控任务进程对所述代码提交日志进行监控,按照所述提交时间的先后顺序对所述代码提交日志进行排列,获取代码提交日志队列;
采用代码规范检测工具按照顺序对所述代码提交日志队列中每个代码提交日志对应的源代码进行检测;
当有代码提交日志对应的源代码检测出不规范代码时,基于所述不规范代码生成修改提示信息,并将所述修改提示信息发送给所述提交人ID对应的SVN客户端,以使所述SVN客户端显示所述修改提示信息。
一种代码质量监控装置,包括:
代码提交请求获取模块,用于获取SVN客户端发送的代码提交请求,所述代码提交请求包括提交人ID、提交时间和源代码;
代码提交日志获取模块,用于基于所述代码提交请求,获取与所述代码提交请求对应的代码提交日志;
代码提交日志队列获取模块,用于采用SVN监控任务进程对所述代码提交日志进行监控,按照所述提交时间的先后顺序对所述代码提交日志进行排列,获取代码提交日志队列;
源代码检测模块,用于采用代码规范检测工具按照顺序对所述代码提交日志队列中每个代码提交日志对应的源代码进行检测;
修改提示信息发送模块,用于当有代码提交日志对应的源代码检测出不规范代码时,基于所述不规范代码生成修改提示信息,并将所述修改提示信息发送给所述提交人ID对应的SVN客户端,以使所述SVN客户端显示所述修改提示信息。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述代码质量监控方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述代码质量监控方法的步骤。
上述代码质量监控方法、装置、计算机设备及存储介质,通过对代码提交请求获取与代码提交请求对应的代码提交日志,然后采用SVN监控任务进程对代码提交日志进行监控,根据代码提交日志记录的提交时间,对代码提交日志进行排序,获取代码提交日志队列,使得代码规范检测工具按照代码提交日志队列先进先出的属性依序对提交日志对应的源代码进行检测,获取不规范代码,提高了代码质量检测的效率。基于不规范代码生成修改提示信息并发送给提交人ID对应的SVN客户端,使得开发人员及时获知自己提交的源代码中存在不规范代码,以实现及时修改不规范代码,以保证代码质量监控的时效性。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中代码质量监控方法的一应用场景图;
图2是本发明一实施例中代码质量监控方法的一流程图;
图3是图2中步骤S50的一具体流程图;
图4是图2中步骤S20的一具体流程图;
图5是图2中步骤S40的一具体流程图;
图6是图2中步骤S60的一具体流程图;
图7是本发明一实施例中代码质量监控装置的一示意图;
图8是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的代码质量监控方法,可应用在如图1的应用环境中,该代码质量监控方法包括客户端和与该客户端相连的服务器,其中,客户端通过网络与服务器进行通信。本实施例中采用的服务器和客户端分别为SVN服务器和SVN客户端。其中,SVN是Subversion的简称,是一个开放源代码的版本控制系统。SVN服务器有2种运行方式:独立服务器和借助apache(一种Web服务器)运行。本实施例采用独立服务器的运行方式,提高代码质量监控的速度。
在一实施例中,如图2所示,提供一种代码质量监控方法,以该方法应用在图1中的SVN服务器为例进行说明,包括如下步骤:
S10:获取SVN客户端发送的代码提交请求,代码提交请求包括提交人ID、提交时间和源代码。
其中,代码提交请求指SVN客户端向SVN服务器发送的提交源代码的请求。提交人ID指提交源代码的开发人员对应的ID,本实施例中的提交人ID为开发人员在登录SVN客户端使用的登录账号。提交时间指SVN服务器获取到SVN客户端发送的代码提交请求的时间。源代码指开发人员上传的自己编写的程序代码。
具体地,开发人员在通过SVN客户端上传源代码后,进行代码提交操作,SVN客户端会将代码提交操作产生的代码提交请求发送给对应的SVN服务器。进一步地,在获取SVN客户端发送的代码提交请求之前,开发人员需要在SVN客户端使用登录账号和登录密码进行登录,即通过SVN客户端向SVN服务器发送登录请求,该登录请求携带登录账号和登录密码;当SVN服务器接收到登录请求时,对登录账号和登录密码进行登录验证,并在验证通过后,使SVN客户端进入代码提交界面,以使开发人员通过SVN客户端显示的代码提交界面进行代码提交。
本实施例中,开发人员的登录账号和登录密码为开发人员第一次在SVN客户端提交代码时,SVN服务器分配给SVN客户端的一组登录账号和登录密码,在SVN服务器将该登录账号和登录密码发送给对应的SVN客户端后,SVN服务器会将该SVN客户端的客户端标识、登录账号以及登录密码进行关联存储。当开发人员再次在SVN客户端进行登录时,SVN服务器会通过SVN客户端的客户端标识查找是否有与该客户端标识关联的登录账号和登录密码,若SVN服务器中存储有与该SVN客户端的客户端标识关联的登录账号和登录密码,则直接通过该登录请求。可以理解地,该SVN客户端的客户端标识包括但不限于MAC地址、IP地址、机器码和序列号。通过SVN服务器分配登录账号和登录密码不需要用户手动输入登录账号和登录密码,方便用户登录。
S20:基于代码提交请求,获取与代码提交请求对应的代码提交日志。
其中,代码提交日志指源代码提交到SVN服务器时产生的关于代码提交的日志。该代码提交日志是由开发人员在SVN客户端提交源代码,并发送给SVN服务器后,SVN服务器基于代码提交请求生成的日志。具体地,SVN服务器获取到代码提交请求后,会基于该代码提交请求生成对应的代码提交日志。该代码提交日志包括提交源代码的提交人ID、提交时间和提交版本号。本实施例中的提交版本号指开发人员向SVN服务器提交源代码时编写的源代码的版本号。开发人员在提交源代码时,一般都会对源代码命名一个版本号,当开发人员按照要求修改该源代码后,会变更一次版本号,以此来记录开发人员开发源代码的整个过程,同时也方便后续SVN服务器对源代码进行质量监控。服务器获取与代码提交请求对应的代码提交日志,方便步骤S30根据代码提交日志记录的提交时间,对代码提交日志进行排序。
S30:采用SVN监控任务进程对代码提交日志进行监控,按照提交时间的先后顺序对代码提交日志进行排列,获取代码提交日志队列。
其中,SVN监控任务进程指部署在SVN服务器上,对SVN服务器上的代码提交日志进行监控的进程。具体地,SVN服务器中的SVN监控任务进程按照预设的监控频率,监控SVN服务器中的代码提交日志。本实施例中,将监控任务进程的监控频率设置为每隔一分钟监控一次代码提交日志。将监控频率设置为一分钟,既可以保证SVN监控任务进程不会特别频繁地扫描SVN服务器中存储的代码提交日志,增加SVN服务器的代码质量监控压力,同时又达到及时扫描的作用。
具体地,SVN监控任务进程按照预设的监控频率,每隔一分钟对代码提交日志监控一次,按照代码提交日志的生成时间的先后顺序,依序将代码提交日志发送给SVN服务器预先创建的代码提交日志队列,该代码提交日志队列用于存储代码提交日志。其中,代码提交日志队列指根据代码提交日志中记录的提交时间,按照提交时间的先后顺序对代码提交日志依序排列形成的消息队列。本实施例中,根据队列先进先出的属性,将提交时间最先的代码提交日志排在代码提交日志队列的队头,可以优先处理队头,即就是时间最先的代码提交日志,达到依序处理的目的。
S40:采用代码规范检测工具按照顺序对代码提交日志队列中每个代码提交日志对应的源代码进行检测。
具体地,代码规范检测工具指预先存储的用于检测代码是否规范的工具。该代码规范检测工具包括但不限于sonar-runner、check Style等自动化代码规范检测工具,还包括开发人员自定义编写的代码规范检测脚本对应的代码规范检测工具。
本实施例中,服务器采用代码规范检测工具扫描源代码,根据代码规范检测工具对源代码进行检测,获取不符合代码规范检测工具中定义的规范检测规则的源代码。规范检测规则指代码规范检测工具中编写的用于检测源代码是否符合要求的规则。
进一步地,开发人员自定义编写的代码规范检测脚本包括开发人员编写的用于检查代码规范的正则表达式。该正则表达式包括但不限于源代码中函数名命名的规范、函数调用的规范、单行源代码不能超过多少字符的规范、单个功能模块不能超过多少行的规范和源代码中的文件流是否有关闭标识的规范等。采用代码规范检测脚本对应的代码规范检测工具对代码提交日志队列对应的源代码进行检测,提高代码规范检测的效率。
S50:当有代码提交日志对应的源代码检测出不规范代码时,基于不规范代码生成修改提示信息,并将修改提示信息发送给提交人ID对应的SVN客户端,以使SVN客户端显示修改提示信息。
其中,不规范代码指不符合代码规范检测工具中的规范检测规则的源代码。修改提示信息指提示开发人员对不规范代码进行修改的信息。具体地,在采用代码规范检测工具按照顺序对代码提交日志队列中每个代码提交日志对应的源代码进行检测时,若代码提交日志对应的源代码检测出不规范代码时,则获取不规范代码。然后,SVN服务器会根据不规范代码生成一个修改提示信息,发送给提交人ID对应的SVN客户端,SVN客户端显示该修改提示信息,提醒开发人员提交的源代码不符合代码规范,需要修改。本实施例中,不规范代码的获取方式包括在源代码中对不规范代码进行突出显示标注,如使用颜色标注不规范代码。或者将命中代码规范检测工具中编写的规范检测规则的源代码提取出来,根据预先设置好的存储路径将不规范代码存储到该存储路径下的不规范代码文件中。本实施例中采用将不规范代码存储到不规范代码文件中的形式获取不规范代码,方便后续将不规范代码插入到邮件模板中指定的位置。不规范代码文件指用于存储不规范代码和相关数据的文件,包括但不限于存储不规范代码、代码检测意见、提交人ID、提交时间和提交版本号。将不规范代码和相关数据存储到不规范代码文件中,使得不规范代码文件详细地记录不规范代码所有情况,实对不规范代码的质量监控。
为了方便管理和发送修改提示信息给SVN客户端,不规范代码文件中还包括提交人ID和提交人邮箱;为了便于开发人员了解源代码是什么时候提交的,不规范代码文件中还包括提交时间。同时,为了节省开发人员修改不规范代码的时间,代码规范检测工具在检测源代码,发现不规范代码后,会对不规范代码匹配一个对应的代码检测意见,方便开发人员根据代码检测意见对不规范代码进行修改,提高修改效率。其中,代码检测意见指代码规范检测工具对源代码检测给出的代码检测意见。该代码检测意见是预先配置的对不符合代码检测规则的不规范代码进行修改的意见。
需要说明的是邮件中的内容包括邮件模板、不规范代码和代码检测意见。其中,邮件模板指SVN服务器中预先编辑好的用于通知开发人员的邮件。本实施例中的邮件模板为“尊敬的XX用户,您于XX月XX日提交的源代码中存在不规范代码,请依据代码检测意见修改,谢谢!”。该邮件模板上配置有插入不规范代码和代码检测意见的位置,使得SVN服务器可将插入不规范代码和代码检测意见插入相应的位置,实现自动插入数据以生成邮件格式的修改提示信息的功能。
步骤S10-步骤S50,通过对代码提交请求获取与代码提交请求对应的代码提交日志,然后采用SVN监控任务进程对代码提交日志进行监控,根据代码提交日志记录的提交时间,对代码提交日志进行排序,获取代码提交日志队列,使得代码规范检测工具按照代码提交日志队列先进先出的属性依序对提交日志对应的源代码进行检测,获取不规范代码,提高对源代码进行规范性检测的效率,即提高代码质检检测的效率。基于不规范代码生成修改提示信息并发送给提交人ID对应的SVN客户端,使得开发人员及时获知自己提交的源代码中存在不规范代码,以实现及时修改不规范代码,以保证代码质量监控的时效性,实现针对每个开发人员的源代码进行质量监控的功能。
在一实施例中,在获取不规范代码后,为了让开发人员及时获知自己提交的源代码存在不规范代码,并对不规范代码作出修改,在开发人员通过SVN客户端向SVN服务器发送代码提交请求时,该代码提交请求中还包括提交人邮箱。如图3所示,步骤S50,将修改提示信息发送给提交人ID对应的SVN客户端,具体包括如下步骤:
S51:将不规范代码和对应的代码检测意见添加到邮件模板中预设的位置,生成修改提醒邮件。
具体地,服务器在获取不规范代码后,将不规范代码存储在不规范代码文件中,则根据提交人ID和提交时间选取特定的不规范代码和不规范代码对应的代码检测意见,添加到邮件模板中预设的位置,生成修改提醒邮件。其中,修改提醒邮件是包括不规范代码、代码检测意见和邮件模板内容,用于提醒开发人员修改不规范代码的邮件。为了方便将不规范代码和代码检测意见插入到邮件模板中预设的位置,本实施例中,不规范代码和代码检测意见是以Excel表格的形式存储在不规范文件中的。可以理解地,在Excel表格中,一条不规范代码对应一个代码检测意见。
S52:根据提交人ID获取与提交人ID对应的提交人邮箱,将修改提醒邮件发送给提交人邮箱。
具体地,在生成修改提醒邮件后,根据不规范代码文件中记录的提交人ID,从不规范代码文件中获取与提交人ID关联的提交人邮箱,并将修改提醒邮件发送到提交人邮箱。
步骤S51-步骤S52,通过不规范代码和对应的代码检测意见添加到邮件模板中预设的位置,生成修改提醒邮件,不需要人工编写邮件,提高工作效率,实现自动生成修改提醒邮件的功能,并将修改提醒邮件自动发送给提交人邮箱,及时提醒提交源代码的开发人员有不规范代码需要修改。
在一实施例中,SVN服务器上部署有分布式发布订阅消息系统和日志分析工具。如图4所示,步骤S20,基于代码提交请求,获取与代码提交请求对应的代码提交日志,具体包括如下步骤:
S21:通过分布式发布订阅消息系统,获取原始日志信息。
本实施例中采用的分布式发布订阅消息系统为Kafka。Kafka是一种高吞吐量的分布式发布订阅消息系统,能够处理消费者规模的站点中的所有动作流数据。该动作流数据包括但不限于:网页浏览、搜索和其他用户动作,如管理人员对服务器进行操作产生的日志,服务器运行时系统产生的运行日志等。
具体地,原始日志信息指SVN服务器运行时产生的所有日志信息,包括但不限于SVN服务器运行时系统产生的日志,管理人员对服务器进行操作时产生的日志和执行各种任务处理进程运行时产生的日志。为了方便区分原始日志信息的类别,分布式发布订阅消息系统Kafka获取到的原始日志信息中会携带有类别Topic。不同的Topic对应的原始日志信息的存储路径不同,该存储路径可以根据需求进行自定义并记录在Offset中,开发人员只需指定原始日志信息的Topic即可获取与Topic对应的原始日志信息。其中,Topic指原始日志信息中日志信息的类别。Offset指存储路径的索引序列,Offset包括但不限于Offset编号、原始日志信息类别、原始日志信息存储位置和原始日志信息生成时间。
例如,在SVN服务器中,存储了两个Topic对应的原始日志信息,包括登录请求产生的原始日志信息和代码提交请求产生的原始日志信息。其中,登录请求产生的原始日志消息存储的路径为
“D:\SVN\Submission\log\15263.log”,对应的Offset为“Offset编号:9562,原始日志信息类别Topic为登录请求;该原始日志信息存储位置为
“D:\SVN\Submission\log\15263.log”,该原始日志信息生成时间:2018-01-1911:49:20”。代码提交请求产生的原始日志信息存储的路径为
“D:\SVN\Upload\log\3623.log”,对应的Offset为“Offset编号:9662,原始日志信息类别Topic为代码提交请求;该原始日志信息存储位置为
“D:\SVN\Upload\log\3623.log”,该原始日志信息生成时间:2018-01-1911:52:50”。
S22:通过日志分析工具对原始日志信息进行分类,获取携带有代码提交标识对应的代码提交日志。
其中,日志分析工具指对服务器中的日志信息进行分析的工具。具体地,服务器先采用分割函数对原始日志信息进行分割,通过日志分析工具Logstash按照原始日志信息中的原始日志信息类别对原始日志信息进行分类。然后,服务器根据开发人员指定的Topic,获取Topic为“代码提交”的日志信息,该日志信息则为代码提交日志对应的日志信息。其中,分割函数指用于分割原始日志信息的函数。本实施例中的原始日志信息类别Topic指代码提交标识。
进一步地,每个原始日志信息中包含但不限于原始日志信息类别、Offset编号和原始日志信息存储位置,但这些内容没有被分割开,通过分割函数对原始日志信息进行分割,获取原始日志信息中的原始日志信息类别Topic。例如:一原始日志信息为:
“0009[代码提交]C:\Windows\system32\Macromed\Flash\activex.vch”,使用Split分割函数对该原始日志信息进行分割,得到{“0009”,“[代码提交]”,“C:\Windows\system32\Macromed\Flash\activex.vch”},其中“0009”为该原始日志信息的编号,“[代码提交]”为该原始日志信息类别,“C:\Windows\system32\Macromed\Flash\activex.vch”为该原始日志信息的具体事件。日志分析工具Logstash按照原始日志信息中的原始日志信息类别对原始日志信息进行分类,将含有[代码提交]的原始日志信息分为一类,方便SVN服务器根据代码提交标识从原始日志信息中获取代码提交标识对应的代码提交日志。
步骤S21-步骤S22,通过分布式发布订阅消息系统获取SVN服务器中存储的原始日志信息,然后根据日志分析工具对原始日志信息进行分类,将携带有代码提交标识的日志信息归为一类,作为代码提交日志,方便后续步骤中使用代码规范检测工具有针对性地只对代码提交日志进行检测,提高检测效率。
在一实施例中,代码规范检测工具包括通用代码检测规则和专用代码检测规则,如图5所示,步骤S40,采用代码规范检测工具按照顺序对代码提交日志队列中每个代码提交日志对应的源代码进行检测,具体包括如下步骤:
S41:采用通用代码检测规则依照代码提交日志队列的顺序,对源代码中的所有代码块进行第一次检测,获取第一检测结果。
其中,通用代码检测规则指现有的代码检测工具中检测代码编写是否符合要求的规则,如源代码行数、数据长度、数据类型、函数名命名和函数调用等检测代码是否符合代码编写规范的规则。采用代码规范检测工具依照代码提交日志队列的顺序,依序对代码提交日志队列对应的源代码进行扫描,根据源代码中的代码块标识(如“{}”)将源代码分为不同的代码块。则代码块是指使用“{}”括起来的一段代码”。然后,使用通用代码检测规则对代码块进行检测,获取不符合通用代码检测规则的不规范代码。本实施例中,通用代码检测规则为sonar-runner、check Style等自动化代码规范检测工具中的代码检测规则。由于sonar-runner和check Style中的代码检测规则非常强大,包括多种检测规则,若不加选择,使用sonar-runner和check Style中的所有代码规范检测规则对源代码进行检测,会造成开发人员修改不规范代码的工作量很大。因此,开发人员可以根据实际需要在sonar-runner或者check Style自动化代码规范检测工具中选择需要的代码检测规则作为通用代码检测规则,利用选择的通用代码检测规则对源代码进行检测,获取第一检测结果。其中,第一检测结果指使用通用代码检测规则对代码块进行检测得到的不规范代码。
本实施例中从sonar-runner自动化代码规范检测工具中选择的检测规则包括但不限于对源代码的行数的限制,方法命名为finalize()不应该有参数,函数抵用规则(如finalize()应该调用父类finalize())和常量命名应该全大写等检测规则。
S42:采用专用代码检测规则依照代码提交日志队列的顺序,对源代码中的携带有特殊标签的代码块进行第二次检测,获取第二检测结果。
本实施例中,专用代码检测规则指开发人员自定义编写的代码规范检测脚本。该代码规范检测脚本中包括专用代码检测规则,其中,专用代码检测规则指开发人员自己编写的适用于检查特定的代码块的正则表达式。具体地,在使用通用代码检测规则对源代码中的所有代码块进行检测后,还需要进一步使用专用代码检测规则对携带有特殊标签的代码块进行检测,提高对源代码检测的完整性。如一个需要录入用户的个人信息的代码块,该代码块携带的特殊标签为“个人信息”,该代码块中的输入数据中包括用户姓名、出生年月、手机号、邮箱地址等信息,根据需求,用户姓名不能为数字,出生年月中不能超过当天日期,手机号不能超过11位,邮箱地址中必须含有“.com”字段,在使用通用代码检测规则对该携带有特殊标签的代码块进行检测后,还需要进一步使用专用代码检测规则对携带有特殊标签的代码块进行检测,获取第二检测结果。其中,第二检测结果指使用专用代码检测规则对代码块进行检测得到的不规范代码。在使用通用检测规则对携带有特殊标签代码块进行检测后,进一步使用专用代码检测规则对携带有特殊标签代码块进行检测,完成针对源代码中特定的代码块进行检测的功能,提高不规范代码检测的完整性。
步骤S31-步骤S32,使用通用代码检测规则对源代码中的所有代码块进行检测,获取第一检测结果,对源代码中所有代码块进行第一次检测,使得后续使用专用代码检测规则只需要对携带有特殊标签的代码块进行针对性检测,减少了检测量,提高了检测效率;使用专用代码检测规则对携带有特殊标签的代码块进行进一步检测,获取第二检测结果,保证了源代码检测的完整性,提高不规范代码检测的效率。
在一实施例中,代码质量监控方法还包括如下步骤,S60:获取不规范代码对应的代码提交日志,根据代码提交日志中记录的提交人信息、提交时间和不规范类别中至少一个维度,对不规范代码出现的次数进行统计,构建可视化图表。
具体地,该可视化图表包括但不限于折线图、柱状图、频数图、比重图和数据表格。SVN服务器可以根据不规范代码的提交人ID,获取提交人ID对应的开发部门和开发组,统计该开发部门或者开发组中所有提交人对应的不规范代码出现的次数,以开发部门或者开发组为横坐标,不规范代码出现的次数为纵坐标制作可视化图表。也可以以日志生成时间为横坐标,不规范代码出现的次数为纵坐标制作可视化图表。还可以以不规范类别为横坐标,不规范代码出现的次数为纵坐标制作可视化图表。其中,不规范类别指代码规范检测工具中设置的用于检测源代码是否满足规则的类别。本实施例中,通过可视化图表,可以一目了然地了解不规范代码出现次数较多主要集中在哪些开发部门,或者开发组,或者哪一个时间段,或者哪种不规范类别(如数据长度、数据类型、函数名命名、函数调用、源代码行数等)。根据代码提交日志中记录的提交人信息、提交时间和不规范类别中至少一个维度,对不规范代码出现的次数进行统计,构建可视化图表,方便对不规范代码进行监控,便于对产生不规范代码的原因进行分析总结,使得在后续开发代码过程中尽量避免不规范代码的产生,提高开发效率。
在一实施例中,如图6所示,步骤S60中,构建可视化图表,具体包括如下步骤:
S61:获取可视化图表制作请求,可视化图表制作请求中包括图表制作参数和图表类型。
其中,可视化图表制作请求指用于制作可视化图表的请求。具体地,用户在SVN客户端点击“制作图表”的按键,SVN客户端会将可视化图表制作请求发送给对应的SVN服务器,SVN服务器在获取到可视化图表制作请求后对该可视化图表制作请求进行响应,将图表制作界面显示在SVN客户端,展示给用户,以使用户在图表制作界面上根据需要输入图表制作参数和图表类型。其中,图表制作参数包括但不限于提交人信息中的开发部门和开发组、不规范代码的提交时间和不规范类别。SVN服务器在获取到用户填写的图表制作参数后,会根据图表制作参数中填写的开发部门和开发组、不规范代码的提交时间和日志信息类别中的任意一个或者多个,统计对应的不规范代码出现的次数。其中,图表类型包括但不限于折线图、柱状图、频数图、比重图和数据表格。
S62:基于图表制作参数和图表类型,采用图表转换工具将图表制作参数转换成与图表类型相对应的可视化图表。
本实施例中的图表转换工具可以采用但不限于Echarts工具。ECharts(Enterprise Charts,商业级数据图表),是一个纯Javascript的图表库,可以流畅的运行在PC和移动设备上,兼容当前绝大部分浏览器(IE6/7/8/9/10/11,chrome,firefox,Safari等)。使用图表转换工具能够给用户提供直观、生动、可高度个性化定制的数据可视化图表,有效提高数据的可视化程度。
具体地,首先选取图表类型,填写图表制作参数,将图表制作参数发送给SVN服务器,SVN服务器根据图表制作参数统计对应的不规范代码出现的次数。然后以图表制作参数中的一个参数作为横坐标,对应的不规范代码出现的次数作为纵坐标,使用图表转换工具根据图表制作参数和图表类型转化为对应的可视化图表,对用户进行可视化展示。该可视化图表可以根据用户选择的横坐标和图标类型作出对应的可视化图表,可以很好地满足用户的个性化要求。
例如,要统计2018年第一个季度各开发部门的不规范代码出现的次数,选用柱状图比较合适,则图标类型为柱状图,图表制作参数中填写的数据为2018年一月、二月、三月和各开发部门的名称,SVN服务器根据各开发部门的名称统计各开发部门在2018年第一季度的不规范代码出现的次数,然后以各开发部门的名称作为横坐标,不规范代码出现的次数作为纵坐标,获取图标类型为柱状图对应的可视化图表。或者以时间(一月、二月、三月)作为横坐标,不规范代码出现的次数作为纵坐标,获取图标类型为柱状图为柱状图对应的可视化图表。通过获取可视化图表,可以一目了然地了解不规范代码出现次数较多的开发部门、开发组、时间段和不规范代码的类别,方便对不规范代码进行监控。
步骤S61-步骤S62,通过获取可视化图表制作请求,获取图表制作参数,根据选择的图表制作参数统计不规范代码出现的次数,然后以图表制作参数中的其中一个参数作为横坐标,不规范的源代码出现的次数作为总表对数据进行可视化展示,使得用户可以根据需求制作出对应的可视化图表,方便对不规范代码进行监控。
本发明实施例所提供的代码质量监控方法,通过对代码提交请求获取与代码提交请求对应的代码提交日志,然后采用SVN监控任务进程对代码提交日志进行监控,根据代码提交日志记录的提交时间,对代码提交日志进行排序,获取代码提交日志队列,使得代码规范检测工具按照代码提交日志队列先进先出的属性依序对提交日志对应的源代码进行检测,获取不规范代码,提高了代码规范检测的效率。基于不规范代码生成修改提示信息并发送给提交人ID对应的SVN客户端,使得开发人员及时获知自己提交的源代码中存在不规范代码,对不规范代码进行修改,解决了每个开发人员的源代码进行质量监控的问题。另外,代码质量监控方法还提供了可视化图表的制作指令,用户可以在SVN客户端操作可视化图表制作请求制作对应的可视化图表,使得数据可以一目了然地展示给用户,方便对不规范代码进行监控。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种代码质量监控装置,该代码质量监控装置与上述实施例中代码质量监控方法一一对应。如图7所示,该代码质量监控装置包括代码提交请求获取模块10、代码提交日志获取模块20、代码提交日志队列获取模块30、源代码检测模块40、修改提示信息发送模块50和可视化图表构建模块60。各功能模块详细说明如下:
代码提交请求获取模块10,用于获取SVN客户端发送的代码提交请求,代码提交请求包括提交人ID、提交时间和源代码。
代码提交日志获取模块20,用于基于代码提交请求,获取与代码提交请求对应的代码提交日志。
代码提交日志队列获取模块30,用于采用SVN监控任务进程对代码提交日志进行监控,按照提交时间的先后顺序对代码提交日志进行排列,获取代码提交日志队列。
源代码检测模块40,用于采用代码规范检测工具按照顺序对代码提交日志队列中每个代码提交日志对应的源代码进行检测。
修改提示信息发送模块50,用于当有代码提交日志对应的源代码检测出不规范代码时,基于不规范代码生成修改提示信息,并将修改提示信息发送给提交人ID对应的SVN客户端,以使SVN客户端显示修改提示信息。
进一步地,代码提交日志获取模块20包括原始日志信息获取单元21和代码提交日志获取单元22。
原始日志信息获取单元21,用于通过分布式发布订阅消息系统,获取原始日志信息。
代码提交日志获取单元22,用于通过日志分析工具对原始日志信息进行分类,获取携带有代码提交标识对应的代码提交日志。
进一步地,码规范检测工具包括通用代码检测规则和专用代码检测规则。
源代码检测模块40包括通用代码规则检测单元41和专用代码规则检测单元42。
通用代码规则检测单元41,用于采用通用代码检测规则依照代码提交日志队列的顺序,对源代码中的所有代码块进行第一次检测,获取第一检测结果。
专用代码规则检测单元42,用于采用专用代码检测规则依照代码提交日志队列的顺序,对源代码中的携带有特殊标签的代码块进行第二次检测,获取第二检测结果。
进一步地,修改提示信息发送模块50包括修改提醒邮件生成单元51和修改提醒邮件发送单元52。
修改提醒邮件生成单元51,用于将不规范代码和对应的代码检测意见添加到邮件模板中预设的位置,生成修改提醒邮件。
修改提醒邮件发送单元52,用于根据提交人ID获取与提交人ID对应的提交人邮箱,将修改提醒邮件发送给提交人邮箱。
进一步地,代码质量监控装置还包括,可视化图表构建模块60,用于获取不规范代码对应的代码提交日志,根据代码提交日志中记录的提交人信息、提交时间和不规范类别中至少一个维度,对不规范代码出现的次数进行统计,构建可视化图表。
进一步地,可视化图表构建模块60包括可视化图表制作请求获取单元61和可视化图表制作单元62。
可视化图表制作请求获取单元61,用于获取可视化图表制作请求,可视化图表制作请求中包括图表制作参数和图表类型。
可视化图表制作单元62,用于基于图表制作参数和图表类型,采用图表转换工具将图表制作参数转换成与图表类型相对应的可视化图表。
关于代码质量监控装置的具体限定可以参见上文中对于代码质量监控方法的限定,在此不再赘述。上述代码质量监控装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储代码质量监控方法中涉及到的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种代码质量监控方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中代码质量监控方法的步骤,例如图2所示的步骤S10至步骤S60。或者,处理器执行计算机程序时实现上述实施例代码质量监控装置的各模块/单元的功能,例如图7所示的模块10至模块60。为避免重复,这里不再赘述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述实施例中代码质量监控方法的步骤,例如图2所示的步骤S10至步骤S60。或者,处理器执行计算机程序时实现上述实施例代码质量监控装置的各模块/单元的功能,例如图7所示的模块10至模块60。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (8)
1.一种代码质量监控方法,其特征在于,包括SVN服务器执行的如下步骤:
获取SVN客户端发送的代码提交请求,所述代码提交请求包括提交人ID、提交时间和源代码;
基于所述代码提交请求,获取与所述代码提交请求对应的代码提交日志;
采用SVN监控任务进程对所述代码提交日志进行监控,按照所述提交时间的先后顺序对所述代码提交日志进行排列,获取代码提交日志队列;
采用通用代码检测规则依照所述代码提交日志队列的顺序,对所述源代码中的所有代码块进行第一次检测,获取第一检测结果;采用专用代码检测规则依照所述代码提交日志队列的顺序,对所述源代码中的携带有特殊标签的代码块进行第二次检测,获取第二检测结果,其中,所述专用代码检测规则指适用于检查特定的代码块的正则表达式;其中,所述通用代码检测规则指代码检测工具中检测代码是否符合代码编写规范的规则;所述第一检测结果是指使用所述通用代码检测规则对代码块进行检测得到的不规范代码;所述第二检测结果指使用所述专用代码检测规则对代码块进行检测得到的不规范代码;所述正则表达式包括源代码中函数名命名的规范、函数调用的规范、单行源代码不能超过多少字符的规范、单个功能模块不能超过多少行的规范和源代码中的文件流是否有关闭标识的规范;
当有代码提交日志对应的源代码检测出不规范代码时,基于所述不规范代码生成修改提示信息,并将所述修改提示信息发送给所述提交人ID对应的SVN客户端,以使所述SVN客户端显示所述修改提示信息。
2.如权利要求1所述的代码质量监控方法,其特征在于,所述将所述修改提示信息发送给所述提交人ID对应的SVN客户端,包括:
将所述不规范代码和对应的代码检测意见添加到邮件模板中预设的位置,生成修改提醒邮件;
根据所述提交人ID获取与所述提交人ID对应的提交人邮箱,将所述修改提醒邮件发送给所述提交人邮箱。
3.如权利要求1所述的代码质量监控方法,其特征在于,所述SVN服务器上部署有分布式发布订阅消息系统和日志分析工具;
所述基于所述代码提交请求,获取与所述代码提交请求对应的代码提交日志,包括:
通过所述分布式发布订阅消息系统,获取原始日志信息;
通过所述日志分析工具对所述原始日志信息进行分类,获取携带有代码提交标识对应的代码提交日志。
4.如权利要求1所述的代码质量监控方法,其特征在于,所述代码质量监控方法还包括:
获取所述不规范代码对应的代码提交日志,根据所述代码提交日志中记录的提交人信息、提交时间和不规范类别中至少一个维度,对所述不规范代码出现的次数进行统计,构建可视化图表。
5.如权利要求4所述的代码质量监控方法,其特征在于,所述构建可视化图表,包括:
获取可视化图表制作请求,所述可视化图表制作请求中包括图表制作参数和图表类型;
基于图表制作参数和图表类型,采用图表转换工具将所述图表制作参数转换成与所述图表类型相对应的可视化图表。
6.一种代码质量监控装置,其特征在于,包括:
代码提交请求获取模块,用于获取SVN客户端发送的代码提交请求,所述代码提交请求包括提交人ID、提交时间和源代码;
代码提交日志获取模块,用于基于所述代码提交请求,获取与所述代码提交请求对应的代码提交日志;
代码提交日志队列获取模块,用于采用SVN监控任务进程对所述代码提交日志进行监控,按照所述提交时间的先后顺序对所述代码提交日志进行排列,获取代码提交日志队列;
源代码检测模块,用于采用通用代码检测规则依照所述代码提交日志队列的顺序,对所述源代码中的所有代码块进行第一次检测,获取第一检测结果;采用专用代码检测规则依照所述代码提交日志队列的顺序,对所述源代码中的携带有特殊标签的代码块进行第二次检测,获取第二检测结果,其中,所述专用代码检测规则指适用于检查特定的代码块的正则表达式;其中,所述通用代码检测规则指代码检测工具中检测代码是否符合代码编写规范的规则;所述第一检测结果是指使用所述通用代码检测规则对代码块进行检测得到的不规范代码;所述第二检测结果指使用所述专用代码检测规则对代码块进行检测得到的不规范代码;所述正则表达式包括源代码中函数名命名的规范、函数调用的规范、单行源代码不能超过多少字符的规范、单个功能模块不能超过多少行的规范和源代码中的文件流是否有关闭标识的规范;
修改提示信息发送模块,用于当有代码提交日志对应的源代码检测出不规范代码时,基于所述不规范代码生成修改提示信息,并将所述修改提示信息发送给所述提交人ID对应的SVN客户端,以使所述SVN客户端显示所述修改提示信息。
7.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述代码质量监控方法的步骤。
8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述代码质量监控方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810958664.7A CN109359028B (zh) | 2018-08-22 | 2018-08-22 | 代码质量监控方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810958664.7A CN109359028B (zh) | 2018-08-22 | 2018-08-22 | 代码质量监控方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109359028A CN109359028A (zh) | 2019-02-19 |
CN109359028B true CN109359028B (zh) | 2024-05-03 |
Family
ID=65350189
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810958664.7A Active CN109359028B (zh) | 2018-08-22 | 2018-08-22 | 代码质量监控方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109359028B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110231937B (zh) * | 2019-05-20 | 2024-10-15 | 平安科技(深圳)有限公司 | 脚本缺陷扫描方法、装置、计算机设备和存储介质 |
CN110348714A (zh) * | 2019-06-28 | 2019-10-18 | 成都场量科技有限公司 | 基于代码日志对研发人员的产出水平评价的方法 |
CN110502427A (zh) * | 2019-07-08 | 2019-11-26 | 深圳壹账通智能科技有限公司 | 代码可读性检查方法、装置以及服务器 |
CN112650663A (zh) * | 2019-10-11 | 2021-04-13 | 上海哔哩哔哩科技有限公司 | 一种代码处理方法、装置、设备及介质 |
CN110825427B (zh) * | 2019-10-12 | 2024-01-26 | 天航长鹰(江苏)科技有限公司 | 一种代码管理方法、装置、服务器及存储介质 |
CN110888756A (zh) * | 2019-11-19 | 2020-03-17 | 支付宝(杭州)信息技术有限公司 | 一种诊断日志生成方法及装置 |
CN111125719B (zh) * | 2019-12-25 | 2023-10-24 | 中信百信银行股份有限公司 | 一种提升代码安全检测效率的方法、装置、计算机设备、和可读存储介质 |
CN111190824B (zh) * | 2019-12-28 | 2024-04-26 | 中国平安人寿保险股份有限公司 | 监测方法、装置、终端设备及存储介质 |
CN111338940A (zh) * | 2020-02-21 | 2020-06-26 | 中国建设银行股份有限公司 | 代码处理方法、装置及系统 |
CN111581103A (zh) * | 2020-05-11 | 2020-08-25 | 成都库珀区块链科技有限公司 | 一种数据检测的方法及相关装置 |
CN114327588A (zh) * | 2020-09-29 | 2022-04-12 | 中国移动通信有限公司研究院 | 一种代码提交日志的处理方法及装置 |
CN112256575A (zh) * | 2020-10-22 | 2021-01-22 | 深圳我家云网络科技有限公司 | 一种代码质量管理方法、系统及相关设备 |
CN112486566A (zh) * | 2020-10-23 | 2021-03-12 | 百果园技术(新加坡)有限公司 | 代码文件处理方法、装置、设备及存储介质 |
CN112269594A (zh) * | 2020-10-30 | 2021-01-26 | 北京首都在线科技股份有限公司 | 项目代码质量评估方法、装置、设备及存储介质 |
CN113419773B (zh) * | 2021-05-21 | 2023-11-28 | 北京达佳互联信息技术有限公司 | 日志文件的生成方法、装置、电子设备、存储介质和产品 |
CN113672517A (zh) * | 2021-09-06 | 2021-11-19 | 网易(杭州)网络有限公司 | 一种代码检查方法、装置、电子设备和介质 |
CN115269444B (zh) * | 2022-09-30 | 2023-02-03 | 平安银行股份有限公司 | 代码静态检测方法、装置及服务器 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092761A (zh) * | 2013-02-05 | 2013-05-08 | 烽火通信科技股份有限公司 | 基于差异信息文件识别和检查修改代码块的方法及装置 |
CN103577304A (zh) * | 2012-08-10 | 2014-02-12 | 百度在线网络技术(北京)有限公司 | 一种代码动态分析的方法及装置 |
CN103729195A (zh) * | 2014-01-15 | 2014-04-16 | 北京奇虎科技有限公司 | 一种软件版本的控制方法及系统 |
CN105159831A (zh) * | 2015-08-31 | 2015-12-16 | 浪潮集团有限公司 | 一种软件代码质量自动监控方法 |
CN105893259A (zh) * | 2016-03-31 | 2016-08-24 | 广州华多网络科技有限公司 | 代码检测系统、方法及装置 |
CN106095681A (zh) * | 2016-06-14 | 2016-11-09 | 深圳市彬讯科技有限公司 | 一种SVN集成JSHint代码检测方法及其系统 |
CN106294164A (zh) * | 2016-08-15 | 2017-01-04 | 中国银行股份有限公司 | 一种代码检查方法及装置 |
CN106970819A (zh) * | 2017-03-28 | 2017-07-21 | 清华大学 | 一种基于prdl规则描述语言的c程序代码规范检查装置 |
CN107168872A (zh) * | 2017-05-11 | 2017-09-15 | 网易(杭州)网络有限公司 | 代码检查的方法、装置、存储介质和处理器 |
CN107643904A (zh) * | 2017-09-18 | 2018-01-30 | 泰康保险集团股份有限公司 | 代码提交日志的检测方法、装置、介质及电子设备 |
CN108089984A (zh) * | 2017-12-14 | 2018-05-29 | 泰康保险集团股份有限公司 | 代码评审的实现方法、装置、存储介质及电子设备 |
CN108205493A (zh) * | 2016-12-20 | 2018-06-26 | 腾讯科技(深圳)有限公司 | 一种代码检测方法、终端、服务器及系统 |
CN108365985A (zh) * | 2018-02-07 | 2018-08-03 | 深圳壹账通智能科技有限公司 | 一种集群管理方法、装置、终端设备及存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8413111B2 (en) * | 2008-10-02 | 2013-04-02 | Actiance, Inc. | Techniques for dynamic updating and loading of custom application detectors |
US8584079B2 (en) * | 2010-12-16 | 2013-11-12 | Sap Portals Israel Ltd | Quality on submit process |
US9201646B2 (en) * | 2013-01-05 | 2015-12-01 | Vmware, Inc. | Automatic code review and code reviewer recommendation |
-
2018
- 2018-08-22 CN CN201810958664.7A patent/CN109359028B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577304A (zh) * | 2012-08-10 | 2014-02-12 | 百度在线网络技术(北京)有限公司 | 一种代码动态分析的方法及装置 |
CN103092761A (zh) * | 2013-02-05 | 2013-05-08 | 烽火通信科技股份有限公司 | 基于差异信息文件识别和检查修改代码块的方法及装置 |
CN103729195A (zh) * | 2014-01-15 | 2014-04-16 | 北京奇虎科技有限公司 | 一种软件版本的控制方法及系统 |
CN105159831A (zh) * | 2015-08-31 | 2015-12-16 | 浪潮集团有限公司 | 一种软件代码质量自动监控方法 |
CN105893259A (zh) * | 2016-03-31 | 2016-08-24 | 广州华多网络科技有限公司 | 代码检测系统、方法及装置 |
CN106095681A (zh) * | 2016-06-14 | 2016-11-09 | 深圳市彬讯科技有限公司 | 一种SVN集成JSHint代码检测方法及其系统 |
CN106294164A (zh) * | 2016-08-15 | 2017-01-04 | 中国银行股份有限公司 | 一种代码检查方法及装置 |
CN108205493A (zh) * | 2016-12-20 | 2018-06-26 | 腾讯科技(深圳)有限公司 | 一种代码检测方法、终端、服务器及系统 |
CN106970819A (zh) * | 2017-03-28 | 2017-07-21 | 清华大学 | 一种基于prdl规则描述语言的c程序代码规范检查装置 |
CN107168872A (zh) * | 2017-05-11 | 2017-09-15 | 网易(杭州)网络有限公司 | 代码检查的方法、装置、存储介质和处理器 |
CN107643904A (zh) * | 2017-09-18 | 2018-01-30 | 泰康保险集团股份有限公司 | 代码提交日志的检测方法、装置、介质及电子设备 |
CN108089984A (zh) * | 2017-12-14 | 2018-05-29 | 泰康保险集团股份有限公司 | 代码评审的实现方法、装置、存储介质及电子设备 |
CN108365985A (zh) * | 2018-02-07 | 2018-08-03 | 深圳壹账通智能科技有限公司 | 一种集群管理方法、装置、终端设备及存储介质 |
Non-Patent Citations (1)
Title |
---|
林若钦.《服务外包产教融合系列教材 基于Junit单元测试应用技术》.广州:华南理工大学出版社,2017,第206-217页. * |
Also Published As
Publication number | Publication date |
---|---|
CN109359028A (zh) | 2019-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109359028B (zh) | 代码质量监控方法、装置、计算机设备及存储介质 | |
US11568754B2 (en) | Guiding creation of an electronic survey | |
US10942733B2 (en) | Open-source-license analyzing method and apparatus | |
US9076072B2 (en) | System and method for web page rendering test automation suite | |
CN108446190B (zh) | 接口测试方法及装置 | |
US10362086B2 (en) | Method and system for automating submission of issue reports | |
US8316353B2 (en) | Problem analysis via matching contiguous stack trace lines to symptom rules | |
CN110837356B (zh) | 一种数据处理方法和装置 | |
EP3021232A1 (en) | System and method for curation of content | |
CN109858021B (zh) | 业务问题统计方法、装置、计算机设备及其存储介质 | |
US10922207B2 (en) | Method, apparatus, and computer-readable medium for maintaining visual consistency | |
CN110647523B (zh) | 数据质量的分析方法及装置、存储介质、电子设备 | |
CN112418813B (zh) | 基于智能解析识别的aeo资质智能评级管理系统、方法及存储介质 | |
CN105608065A (zh) | 一种图表生成方法和装置 | |
CN112364145A (zh) | 一种工单处理方法、装置、电子设备及存储介质 | |
US11715121B2 (en) | Computer system and method for electronic survey programming | |
US9104573B1 (en) | Providing relevant diagnostic information using ontology rules | |
CN113672497B (zh) | 无埋点事件的生成方法、装置、设备及存储介质 | |
CN116070315A (zh) | 建筑模型的审查方法、装置、设备及存储介质 | |
CN113901765A (zh) | 巡检报告生成方法、装置、设备及计算机可读存储介质 | |
US9275358B1 (en) | System, method, and computer program for automatically creating and submitting defect information associated with defects identified during a software development lifecycle to a defect tracking system | |
US20230080572A1 (en) | System and method to engineer user experience | |
US20240078001A1 (en) | Retargeting dashboard content as interactive data snapshots for collaboration platforms | |
CN117132254A (zh) | 邮件数据核查方法及装置 | |
US20220021634A1 (en) | Information linkage device, information linkage system, information linkage method, and program |
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 |