一种代码统计方法、装置、服务器、设备及可读介质与流程

文档序号:17357223发布日期:2019-04-09 21:47阅读:149来源:国知局
一种代码统计方法、装置、服务器、设备及可读介质与流程

本发明涉及应用程序代码统计技术领域,特别是一种代码统计方法、装置、服务器、设备及可读介质。



背景技术:

程序员的劳动量计算一直是一个全球公认的难题,一般来说采用代码量的统计来反映程序员的劳动量是相对准确的,但是现有技术中难以对程序员编写的代码量进行精确的统计,一些现有的统计方法采用将程序设计的程序复制到文档中采用统计行的方式进行统计,其效率低下,且会将已被删除的代码进行统计,准确度低,费时费力。

且现有技术中即使能统计代码量,也无法统计所有技术研发人员所编写的版本量、文件数等信息,难以有效的分析程序员的工作量、成长空间和绩效考核等。

即现有技术中存在如下技术缺陷:统计的人员代码数量准确性较差;统计的内容不够深入;使用者不够方便,需要安装特定的环境、客户端才能使用分析;海量数据统计时速率较差,影响用户体验。



技术实现要素:

本发明针对上述现有技术中的缺陷,提出了如下技术方案。

一种代码统计方法,该方法包括:

发送步骤,用户终端向服务器发送代码统计请求;

获取步骤,服务器用于根据所述统计请求获取代码量,并将所述代码量发送至用户终端;

展示步骤,将所述代码量在用户终端上进行展示。

更进一步地,所述用户终端为笔记本电脑、智能手机、便携式电脑或平板电脑。

更进一步地,所述代码统计请求包括用户id。

更进一步地,服务器用于根据所述统计请求获取代码量的操作为:服务器根据所述代码统计请求中的用户id查询数据库获得所述代码量。

更进一步地,所述数据库中存储有与用户id对应的代码量。

更进一步地,定时将用户编写的代码量进行统计后更新至所述数据库。

更进一步地,所述定时将用户编写的代码量进行统计后更新至所述数据库的具体操作包括:

发起步骤,用于定时发起php请求,使用php查询当前svn的所有项目;

查询步骤,用于php调用svnshell查询每个项目一时间阈值内的日志记录信息;

分析步骤,用于对返回的日志记录进行分析,提取时间阈值内的所有用户svn提交的版本信息;

差异文件获取步骤,用于php调用svnshell根据所述版本信息生成每个用户与前一版本的差异文件并下载到本地;

计算步骤,用于php调用linuxshell命令分析差异文件内容,计算所述版本信息对应的代码量;

更新步骤,用于将所述代码量基于用户id更新至数据库。

更进一步地,所述版本信息为版本号。

更进一步地,如果用户在所述时间阈值内编写了多个版本的代码,重复执行差异文件获取步骤和计算步骤直到该用户的所有版本的代码量统计完毕。

本发明还提出了另一种一种代码统计方法,该方法包括:

发起步骤,用于定时发起php请求,使用php查询当前svn的所有项目;

查询步骤,用于php调用svnshell查询每个项目一时间阈值内的日志记录信息;

分析步骤,用于对返回的日志记录进行分析,提取时间阈值内的所有用户svn提交的版本信息;

差异文件获取步骤,用于php调用svnshell根据所述版本信息生成每个用户与前一版本的差异文件并下载到本地;

计算步骤,用于php调用linuxshell命令分析差异文件内容,计算所述版本信息对应的代码量;

更新步骤,用于将所述代码量基于用户id更新至数据库。

更进一步地,所述版本信息为版本号。

更进一步地,如果用户在所述时间阈值内编写了多个版本的代码,重复执行差异文件获取步骤和计算步骤直到该用户的所有版本的代码量统计完毕。

本发明还提出了一种代码统计装置,该装置包括:

发起单元,用于定时发起php请求,使用php查询当前svn的所有项目;

查询单元,用于php调用svnshell查询每个项目一时间阈值内的日志记录信息;

分析单元,用于对返回的日志记录进行分析,提取时间阈值内的所有用户svn提交的版本信息;

差异文件获取单元,用于php调用svnshell根据所述版本信息生成每个用户与前一版本的差异文件并下载到本地;

计算单元,用于php调用linuxshell命令分析差异文件内容,计算所述版本信息对应的代码量;

更新单元,用于将所述代码量基于用户id更新至数据库。

更进一步地,所述版本信息为版本号。

更进一步地,如果用户在所述时间阈值内编写了多个版本的代码,差异文件获取装置和计算装置重复执行相应的操作直到该用户的所有版本的代码量统计完毕。

本发明还提出了一种服务器,包括上述任一项的装置。

本发明还提出了一种代码统计设备,所述设备包括处理器、存储器,所述处理器与所述存储器通过总线相连接,所述存储器中存储机器可读代码,所述处理器执行存储器中的机器可读代码可执行上述之任一项的方法。

本发明还提出了一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序代码,当所述计算机程序代码被计算机执行时可执行上述之任一的方法。

本发明的技术效果为:提出了代码统计方法,通过定时更新提高了统计效率,实现了统计的自动化,创造性的使用php调用svnshell查询项目信息,并使用php调用linuxshell命令分析差异文件,使得统计准确。

附图说明

图1是本发明的一种代码统计方法的流程图。

图2是本发明的另一实施例的一种代码统计方法的流程图。

图3是本发明的代码统计设备的结构示意图。

图4是本发明的代码统计装置的结构示意图。

具体实施方式

下面结合附图1-4进行具体说明。

图1示出了一种代码统计方法,该方法包括:

s11、发送步骤,用户终端向服务器发送代码统计请求;

s12、获取步骤,服务器用于根据所述统计请求获取代码量,并将所述代码量发送至用户终端;

s13、展示步骤,将所述代码量在用户终端上进行展示。

用户终端与服务器通过无线或有线网络进行连接,所述用户终端为笔记本电脑、智能手机、便携式电脑或平板电脑等,也可以是虚拟机。

步骤s11中发送的所述代码统计请求包括用户id,对每个程序员(用户)来说其是唯一的,服务器根据所述代码统计请求中的用户id查询数据库获得所述代码量。

服务器上安装有数据库软件,如sqlserver等常用的数据库软件。

展示步骤s13中可通过第三方插件echart将数据生成可视化图形输出,便于查看对比分析。

所述数据库中存储有与用户id对应的代码量,数据库中还存储有与用户id对应的版本信息、开发文档等信息。

定时将用户编写的代码量进行统计后更新至所述数据库,不仅仅可以统计代码量,还可以统计版本信息及开发文档等信息。

将用户编写的代码量(还可以包括版本信息、开发文档等)进行统计后更新至所述数据库,这是本发明的核心发明点,通过定时更新提高了统计效率,实现了统计的自动化,创造性的使用php调用svnshell查询项目信息,并使用php调用linuxshell命令分析差异文件,使得统计准确,所述定时将用户编写的代码量进行统计后更新至所述数据库的具体操作包括:

发起步骤,用于定时发起php请求,使用php查询当前svn的所有项目;

查询步骤,用于php调用svnshell查询每个项目一时间阈值内的日志记录信息;

分析步骤,用于对返回的日志记录进行分析,提取时间阈值内的所有用户svn提交的版本信息;

差异文件获取步骤,用于php调用svnshell根据所述版本信息生成每个用户与前一版本的差异文件并下载到本地;

计算步骤,用于php调用linuxshell命令分析差异文件内容,计算所述版本信息对应的代码量;

更新步骤,用于将所述代码量基于用户id更新至数据库。

所述版本信息为版本号。如果用户在所述时间阈值内编写了多个版本的代码,重复执行差异文件获取步骤和计算步骤直到该用户的所有版本的代码量统计完毕。即用户一定时间阈值内编写了多个版本的软件,也可以准确的统计其代码量。

在统计时,带有“+”和“+++”的内容为有效更新内容,标记有“删除”、“空格”均不计算为更新的代码行数。

svn全名subversion,即版本控制系统。svn是subversion的简称,是一个开放源代码的版本控制系统,相较于rcs、cvs,它采用了分支管理系统。

图2示出了另一种一种代码统计方法,该方法包括:

s21、发起步骤,用于定时发起php请求,使用php查询当前svn的所有项目;

s22、查询步骤,用于php调用svnshell查询每个项目一时间阈值内的日志记录信息;

s23、分析步骤,用于对返回的日志记录进行分析,提取时间阈值内的所有用户svn提交的版本信息;

s24、差异文件获取步骤,用于php调用svnshell根据所述版本信息生成每个用户与前一版本的差异文件并下载到本地;

s25、计算步骤,用于php调用linuxshell命令分析差异文件内容,计算所述版本信息对应的代码量;

s26、更新步骤,用于将所述代码量基于用户id更新至数据库。

图2所示的方法是本发明的核心发明点,通过定时更新提高了统计效率,实现了统计的自动化,创造性的使用php调用svnshell查询项目信息,并使用php调用linuxshell命令分析差异文件,使得统计准确。

所述版本信息为版本号;如果用户在所述时间阈值内编写了多个版本的代码,重复执行差异文件获取步骤和计算步骤直到该用户的所有版本的代码量统计完毕。即用户一定时间阈值内编写了多个版本的软件,也可以准确的统计其代码量。

图3示出了一种代码统计设备,包括处理器31、存储器32和显示屏33,当然该设备还可以包括其他部件,如wifi模块、蓝牙模块、usb接口等等其他需要使用的接口,在此没有示出。处理器31分别与存储器32和显示屏33通过总线相连接,存储器32中可以存储该设备所执行的程序及数据等,处理器31可以执行存储器32中的程序,执行相应的操作,如上述图1-2中所示出的方法。本发明中的设备可以为服务器、台式主机、平板电脑、笔记本电脑等等,但不限于这些设备。

图4示出了一种代码统计装置,该装置包括:

发起单元41,用于定时发起php请求,使用php查询当前svn的所有项目;

查询单元42,用于php调用svnshell查询每个项目一时间阈值内的日志记录信息;

分析单元43,用于对返回的日志记录进行分析,提取时间阈值内的所有用户svn提交的版本信息;

差异文件获取单元44,用于php调用svnshell根据所述版本信息生成每个用户与前一版本的差异文件并下载到本地;

计算单元45,用于php调用linuxshell命令分析差异文件内容,计算所述版本信息对应的代码量;

更新单元46,用于将所述代码量基于用户id更新至数据库。

所述版本信息为版本号。如果用户在所述时间阈值内编写了多个版本的代码,差异文件获取装置和计算装置重复执行相应的操作直到该用户的所有版本的代码量统计完毕。即用户一定时间阈值内编写了多个版本的软件,也可以准确的统计其代码量。

上述所述的时间阈值可以是一天、一周、4个小时等等,用户可以自定义。

可以将图4示出的装置设置在服务器中,该服务器向用户提供一个url,用户通过登录该url进行代码量的查询。

本发明图1-2所述的方法,可以通过计算机程序实现,也可以将计算机程序存储在存储介质上,处理器从存储介质上读取计算机程序,并执行相应的方法。

最后所应说明的是:以上实施例仅以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1