CN109597642A - 一种代码统计方法、装置、服务器、设备及可读介质 - Google Patents
一种代码统计方法、装置、服务器、设备及可读介质 Download PDFInfo
- Publication number
- CN109597642A CN109597642A CN201710919922.6A CN201710919922A CN109597642A CN 109597642 A CN109597642 A CN 109597642A CN 201710919922 A CN201710919922 A CN 201710919922A CN 109597642 A CN109597642 A CN 109597642A
- Authority
- CN
- China
- Prior art keywords
- code
- user
- size
- php
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Abstract
本发明提供了一种代码统计方法、装置、服务器、设备及可读介质,该方法包括:发送步骤,用户终端向服务器发送代码统计请求;获取步骤,服务器用于根据所述统计请求获取代码量,并将所述代码量发送至用户终端;展示步骤,将所述代码量在用户终端上进行展示。本发明提出了代码统计方法,通过定时更新提高了统计效率,实现了统计的自动化,创造性的使用php调用svn shell查询项目信息,并使用php调用linux shell命令分析差异文件,使得统计准确。
Description
技术领域
本发明涉及应用程序代码统计技术领域,特别是一种代码统计方法、装置、服务器、设备及可读介质。
背景技术
程序员的劳动量计算一直是一个全球公认的难题,一般来说采用代码量的统计来反映程序员的劳动量是相对准确的,但是现有技术中难以对程序员编写的代码量进行精确的统计,一些现有的统计方法采用将程序设计的程序复制到文档中采用统计行的方式进行统计,其效率低下,且会将已被删除的代码进行统计,准确度低,费时费力。
且现有技术中即使能统计代码量,也无法统计所有技术研发人员所编写的版本量、文件数等信息,难以有效的分析程序员的工作量、成长空间和绩效考核等。
即现有技术中存在如下技术缺陷:统计的人员代码数量准确性较差;统计的内容不够深入;使用者不够方便,需要安装特定的环境、客户端才能使用分析;海量数据统计时速率较差,影响用户体验。
发明内容
本发明针对上述现有技术中的缺陷,提出了如下技术方案。
一种代码统计方法,该方法包括:
发送步骤,用户终端向服务器发送代码统计请求;
获取步骤,服务器用于根据所述统计请求获取代码量,并将所述代码量发送至用户终端;
展示步骤,将所述代码量在用户终端上进行展示。
更进一步地,所述用户终端为笔记本电脑、智能手机、便携式电脑或平板电脑。
更进一步地,所述代码统计请求包括用户ID。
更进一步地,服务器用于根据所述统计请求获取代码量的操作为:服务器根据所述代码统计请求中的用户ID查询数据库获得所述代码量。
更进一步地,所述数据库中存储有与用户ID对应的代码量。
更进一步地,定时将用户编写的代码量进行统计后更新至所述数据库。
更进一步地,所述定时将用户编写的代码量进行统计后更新至所述数据库的具体操作包括:
发起步骤,用于定时发起php请求,使用php查询当前svn的所有项目;
查询步骤,用于php调用svn shell查询每个项目一时间阈值内的日志记录信息;
分析步骤,用于对返回的日志记录进行分析,提取时间阈值内的所有用户svn提交的版本信息;
差异文件获取步骤,用于php调用svn shell根据所述版本信息生成每个用户与前一版本的差异文件并下载到本地;
计算步骤,用于php调用linux shell命令分析差异文件内容,计算所述版本信息对应的代码量;
更新步骤,用于将所述代码量基于用户ID更新至数据库。
更进一步地,所述版本信息为版本号。
更进一步地,如果用户在所述时间阈值内编写了多个版本的代码,重复执行差异文件获取步骤和计算步骤直到该用户的所有版本的代码量统计完毕。
本发明还提出了另一种一种代码统计方法,该方法包括:
发起步骤,用于定时发起php请求,使用php查询当前svn的所有项目;
查询步骤,用于php调用svn shell查询每个项目一时间阈值内的日志记录信息;
分析步骤,用于对返回的日志记录进行分析,提取时间阈值内的所有用户svn提交的版本信息;
差异文件获取步骤,用于php调用svn shell根据所述版本信息生成每个用户与前一版本的差异文件并下载到本地;
计算步骤,用于php调用linux shell命令分析差异文件内容,计算所述版本信息对应的代码量;
更新步骤,用于将所述代码量基于用户ID更新至数据库。
更进一步地,所述版本信息为版本号。
更进一步地,如果用户在所述时间阈值内编写了多个版本的代码,重复执行差异文件获取步骤和计算步骤直到该用户的所有版本的代码量统计完毕。
本发明还提出了一种代码统计装置,该装置包括:
发起单元,用于定时发起php请求,使用php查询当前svn的所有项目;
查询单元,用于php调用svn shell查询每个项目一时间阈值内的日志记录信息;
分析单元,用于对返回的日志记录进行分析,提取时间阈值内的所有用户svn提交的版本信息;
差异文件获取单元,用于php调用svn shell根据所述版本信息生成每个用户与前一版本的差异文件并下载到本地;
计算单元,用于php调用linux shell命令分析差异文件内容,计算所述版本信息对应的代码量;
更新单元,用于将所述代码量基于用户ID更新至数据库。
更进一步地,所述版本信息为版本号。
更进一步地,如果用户在所述时间阈值内编写了多个版本的代码,差异文件获取装置和计算装置重复执行相应的操作直到该用户的所有版本的代码量统计完毕。
本发明还提出了一种服务器,包括上述任一项的装置。
本发明还提出了一种代码统计设备,所述设备包括处理器、存储器,所述处理器与所述存储器通过总线相连接,所述存储器中存储机器可读代码,所述处理器执行存储器中的机器可读代码可执行上述之任一项的方法。
本发明还提出了一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序代码,当所述计算机程序代码被计算机执行时可执行上述之任一的方法。
本发明的技术效果为:提出了代码统计方法,通过定时更新提高了统计效率,实现了统计的自动化,创造性的使用php调用svn shell查询项目信息,并使用php调用linuxshell命令分析差异文件,使得统计准确。
附图说明
图1是本发明的一种代码统计方法的流程图。
图2是本发明的另一实施例的一种代码统计方法的流程图。
图3是本发明的代码统计设备的结构示意图。
图4是本发明的代码统计装置的结构示意图。
具体实施方式
下面结合附图1-4进行具体说明。
图1示出了一种代码统计方法,该方法包括:
S11、发送步骤,用户终端向服务器发送代码统计请求;
S12、获取步骤,服务器用于根据所述统计请求获取代码量,并将所述代码量发送至用户终端;
S13、展示步骤,将所述代码量在用户终端上进行展示。
用户终端与服务器通过无线或有线网络进行连接,所述用户终端为笔记本电脑、智能手机、便携式电脑或平板电脑等,也可以是虚拟机。
步骤S11中发送的所述代码统计请求包括用户ID,对每个程序员(用户)来说其是唯一的,服务器根据所述代码统计请求中的用户ID查询数据库获得所述代码量。
服务器上安装有数据库软件,如Sql server等常用的数据库软件。
展示步骤S13中可通过第三方插件echart将数据生成可视化图形输出,便于查看对比分析。
所述数据库中存储有与用户ID对应的代码量,数据库中还存储有与用户ID对应的版本信息、开发文档等信息。
定时将用户编写的代码量进行统计后更新至所述数据库,不仅仅可以统计代码量,还可以统计版本信息及开发文档等信息。
将用户编写的代码量(还可以包括版本信息、开发文档等)进行统计后更新至所述数据库,这是本发明的核心发明点,通过定时更新提高了统计效率,实现了统计的自动化,创造性的使用php调用svn shell查询项目信息,并使用php调用linux shell命令分析差异文件,使得统计准确,所述定时将用户编写的代码量进行统计后更新至所述数据库的具体操作包括:
发起步骤,用于定时发起php请求,使用php查询当前svn的所有项目;
查询步骤,用于php调用svn shell查询每个项目一时间阈值内的日志记录信息;
分析步骤,用于对返回的日志记录进行分析,提取时间阈值内的所有用户svn提交的版本信息;
差异文件获取步骤,用于php调用svn shell根据所述版本信息生成每个用户与前一版本的差异文件并下载到本地;
计算步骤,用于php调用linux shell命令分析差异文件内容,计算所述版本信息对应的代码量;
更新步骤,用于将所述代码量基于用户ID更新至数据库。
所述版本信息为版本号。如果用户在所述时间阈值内编写了多个版本的代码,重复执行差异文件获取步骤和计算步骤直到该用户的所有版本的代码量统计完毕。即用户一定时间阈值内编写了多个版本的软件,也可以准确的统计其代码量。
在统计时,带有“+”和“+++”的内容为有效更新内容,标记有“删除”、“空格”均不计算为更新的代码行数。
SVN全名Subversion,即版本控制系统。SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统。
图2示出了另一种一种代码统计方法,该方法包括:
S21、发起步骤,用于定时发起php请求,使用php查询当前svn的所有项目;
S22、查询步骤,用于php调用svn shell查询每个项目一时间阈值内的日志记录信息;
S23、分析步骤,用于对返回的日志记录进行分析,提取时间阈值内的所有用户svn提交的版本信息;
S24、差异文件获取步骤,用于php调用svn shell根据所述版本信息生成每个用户与前一版本的差异文件并下载到本地;
S25、计算步骤,用于php调用linux shell命令分析差异文件内容,计算所述版本信息对应的代码量;
S26、更新步骤,用于将所述代码量基于用户ID更新至数据库。
图2所示的方法是本发明的核心发明点,通过定时更新提高了统计效率,实现了统计的自动化,创造性的使用php调用svn shell查询项目信息,并使用php调用linux shell命令分析差异文件,使得统计准确。
所述版本信息为版本号;如果用户在所述时间阈值内编写了多个版本的代码,重复执行差异文件获取步骤和计算步骤直到该用户的所有版本的代码量统计完毕。即用户一定时间阈值内编写了多个版本的软件,也可以准确的统计其代码量。
图3示出了一种代码统计设备,包括处理器31、存储器32和显示屏33,当然该设备还可以包括其他部件,如wifi模块、蓝牙模块、USB接口等等其他需要使用的接口,在此没有示出。处理器31分别与存储器32和显示屏33通过总线相连接,存储器32中可以存储该设备所执行的程序及数据等,处理器31可以执行存储器32中的程序,执行相应的操作,如上述图1-2中所示出的方法。本发明中的设备可以为服务器、台式主机、平板电脑、笔记本电脑等等,但不限于这些设备。
图4示出了一种代码统计装置,该装置包括:
发起单元41,用于定时发起php请求,使用php查询当前svn的所有项目;
查询单元42,用于php调用svn shell查询每个项目一时间阈值内的日志记录信息;
分析单元43,用于对返回的日志记录进行分析,提取时间阈值内的所有用户svn提交的版本信息;
差异文件获取单元44,用于php调用svn shell根据所述版本信息生成每个用户与前一版本的差异文件并下载到本地;
计算单元45,用于php调用linux shell命令分析差异文件内容,计算所述版本信息对应的代码量;
更新单元46,用于将所述代码量基于用户ID更新至数据库。
所述版本信息为版本号。如果用户在所述时间阈值内编写了多个版本的代码,差异文件获取装置和计算装置重复执行相应的操作直到该用户的所有版本的代码量统计完毕。即用户一定时间阈值内编写了多个版本的软件,也可以准确的统计其代码量。
上述所述的时间阈值可以是一天、一周、4个小时等等,用户可以自定义。
可以将图4示出的装置设置在服务器中,该服务器向用户提供一个URL,用户通过登录该URL进行代码量的查询。
本发明图1-2所述的方法,可以通过计算机程序实现,也可以将计算机程序存储在存储介质上,处理器从存储介质上读取计算机程序,并执行相应的方法。
最后所应说明的是:以上实施例仅以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解:依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
Claims (18)
1.一种代码统计方法,其特征在于,该方法包括:
发送步骤,用户终端向服务器发送代码统计请求;
获取步骤,服务器用于根据所述统计请求获取代码量,并将所述代码量发送至用户终端;
展示步骤,将所述代码量在用户终端上进行展示。
2.根据权利要求1的方法,其特征在于,所述用户终端为笔记本电脑、智能手机、便携式电脑或平板电脑。
3.根据权利要求2的方法,其特征在于,所述代码统计请求包括用户ID。
4.根据权利要求3的方法,其特征在于,服务器用于根据所述统计请求获取代码量的操作为:服务器根据所述代码统计请求中的用户ID查询数据库获得所述代码量。
5.根据权利要求4的方法,其特征在于,所述数据库中存储有与用户ID对应的代码量。
6.根据权利要求5的方法,其特征在于,定时将用户编写的代码量进行统计后更新至所述数据库。
7.根据权利要求6的方法,其特征在于,所述定时将用户编写的代码量进行统计后更新至所述数据库的具体操作包括:
发起步骤,用于定时发起php请求,使用php查询当前svn的所有项目;
查询步骤,用于php调用svn shell查询每个项目一时间阈值内的日志记录信息;
分析步骤,用于对返回的日志记录进行分析,提取时间阈值内的所有用户svn提交的版本信息;
差异文件获取步骤,用于php调用svn shell根据所述版本信息生成每个用户与前一版本的差异文件并下载到本地;
计算步骤,用于php调用linux shell命令分析差异文件内容,计算所述版本信息对应的代码量;
更新步骤,用于将所述代码量基于用户ID更新至数据库。
8.根据权利要求7的方法,其特征在于,所述版本信息为版本号。
9.根据权利要求7的方法,其特征在于,如果用户在所述时间阈值内编写了多个版本的代码,重复执行差异文件获取步骤和计算步骤直到该用户的所有版本的代码量统计完毕。
10.一种代码统计方法,其特征在于,该方法包括:
发起步骤,用于定时发起php请求,使用php查询当前svn的所有项目;
查询步骤,用于php调用svn shell查询每个项目一时间阈值内的日志记录信息;
分析步骤,用于对返回的日志记录进行分析,提取时间阈值内的所有用户svn提交的版本信息;
差异文件获取步骤,用于php调用svn shell根据所述版本信息生成每个用户与前一版本的差异文件并下载到本地;
计算步骤,用于php调用linux shell命令分析差异文件内容,计算所述版本信息对应的代码量;
更新步骤,用于将所述代码量基于用户ID更新至数据库。
11.根据权利要求10的方法,其特征在于,所述版本信息为版本号。
12.根据权利要求11的方法,其特征在于,如果用户在所述时间阈值内编写了多个版本的代码,重复执行差异文件获取步骤和计算步骤直到该用户的所有版本的代码量统计完毕。
13.一种代码统计装置,其特征在于,该装置包括:
发起单元,用于定时发起php请求,使用php查询当前svn的所有项目;
查询单元,用于php调用svn shell查询每个项目一时间阈值内的日志记录信息;
分析单元,用于对返回的日志记录进行分析,提取时间阈值内的所有用户svn提交的版本信息;
差异文件获取单元,用于php调用svn shell根据所述版本信息生成每个用户与前一版本的差异文件并下载到本地;
计算单元,用于php调用linux shell命令分析差异文件内容,计算所述版本信息对应的代码量;
更新单元,用于将所述代码量基于用户ID更新至数据库。
14.根据权利要求13的装置,其特征在于,所述版本信息为版本号。
15.根据权利要求13的装置,其特征在于,如果用户在所述时间阈值内编写了多个版本的代码,差异文件获取装置和计算装置重复执行相应的操作直到该用户的所有版本的代码量统计完毕。
16.一种服务器,其特征在于,包括权利要求13-15任一项的装置。
17.一种代码统计设备,其特征在于,所述设备包括处理器、存储器,所述处理器与所述存储器通过总线相连接,所述存储器中存储机器可读代码,所述处理器执行存储器中的机器可读代码可执行权利要求1-12之任一项的方法。
18.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序代码,当所述计算机程序代码被计算机执行时可执行权利要求1-12之任一的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710919922.6A CN109597642A (zh) | 2017-09-30 | 2017-09-30 | 一种代码统计方法、装置、服务器、设备及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710919922.6A CN109597642A (zh) | 2017-09-30 | 2017-09-30 | 一种代码统计方法、装置、服务器、设备及可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109597642A true CN109597642A (zh) | 2019-04-09 |
Family
ID=65955893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710919922.6A Pending CN109597642A (zh) | 2017-09-30 | 2017-09-30 | 一种代码统计方法、装置、服务器、设备及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109597642A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275862A (zh) * | 2019-06-26 | 2019-09-24 | 北京字节跳动网络技术有限公司 | 统计已创建文档数的方法和装置 |
CN114867046A (zh) * | 2022-07-06 | 2022-08-05 | 深圳市乙辰科技股份有限公司 | 无线网络设备固件更新方法和无线网络设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117761A1 (en) * | 2002-12-13 | 2004-06-17 | Microsoft Corporation | Process for measuring coding productivity |
CN103246575A (zh) * | 2013-04-27 | 2013-08-14 | 青岛海信传媒网络技术有限公司 | 软件有效代码量统计方法和装置 |
CN103699637A (zh) * | 2013-12-23 | 2014-04-02 | 国云科技股份有限公司 | 一种代码生产率统计方法及其系统 |
CN104750469A (zh) * | 2013-12-30 | 2015-07-01 | 中国银联股份有限公司 | 源代码统计分析方法和系统 |
CN106293662A (zh) * | 2015-05-22 | 2017-01-04 | 中兴通讯股份有限公司 | 一种代码变化量的统计方法及其装置 |
-
2017
- 2017-09-30 CN CN201710919922.6A patent/CN109597642A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117761A1 (en) * | 2002-12-13 | 2004-06-17 | Microsoft Corporation | Process for measuring coding productivity |
CN103246575A (zh) * | 2013-04-27 | 2013-08-14 | 青岛海信传媒网络技术有限公司 | 软件有效代码量统计方法和装置 |
CN103699637A (zh) * | 2013-12-23 | 2014-04-02 | 国云科技股份有限公司 | 一种代码生产率统计方法及其系统 |
CN104750469A (zh) * | 2013-12-30 | 2015-07-01 | 中国银联股份有限公司 | 源代码统计分析方法和系统 |
CN106293662A (zh) * | 2015-05-22 | 2017-01-04 | 中兴通讯股份有限公司 | 一种代码变化量的统计方法及其装置 |
Non-Patent Citations (1)
Title |
---|
ARRAY_HUANG: ""在脚本中调用git命令:指定git命令运行上下文"", 《HTTP://WWW.VOIDCN.COM/ARTICLE/P-FGTJBJSC-D.HTML》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275862A (zh) * | 2019-06-26 | 2019-09-24 | 北京字节跳动网络技术有限公司 | 统计已创建文档数的方法和装置 |
CN110275862B (zh) * | 2019-06-26 | 2021-07-30 | 北京字节跳动网络技术有限公司 | 统计已创建文档数的方法和装置 |
CN114867046A (zh) * | 2022-07-06 | 2022-08-05 | 深圳市乙辰科技股份有限公司 | 无线网络设备固件更新方法和无线网络设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10956422B2 (en) | Integrating event processing with map-reduce | |
US20210157803A1 (en) | System and method of data wrangling | |
CN110851465B (zh) | 数据查询方法及系统 | |
CN101635655A (zh) | 页面性能测试的方法、装置及系统 | |
US20170279970A1 (en) | Dynamically generating an aggregation routine | |
CN108897496B (zh) | 磁盘阵列配置管理方法、装置、计算机设备及存储介质 | |
US20130042229A1 (en) | Method of updating list of software-as-a-service and system for the same | |
CN109672722B (zh) | 数据部署方法及装置、计算机存储介质和电子设备 | |
CN105245567B (zh) | 一种处理更新请求的方法和服务器系统 | |
JP2014038420A (ja) | 広告配信装置、広告配信方法、端末推定装置、端末推定方法およびプログラム | |
EP3502916A1 (en) | Generating a data lineage record to facilitate source system and destination system mapping | |
JP5905531B2 (ja) | 広告配信装置、広告配信方法、端末推定装置、端末推定方法およびプログラム | |
CN109597642A (zh) | 一种代码统计方法、装置、服务器、设备及可读介质 | |
CN110990235A (zh) | 异构存储设备的性能数据管理方法、装置、设备及介质 | |
JP6283045B2 (ja) | 広告配信装置、広告配信方法、端末推定装置、端末推定方法およびプログラム | |
CN102999604B (zh) | 一种数据库性能的检测方法和装置 | |
CN105813102B (zh) | 一种自动测试系统及方法 | |
CN112486985A (zh) | 一种锅炉数据的查询方法、装置、设备及存储介质 | |
JP2016024486A (ja) | データ活用システム及びその制御方法 | |
CN113220705A (zh) | 慢查询识别的方法和装置 | |
CN111190923A (zh) | 电子票据查询方法、装置、存储介质及电子设备 | |
CN111401934A (zh) | 分布式广告统计方法以及装置 | |
CN104572228B (zh) | 一种节点更新方法及装置 | |
CN113377604B (zh) | 一种数据处理方法、装置、设备和存储介质 | |
US11226885B1 (en) | Monte Carlo simulation monitoring and optimization |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190409 |
|
RJ01 | Rejection of invention patent application after publication |