CN109359028A - 代码质量监控方法、装置、计算机设备及存储介质 - Google Patents
代码质量监控方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN109359028A CN109359028A CN201810958664.7A CN201810958664A CN109359028A CN 109359028 A CN109359028 A CN 109359028A CN 201810958664 A CN201810958664 A CN 201810958664A CN 109359028 A CN109359028 A CN 109359028A
- Authority
- CN
- China
- Prior art keywords
- code
- log
- standardization
- lack
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012544 monitoring process Methods 0.000 title claims abstract description 50
- 238000003860 storage Methods 0.000 title claims abstract description 25
- 238000001514 detection method Methods 0.000 claims abstract description 92
- 238000012986 modification Methods 0.000 claims abstract description 40
- 230000004048 modification Effects 0.000 claims abstract description 40
- 230000008569 process Effects 0.000 claims abstract description 20
- 238000012163 sequencing technique Methods 0.000 claims abstract description 8
- 230000000007 visual effect Effects 0.000 claims description 40
- 238000004519 manufacturing process Methods 0.000 claims description 39
- 238000004590 computer program Methods 0.000 claims description 18
- 238000012360 testing method Methods 0.000 claims description 14
- 238000012806 monitoring device Methods 0.000 claims description 12
- 238000004458 analytical method Methods 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 4
- 238000004886 process control Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 23
- 238000011161 development Methods 0.000 description 8
- 230000018109 developmental process Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000012552 review Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000003908 quality control method Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 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 (10)
1.一种代码质量监控方法,其特征在于,包括SVN服务器执行的如下步骤:
获取SVN客户端发送的代码提交请求,所述代码提交请求包括提交人ID、提交时间和源代码;
基于所述代码提交请求,获取与所述代码提交请求对应的代码提交日志;
采用SVN监控任务进程对所述代码提交日志进行监控,按照所述提交时间的先后顺序对所述代码提交日志进行排列,获取代码提交日志队列;
采用代码规范检测工具按照顺序对所述代码提交日志队列中每个代码提交日志对应的源代码进行检测;
当有代码提交日志对应的源代码检测出不规范代码时,基于所述不规范代码生成修改提示信息,并将所述修改提示信息发送给所述提交人ID对应的SVN客户端,以使所述SVN客户端显示所述修改提示信息。
2.如权利要求1所述的代码质量监控方法,其特征在于,所述将所述修改提示信息发送给所述提交人ID对应的SVN客户端,包括:
将所述不规范代码和对应的代码检测意见添加到邮件模板中预设的位置,生成修改提醒邮件;
根据所述提交人ID获取与所述提交人ID对应的提交人邮箱,将所述修改提醒邮件发送给所述提交人邮箱。
3.如权利要求1所述的代码质量监控方法,其特征在于,所述SVN服务器上部署有分布式发布订阅消息***和日志分析工具;
所述基于所述代码提交请求,获取与所述代码提交请求对应的代码提交日志,包括:
通过所述分布式发布订阅消息***,获取原始日志信息;
通过所述日志分析工具对所述原始日志信息进行分类,获取携带有代码提交标识对应的代码提交日志。
4.如权利要求1所述的代码质量监控方法,其特征在于,所述代码规范检测工具包括通用代码检测规则和专用代码检测规则;
所述采用代码规范检测工具按照顺序对所述代码提交日志队列中每个代码提交日志对应的源代码进行检测,包括:
采用通用代码检测规则依照所述代码提交日志队列的顺序,对所述源代码中的所有代码块进行第一次检测,获取第一检测结果;
采用专用代码检测规则依照所述代码提交日志队列的顺序,对所述源代码中的携带有特殊标签的代码块进行第二次检测,获取第二检测结果。
5.如权利要求1所述的代码质量监控方法,其特征在于,所述代码质量监控方法还包括:
获取所述不规范代码对应的代码提交日志,根据所述代码提交日志中记录的提交人信息、提交时间和不规范类别中至少一个维度,对所述不规范代码出现的次数进行统计,构建可视化图表。
6.如权利要求5所述的代码质量监控方法,其特征在于,所述构建可视化图表,包括:
获取可视化图表制作请求,所述可视化图表制作请求中包括图表制作参数和图表类型;
基于图表制作参数和图表类型,采用图表转换工具将所述图表制作参数转换成与所述图表类型相对应的可视化图表。
7.一种代码质量监控装置,其特征在于,包括:
代码提交请求获取模块,用于获取SVN客户端发送的代码提交请求,所述代码提交请求包括提交人ID、提交时间和源代码;
代码提交日志获取模块,用于基于所述代码提交请求,获取与所述代码提交请求对应的代码提交日志;
代码提交日志队列获取模块,用于采用SVN监控任务进程对所述代码提交日志进行监控,按照所述提交时间的先后顺序对所述代码提交日志进行排列,获取代码提交日志队列;
源代码检测模块,用于采用代码规范检测工具按照顺序对所述代码提交日志队列中每个代码提交日志对应的源代码进行检测;
修改提示信息发送模块,用于当有代码提交日志对应的源代码检测出不规范代码时,基于所述不规范代码生成修改提示信息,并将所述修改提示信息发送给所述提交人ID对应的SVN客户端,以使所述SVN客户端显示所述修改提示信息。
8.如权利要求7所述的代码质量监控装置,其特征在于,源代码检测模块,包括:
采用通用代码检测规则依照所述代码提交日志队列的顺序,对所述源代码中的所有代码块进行第一次检测,获取第一检测结果;
采用专用代码检测规则依照所述代码提交日志队列的顺序,对所述源代码中的携带有特殊标签的代码块进行第二次检测,获取第二检测结果。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述代码质量监控方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述代码质量监控方法的步骤。
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 true CN109359028A (zh) | 2019-02-19 |
CN109359028B 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) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110231937A (zh) * | 2019-05-20 | 2019-09-13 | 平安科技(深圳)有限公司 | 脚本缺陷扫描方法、装置、计算机设备和存储介质 |
CN110348714A (zh) * | 2019-06-28 | 2019-10-18 | 成都场量科技有限公司 | 基于代码日志对研发人员的产出水平评价的方法 |
CN110502427A (zh) * | 2019-07-08 | 2019-11-26 | 深圳壹账通智能科技有限公司 | 代码可读性检查方法、装置以及服务器 |
CN110825427A (zh) * | 2019-10-12 | 2020-02-21 | 重庆金融资产交易所有限责任公司 | 一种代码管理方法、装置、服务器及存储介质 |
CN110888756A (zh) * | 2019-11-19 | 2020-03-17 | 支付宝(杭州)信息技术有限公司 | 一种诊断日志生成方法及装置 |
CN111125719A (zh) * | 2019-12-25 | 2020-05-08 | 中信百信银行股份有限公司 | 一种提升代码安全检测效率的方法、装置、计算机设备、和可读存储介质 |
CN111190824A (zh) * | 2019-12-28 | 2020-05-22 | 中国平安人寿保险股份有限公司 | 监测方法、装置、终端设备及存储介质 |
CN111338940A (zh) * | 2020-02-21 | 2020-06-26 | 中国建设银行股份有限公司 | 代码处理方法、装置及*** |
CN111581103A (zh) * | 2020-05-11 | 2020-08-25 | 成都库珀区块链科技有限公司 | 一种数据检测的方法及相关装置 |
CN112256575A (zh) * | 2020-10-22 | 2021-01-22 | 深圳我家云网络科技有限公司 | 一种代码质量管理方法、***及相关设备 |
CN112269594A (zh) * | 2020-10-30 | 2021-01-26 | 北京首都在线科技股份有限公司 | 项目代码质量评估方法、装置、设备及存储介质 |
CN112486566A (zh) * | 2020-10-23 | 2021-03-12 | 百果园技术(新加坡)有限公司 | 代码文件处理方法、装置、设备及存储介质 |
CN112650663A (zh) * | 2019-10-11 | 2021-04-13 | 上海哔哩哔哩科技有限公司 | 一种代码处理方法、装置、设备及介质 |
CN113419773A (zh) * | 2021-05-21 | 2021-09-21 | 北京达佳互联信息技术有限公司 | 日志文件的生成方法、装置、电子设备、存储介质和产品 |
CN113672517A (zh) * | 2021-09-06 | 2021-11-19 | 网易(杭州)网络有限公司 | 一种代码检查方法、装置、电子设备和介质 |
CN115269444A (zh) * | 2022-09-30 | 2022-11-01 | 平安银行股份有限公司 | 代码静态检测方法、装置及服务器 |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100088670A1 (en) * | 2008-10-02 | 2010-04-08 | Facetime Communications, Inc. | Techniques for dynamic updating and loading of custom application detectors |
US20120159420A1 (en) * | 2010-12-16 | 2012-06-21 | Sap Ag | Quality on Submit Process |
CN103092761A (zh) * | 2013-02-05 | 2013-05-08 | 烽火通信科技股份有限公司 | 基于差异信息文件识别和检查修改代码块的方法及装置 |
CN103577304A (zh) * | 2012-08-10 | 2014-02-12 | 百度在线网络技术(北京)有限公司 | 一种代码动态分析的方法及装置 |
CN103729195A (zh) * | 2014-01-15 | 2014-04-16 | 北京奇虎科技有限公司 | 一种软件版本的控制方法及*** |
US20140196010A1 (en) * | 2013-01-05 | 2014-07-10 | Vmware, Inc. | Automatic code review and code reviewer recommendation |
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 | 深圳壹账通智能科技有限公司 | 一种集群管理方法、装置、终端设备及存储介质 |
-
2018
- 2018-08-22 CN CN201810958664.7A patent/CN109359028B/zh active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100088670A1 (en) * | 2008-10-02 | 2010-04-08 | Facetime Communications, Inc. | Techniques for dynamic updating and loading of custom application detectors |
US20120159420A1 (en) * | 2010-12-16 | 2012-06-21 | Sap Ag | Quality on Submit Process |
CN103577304A (zh) * | 2012-08-10 | 2014-02-12 | 百度在线网络技术(北京)有限公司 | 一种代码动态分析的方法及装置 |
US20140196010A1 (en) * | 2013-01-05 | 2014-07-10 | Vmware, Inc. | Automatic code review and code reviewer recommendation |
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单元测试应用技术》", 30 September 2017, 广州:华南理工大学出版社, pages: 206 - 217 * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020232883A1 (zh) * | 2019-05-20 | 2020-11-26 | 平安科技(深圳)有限公司 | 脚本缺陷扫描方法、装置、计算机设备和存储介质 |
CN110231937A (zh) * | 2019-05-20 | 2019-09-13 | 平安科技(深圳)有限公司 | 脚本缺陷扫描方法、装置、计算机设备和存储介质 |
CN110348714A (zh) * | 2019-06-28 | 2019-10-18 | 成都场量科技有限公司 | 基于代码日志对研发人员的产出水平评价的方法 |
CN110502427A (zh) * | 2019-07-08 | 2019-11-26 | 深圳壹账通智能科技有限公司 | 代码可读性检查方法、装置以及服务器 |
CN112650663A (zh) * | 2019-10-11 | 2021-04-13 | 上海哔哩哔哩科技有限公司 | 一种代码处理方法、装置、设备及介质 |
CN110825427A (zh) * | 2019-10-12 | 2020-02-21 | 重庆金融资产交易所有限责任公司 | 一种代码管理方法、装置、服务器及存储介质 |
CN110825427B (zh) * | 2019-10-12 | 2024-01-26 | 天航长鹰(江苏)科技有限公司 | 一种代码管理方法、装置、服务器及存储介质 |
CN110888756A (zh) * | 2019-11-19 | 2020-03-17 | 支付宝(杭州)信息技术有限公司 | 一种诊断日志生成方法及装置 |
CN111125719A (zh) * | 2019-12-25 | 2020-05-08 | 中信百信银行股份有限公司 | 一种提升代码安全检测效率的方法、装置、计算机设备、和可读存储介质 |
CN111125719B (zh) * | 2019-12-25 | 2023-10-24 | 中信百信银行股份有限公司 | 一种提升代码安全检测效率的方法、装置、计算机设备、和可读存储介质 |
CN111190824A (zh) * | 2019-12-28 | 2020-05-22 | 中国平安人寿保险股份有限公司 | 监测方法、装置、终端设备及存储介质 |
CN111190824B (zh) * | 2019-12-28 | 2024-04-26 | 中国平安人寿保险股份有限公司 | 监测方法、装置、终端设备及存储介质 |
CN111338940A (zh) * | 2020-02-21 | 2020-06-26 | 中国建设银行股份有限公司 | 代码处理方法、装置及*** |
CN111581103A (zh) * | 2020-05-11 | 2020-08-25 | 成都库珀区块链科技有限公司 | 一种数据检测的方法及相关装置 |
CN112256575A (zh) * | 2020-10-22 | 2021-01-22 | 深圳我家云网络科技有限公司 | 一种代码质量管理方法、***及相关设备 |
CN112486566A (zh) * | 2020-10-23 | 2021-03-12 | 百果园技术(新加坡)有限公司 | 代码文件处理方法、装置、设备及存储介质 |
CN112269594A (zh) * | 2020-10-30 | 2021-01-26 | 北京首都在线科技股份有限公司 | 项目代码质量评估方法、装置、设备及存储介质 |
CN113419773A (zh) * | 2021-05-21 | 2021-09-21 | 北京达佳互联信息技术有限公司 | 日志文件的生成方法、装置、电子设备、存储介质和产品 |
CN113419773B (zh) * | 2021-05-21 | 2023-11-28 | 北京达佳互联信息技术有限公司 | 日志文件的生成方法、装置、电子设备、存储介质和产品 |
CN113672517A (zh) * | 2021-09-06 | 2021-11-19 | 网易(杭州)网络有限公司 | 一种代码检查方法、装置、电子设备和介质 |
CN115269444A (zh) * | 2022-09-30 | 2022-11-01 | 平安银行股份有限公司 | 代码静态检测方法、装置及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN109359028B (zh) | 2024-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109359028A (zh) | 代码质量监控方法、装置、计算机设备及存储介质 | |
US8990763B2 (en) | User experience maturity level assessment | |
US8589790B2 (en) | Rule-based validation of websites | |
US9836502B2 (en) | Panel templates for visualization of data within an interactive dashboard | |
Zarour et al. | A research on DevOps maturity models | |
US8712812B2 (en) | Strategic planning management | |
US20150317295A1 (en) | Automating Data Entry For Fields in Electronic Documents | |
US11120200B1 (en) | Capturing unstructured information in application pages | |
CN110309498B (zh) | 基于参数生成审查报告的实现方法及装置,以及利用其生成审查报告的方法 | |
US10331442B2 (en) | Visual design evaluation | |
KR20130097252A (ko) | 소스 코드 분석에 의한 응용 프로그램 분석을 위한 방법 및 장치 | |
Muscat | Accessibility and performance evaluation of E-services in Oman using Web diagnostic tools | |
Kiesel et al. | WASP: web archiving and search personalized | |
Liu et al. | Navigating the Environmental, Social, and Governance (ESG) landscape: constructing a robust and reliable scoring engine-insights into Data Source Selection, Indicator Determination, Weighting and Aggregation Techniques, and Validation Processes for Comprehensive ESG Scoring Systems | |
US10817362B1 (en) | Automatic contextualization for in-situ data issue reporting, presentation and resolution | |
Strimling | Beyond accuracy: What documentation quality means to readers | |
Umemiya et al. | National GHG inventory capacity in developing countries–a global assessment of progress | |
CN107894940A (zh) | 一种日志分析装置及方法 | |
CN111027884A (zh) | 房地产业务检测方法、装置、计算机设备和存储介质 | |
TW200939140A (en) | System and method for maintaining and managing facility and equipment using radio frequency identification | |
US20230080572A1 (en) | System and method to engineer user experience | |
Chomal et al. | Software template for evaluating and scoring software project documentations | |
Klammer et al. | A lightweight customized build chain visualization approach applied in industry | |
Hermanto et al. | Development of Multi Standard Information Technology Governance Audit Tool with SDLC Approach | |
US20230214316A1 (en) | System and method for autonomous cognitive test stratagem (acts) |
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 |