CN114385188A - 一种代码工作量统计方法、装置和电子设备 - Google Patents
一种代码工作量统计方法、装置和电子设备 Download PDFInfo
- Publication number
- CN114385188A CN114385188A CN202210037654.6A CN202210037654A CN114385188A CN 114385188 A CN114385188 A CN 114385188A CN 202210037654 A CN202210037654 A CN 202210037654A CN 114385188 A CN114385188 A CN 114385188A
- Authority
- CN
- China
- Prior art keywords
- code
- target
- time period
- personnel
- preset time
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
- G06F8/4434—Reducing the memory space required by the program code
- G06F8/4435—Detection or removal of dead or redundant code
-
- 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/3608—Software analysis for verifying properties of programs using formal methods, e.g. model checking, abstract interpretation
-
- 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/77—Software metrics
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
- G06Q10/06393—Score-carding, benchmarking or key performance indicator [KPI] analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Quality & Reliability (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Game Theory and Decision Science (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种代码工作量统计方法、装置和电子设备,其中方法包括:获取目标人员在预设时间段内提交的目标代码;基于目标代码中的commit信息剔除目标代码中目标平台提交的公共代码部分,目标平台是目标人员进行代码开发的软件平台,公共代码部分是开发人员可直接调用的已有公共代码;基于剔除后的目标代码,对目标人员在预设时间段内的代码工作量进行统计。本发明提供的技术方案,能提高人员代码工作量统计的准确率。
Description
技术领域
本发明涉及软件编程领域,具体涉及一种代码工作量统计方法、装置和电子设备。
背景技术
在互联网行业,每个互联网公司的研发团队不断扩大,研发人员技术能力有高有低,基于代码量统计人员工作量显得至关重要。现有技术通常基于代码仓库系统(例如GitLab)自带的代码量统计工具进行人员的代码量统计,但是现有工具只能对人员提交代码的增加和删除进行简单统计,从而使得实际统计得到的代码量依然包含大量冗余无效代码。因此,如何提高人员代码工作量统计的准确率是亟待解决的问题。
发明内容
有鉴于此,本发明实施方式提供了一种代码工作量统计方法、装置和电子设备,从而提高了人员代码工作量统计的准确率。
根据第一方面,本发明提供了一种代码工作量统计方法,所述方法包括:获取目标人员在预设时间段内提交的目标代码;基于所述目标代码中的commit信息剔除所述目标代码中目标平台提交的公共代码部分,所述目标平台是所述目标人员进行代码开发的软件平台,所述公共代码部分是开发人员可直接调用的已有公共代码;基于剔除后的目标代码,对所述目标人员在预设时间段内的代码工作量进行统计。
可选地,所述获取目标人员在预设时间段内提交的目标代码,包括:将统计请求发送至预设数据库,以使所述预设数据库基于所述统计请求将目标人员在预设时间段内提交的目标代码路径信息进行返回,所述统计请求包括表征目标人员身份的人员信息和所述预设时间段,所述预设数据库用于存储表征代码存储路径的路径信息;接收所述预设数据库返回的所述目标代码路径信息,并基于所述目标代码路径信息向目标代码所在的代码仓库发送第二请求,以使所述代码仓库根据所述第二请求返回所述第二请求对应的所述目标代码;接收所述代码仓库返回的所述目标代码。
可选地,所述基于剔除后的目标代码,对所述目标人员在预设时间段内的代码工作量进行统计,包括:基于所述目标代码的代码行数获取所述代码工作量;将所述代码工作量与所述目标人员的人员信息和部门信息进行关联,以更新所述目标人员以及目标部门在所述预设时间段内的代码工作总量,所述目标部门是所述目标人员所在的部门,所述部门信息是用于标识所述目标部门的信息。
可选地,在基于剔除后的目标代码,对所述目标人员在预设时间段内的代码工作量进行统计之前,所述方法还包括:基于所述目标代码中的commit信息剔除所述目标代码中冗余操作对应的代码和目标平台自动修改的部分代码,所述冗余操作包括用于合并所述目标平台不同分支上代码的操作以及用于解决代码冲突的操作。
可选地,在基于所述目标代码中的commit信息剔除所述目标代码中冗余操作对应的代码和目标平台自动修改的部分之前,所述方法还包括:对所述目标代码中各个项目对应分支中的commit信息进行去重;基于去重结果对所述目标代码进行更新。
可选地,在基于所述目标代码中的commit信息剔除所述目标代码中冗余操作对应的代码和目标平台自动修改的部分之前,所述方法还包括:剔除所述目标代码中第二commit信息对应的代码,所述第二commit信息是在第二预设时间段内存储于代码仓库系统中的代码所对应的commit信息,所述第二预设时间段位于所述预设时间段之前。
可选地,在基于剔除后的目标代码,对所述目标人员在预设时间段内的代码工作量进行统计之前,所述方法还包括:获取所述目标代码对应的开发平台类型;若所述目标代码是基于IOS平台开发的代码,则提取所述目标代码中.m格式和.h格式的代码片段文件;将所述目标代码更新为所述代码片段文件。
根据第二方面,本发明提供了一种代码工作量统计装置,所述装置包括:代码获取模块,用于获取目标人员在预设时间段内提交的目标代码;筛选模块,用于基于所述目标代码中的commit信息剔除所述目标代码中目标平台提交的公共代码部分,所述目标平台是所述目标人员进行代码开发的软件平台,所述公共代码部分是开发人员可直接调用的已有公共代码;统计模块,用于基于剔除后的目标代码,对所述目标人员在预设时间段内的代码工作量进行统计。
根据第三方面,本发明实施例提供了一种电子设备,包括:存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行第一方面,或者第一方面任意一种可选实施方式中所述的方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行第一方面,或者第一方面任意一种可选实施方式中所述的方法。
本申请提供的技术方案,具有如下优点:
本申请提供的技术方案,首先获取目标人员在预设时间段提交到代码仓库系统的目标代码,之后基于目标代码中用户提交时记录的commit信息,剔除目标代码中目标平台提交的公共代码部分。由于公共代码部分属于各个开发人员可直接复制、调用的公共代码,该部分代码的提交方式通常是用于进行开发工作的目标平台进行自动提交的,因此公共代码部分实质上不属于人员的劳动范围,不能被统计到其工作量中,从而该部分可以基于commit信息被识别出来并剔除。之后利用剩余的目标代码对目标人员的代码工作量进行统计,提高了目标人员代码工作量统计的准确性。
此外,考虑到在代码提交时进行的冗余操作对应的代码和目标平台自动修改的部分代码实质上也未使目标人员付出过多的智力劳动,因此,基于目标代码中的commit信息同样可以定位出目标代码中涉及到冗余操作和目标平台自动修改的部分代码,从而进行剔除。进一步提高了目标人员代码工作量统计的准确性。另外,在目标代码中对重复commit信息对应的代码进行去重,以及将历史时间出现过的commit信息对应的代码在目标代码中进行去重,进一步提高了目标人员代码工作量统计的准确性。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了本发明一个实施方式中一种代码工作量统计方法的步骤示意图;
图2示出了本发明一个实施方式中一种代码工作量统计方法的示意框图;
图3示出了本发明一个实施方式中一种代码工作量统计装置的结构示意图;
图4示出了本发明一个实施方式中一种电子设备的结构示意图。
具体实施方式
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
请参阅图1,在一个实施方式中,一种代码工作量统计方法,具体包括以下步骤:
步骤S101:获取目标人员在预设时间段内提交的目标代码。
步骤S102:基于目标代码中的commit信息剔除目标代码中目标平台提交的公共代码部分,目标平台是目标人员进行代码开发的软件平台,公共代码部分是开发人员可直接调用的已有公共代码。
步骤S103:基于剔除后的目标代码,对目标人员在预设时间段内的代码工作量进行统计。
具体地,在对目标人员进行代码工作量统计之前,先确定统计时间段,之后获取预设时间段内目标人员提交到代码仓库系统的目标代码,目标代码通常包括多个代码片段文件。现有技术只是针对各个代码片段文件进行简单的增加、删除操作的统计,在本实施例中,为了提高代码量统计的准确率,额外基于目标代码中的commit信息剔除目标代码中目标平台提交的公共代码部分。commit信息是用户每次提交代码到代码仓库系统时,对该部分代码进行添加相关解释描述、索引描述的信息,该信息上还记载有提交时间、提交人员ID、提交部门、代码所属工程、所属项目、所属分支等等。公共代码部分是不需要开发人员进行实质上的智力活动,在代码仓库的模板中可以直接复制、调用的代码。因此,通过commit信息记录的代码描述、提交人员(通常记录为目标平台自动提交,例如本实施例中通过方舟代码开发平台自动提交,提交人员则为平台)可将公共代码部分从目标代码中筛选出来,避免统计目标人员的无效工作代码。之后,再对剩余代码进行增加、删除的统计,从而提高了目标人员代码工作量统计的准确性。
具体地,在一实施例中,上述步骤S101,具体包括如下步骤:
步骤一:将统计请求发送至预设数据库,以使预设数据库基于统计请求将目标人员在预设时间段内提交的目标代码路径信息进行返回,统计请求包括目标人员的人员信息和预设时间段,预设数据库用于存储表征代码存储路径的路径信息。
步骤二:接收预设数据库返回的目标代码路径信息,并基于目标代码路径信息向目标代码所在的代码仓库发送第二请求,以使代码仓库根据第二请求返回第二请求对应的目标代码。
步骤三:接收代码仓库返回的目标代码。
具体地,在本实施例中,代码存储于代码仓库系统中,为了提高代码仓库系统存储代码文件的效能和安全性,则弱化代码仓库系统对代码进行的直接管理。从而将代码文件在各个代码仓库中的具体路径信息单独存储于一个外部的预设数据库中,多硬件多系统分工合作,提高整体代码管理的效率。在本实施例中,预设数据库可采用关系型数据库MySQL,代码仓库系统基于GitLab实现。用户在提交代码时,用户根据需求在用于代码开发的方舟平台对指定工程建立分支,方舟平台负责将分支创建信息同步到GitLab代码仓库,研发人员根据需求编写代码,并提交到GitLab代码仓库,GitLab代码仓库接收到代码提交请求后,对外触发一条hook信息,触发方舟平台,记录提交信息,并存储到MySQL,形成所有提交信息的数据源。
基于上述框架,如图2所示,用户在获取目标代码时,先从客户端发送一个统计请求到MySQL,使MySQL基于该统计请求将目标人员在预设时间段内提交的目标代码路径信息进行返回,用户在客户端接收到目标代码路径信息后,再基于该目标代码路径信息生成第二请求,并将第二请求发送到GitLab代码仓库系统。GitLab在接受到第二请求后,解析出第二请求中的目标代码路径信息,然后根据目标代码路径信息在具体的代码仓库中提取对应的一个或多个代码文件组成目标代码,之后将目标代码返回客户端,使用户成功获取到目标代码。然后对目标代码进行变更量的统计,并输出报表到Excel。
具体地,在一实施例中,上述步骤S103,具体包括如下步骤:
步骤四:基于目标代码的代码行数获取代码工作量。
步骤五:将代码工作量与目标人员的人员信息和部门信息进行关联,以更新目标人员以及目标部门在预设时间段内的代码工作总量,目标部门是目标人员所在的部门,部门信息是用于标识目标部门的信息。
具体地,在对目标代码进行了一系列的筛选处理后,基于目标代码中各个代码片段文件的代码行数对目标人员的代码工作量进行统计,并将统计结果与目标人员的人员信息和该人员所属部门的部门信息进行关联。进而实现该人员在预设时间段内的代码工作总量的准确统计,以及该人员所属部门在预设时间段内的代码工作总量的准确统计,提高了代码统计准确率,便于后期该人员的绩效管理。
具体地,在一实施例中,在步骤S103之前,本发明实施例提供的代码工作量统计方法,还包括如下步骤:
步骤六:基于目标代码中的commit信息剔除目标代码中冗余操作对应的代码和目标平台自动修改的部分代码,冗余操作包括用于合并目标平台不同分支上代码的操作以及用于解决代码冲突的操作。
具体地,通常提交到代码仓库系统中的代码还存在部分冗余操作的代码和目标平台自动修改的部分代码,其中冗余操作包括用于合并目标平台不同分支上代码的操作以及用于解决代码冲突的操作。例如:当用户A在进行代码开发工作时,其预先合并了用户B的部分代码,当对用户A该部分代码进行统计时,会将合并的B的部分代码再统计到B名下一遍,造成重复统计,从而为了避免人员代码工作量的重复统计,针对合并操作的代码需要进行筛选去除。在另一实施例中,若用户A和用户B均对某一分支上代码的某一行进行修改,但是修改的内容又不相同,则在该分支代码提交到代码仓库系统之前,进行分支的合并时会出现代码冲突。通常解决办法是依靠机器或人工确定保留哪些修改,从而解决代码冲突,但是在解决冲突后不相关的代码又会造成代码工作量的重复统计,因此针对解决冲突操作的代码也需要进行筛选去除。此外,随着版本的迭代和软件的更新,部分代码语法或内容可能会出现变更,此时目标平台会进行自动修改,而这部分代码同样不属于人员的实质工作内容,不能被统计到代码工作量中,从而基于commit信息中的描述内容可进行进一步地筛选。通过上述步骤的筛选,进一步提高了目标代码中的代码片段文件是目标人员实质工作内容的可靠性,提高了代码统计准确率。
具体地,在一实施例中,在上述步骤六之前,本发明实施例提供的代码工作量统计方法,还包括如下步骤:
步骤七:对目标代码中各个项目对应分支中的commit信息进行去重。
步骤八:基于去重结果对目标代码进行更新。
具体地,为了进一步避免代码在合并等操作时出现重复代码片段文件,从而基于各个代码片段文件提交时对应的commit信息对预设时间段内的代码进行去重。在本实施例中,利用HashSet集合元素的唯一性,高效地去除集合中重复的commit信息,之后利用去重结果更新目标代码,保留其中有效的代码片段文件,不仅进一步提高了代码工作量统计的准确率,先对重复commit信息进行筛选,使得再基于commit信息进行冗余操作识别时降低工作量,提高代码筛选效率。
具体地,在一实施例中,在上述步骤六之前,本发明实施例提供的代码工作量统计方法,还包括如下步骤:
步骤九:剔除目标代码中第二commit信息对应的代码,第二commit信息是在第二预设时间段内存储于代码仓库系统中的代码所对应的commit信息,第二预设时间段位于预设时间段之前。
具体地,由于合并操作,会将历史时间提交过的commit信息重复提交到该预设时间段内,从而重复提交的commit信息对应的代码不是在预设时间段内产生的,所以不应累计到预设时间段内的代码变更统计,因此除了在预设时间段内进行commit信息的重复比对之外,在本实施例中,预设时间段内的commit信息还和历史时间的commit信息进行比对。在历史时间,即第二预设时间段内验证某一次提交是否在历史时间已经存在,如果存在则剔除对应的commit信息和代码,如果不存在则作为累计集合。从而进一步提高了代码工作量统计的准确率。
具体地,在一实施例中,在上述步骤S103之前,本发明实施例提供的代码工作量统计方法,还包括如下步骤:
步骤十:获取目标代码对应的开发平台类型,若目标代码是基于IOS平台开发的代码,则提取目标代码中.m格式和.h格式的代码片段文件。
步骤十一:将目标代码更新为代码片段文件。
具体地,在本实施例中,考虑到实际代码开发时,由于IOS系统和Android等系统对应的工程产生的代码存在不一致性,故需要分别计算,根据组织部门判断人员提交的代码属于IOS工程还是Android工程。针对IOS工程,只有.h格式和.m格式的文件才是实际的开发代码片段,其他文件属于配置文件或引入的第三方二进制文件故需要剔除,之后再利用增加和删除标记计算更新后的目标代码的代码变更的增量和删除量,从而进一步提高了代码工作量统计的准确率。针对Android工程,只需要根据Gitlab提交信息的增量和删除量计算代码变更量。
通过上述步骤,本申请提供的技术方案,首先获取目标人员在预设时间段提交到代码仓库系统的目标代码,之后基于目标代码中用户提交时记录的commit信息,剔除目标代码中目标平台提交的公共代码部分。由于公共代码部分属于各个开发人员可直接复制、调用的公共代码,该部分代码的提交方式通常是用于进行开发工作的目标平台进行自动提交的,因此公共代码部分实质上不属于人员的劳动范围,不能被统计到其工作量中,从而该部分可以基于commit信息被识别出来并剔除。之后利用剩余的目标代码对目标人员的代码工作量进行统计,提高了目标人员代码工作量统计的准确性。
此外,考虑到在代码提交时进行的冗余操作对应的代码和目标平台自动修改的部分代码实质上也未使目标人员付出过多的智力劳动,因此,基于目标代码中的commit信息同样可以定位出目标代码中涉及到冗余操作和目标平台自动修改的部分代码,从而进行剔除。进一步提高了目标人员代码工作量统计的准确性。另外,在目标代码中对重复commit信息对应的代码进行去重,以及将历史时间出现过的commit信息对应的代码在目标代码中进行去重,进一步提高了目标人员代码工作量统计的准确性。
如图3所示,本实施例还提供了一种代码工作量统计装置,该装置包括:
代码获取模块101,用于获取目标人员在预设时间段内提交的目标代码。详细内容参见上述方法实施例中步骤S101的相关描述,在此不再进行赘述。
筛选模块102,用于基于目标代码中的commit信息剔除目标代码中目标平台提交的公共代码部分,目标平台是目标人员进行代码开发的软件平台,公共代码部分是开发人员可直接调用的已有公共代码。详细内容参见上述方法实施例中步骤S102的相关描述,在此不再进行赘述。
统计模块103,用于基于剔除后的目标代码,对目标人员在预设时间段内的代码工作量进行统计。详细内容参见上述方法实施例中步骤S103的相关描述,在此不再进行赘述。
本发明实施例提供的一种代码工作量统计装置,用于执行上述实施例提供的一种代码工作量统计方法,其实现方式与原理相同,详细内容参见上述方法实施例的相关描述,不再赘述。
通过上述各个组成部分的协同合作,本申请提供的技术方案,首先获取目标人员在预设时间段提交到代码仓库系统的目标代码,之后基于目标代码中用户提交时记录的commit信息,剔除目标代码中目标平台提交的公共代码部分。由于公共代码部分属于各个开发人员可直接复制、调用的公共代码,该部分代码的提交方式通常是用于进行开发工作的目标平台进行自动提交的,因此公共代码部分实质上不属于人员的劳动范围,不能被统计到其工作量中,从而该部分可以基于commit信息被识别出来并剔除。之后利用剩余的目标代码对目标人员的代码工作量进行统计,提高了目标人员代码工作量统计的准确性。
此外,考虑到在代码提交时进行的冗余操作对应的代码和目标平台自动修改的部分代码实质上也未使目标人员付出过多的智力劳动,因此,基于目标代码中的commit信息同样可以定位出目标代码中涉及到冗余操作和目标平台自动修改的部分代码,从而进行剔除。进一步提高了目标人员代码工作量统计的准确性。另外,在目标代码中对重复commit信息对应的代码进行去重,以及将历史时间出现过的commit信息对应的代码在目标代码中进行去重,进一步提高了目标人员代码工作量统计的准确性。
图4示出了本发明实施例的一种电子设备,该设备包括处理器901和存储器902,可以通过总线或者其他方式连接,图4中以通过总线连接为例。
处理器901可以为中央处理器(Central Processing Unit,CPU)。处理器901还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器902作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如上述方法实施例中的方法所对应的程序指令/模块。处理器901通过运行存储在存储器902中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施例中的方法。
存储器902可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器901所创建的数据等。此外,存储器902可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器902可选包括相对于处理器901远程设置的存储器,这些远程存储器可以通过网络连接至处理器901。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器902中,当被处理器901执行时,执行上述方法实施例中的方法。
上述电子设备具体细节可以对应参阅上述方法实施例中对应的相关描述和效果进行理解,此处不再赘述。
本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,实现的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种代码工作量统计方法,其特征在于,所述方法包括:
获取目标人员在预设时间段内提交的目标代码;
基于所述目标代码中的commit信息剔除所述目标代码中目标平台提交的公共代码部分,所述目标平台是所述目标人员进行代码开发的软件平台,所述公共代码部分是开发人员可直接调用的已有公共代码;
基于剔除后的目标代码,对所述目标人员在预设时间段内的代码工作量进行统计。
2.根据权利要求1所述的方法,其特征在于,所述获取目标人员在预设时间段内提交的目标代码,包括:
将统计请求发送至预设数据库,以使所述预设数据库基于所述统计请求将目标人员在预设时间段内提交的目标代码路径信息进行返回,所述统计请求包括表征目标人员身份的人员信息和所述预设时间段,所述预设数据库用于存储表征代码存储路径的路径信息;
接收所述预设数据库返回的所述目标代码路径信息,并基于所述目标代码路径信息向目标代码所在的代码仓库发送第二请求,以使所述代码仓库根据所述第二请求返回所述第二请求对应的所述目标代码;
接收所述代码仓库返回的所述目标代码。
3.根据权利要求2所述的方法,其特征在于,所述基于剔除后的目标代码,对所述目标人员在预设时间段内的代码工作量进行统计,包括:
基于所述目标代码的代码行数获取所述代码工作量;
将所述代码工作量与所述目标人员的人员信息和部门信息进行关联,以更新所述目标人员以及目标部门在所述预设时间段内的代码工作总量,所述目标部门是所述目标人员所在的部门,所述部门信息是用于标识所述目标部门的信息。
4.根据权利要求1所述的方法,其特征在于,在基于剔除后的目标代码,对所述目标人员在预设时间段内的代码工作量进行统计之前,所述方法还包括:
基于所述目标代码中的commit信息剔除所述目标代码中冗余操作对应的代码和目标平台自动修改的部分代码,所述冗余操作包括用于合并所述目标平台不同分支上代码的操作以及用于解决代码冲突的操作。
5.根据权利要求4所述的方法,其特征在于,在基于所述目标代码中的commit信息剔除所述目标代码中冗余操作对应的代码和目标平台自动修改的部分之前,所述方法还包括:
对所述目标代码中各个项目对应分支中的commit信息进行去重;
基于去重结果对所述目标代码进行更新。
6.根据权利要求4所述的方法,其特征在于,在基于所述目标代码中的commit信息剔除所述目标代码中冗余操作对应的代码和目标平台自动修改的部分之前,所述方法还包括:
剔除所述目标代码中第二commit信息对应的代码,所述第二commit信息是在第二预设时间段内存储于代码仓库系统中的代码所对应的commit信息,所述第二预设时间段位于所述预设时间段之前。
7.根据权利要求1所述的方法,其特征在于,在基于剔除后的目标代码,对所述目标人员在预设时间段内的代码工作量进行统计之前,所述方法还包括:
获取所述目标代码对应的开发平台类型,若所述目标代码是基于IOS平台开发的代码,则提取所述目标代码中.m格式和.h格式的代码片段文件;
将所述目标代码更新为所述代码片段文件。
8.一种代码工作量统计装置,其特征在于,所述装置包括:
代码获取模块,用于获取目标人员在预设时间段内提交的目标代码;
筛选模块,用于基于所述目标代码中的commit信息剔除所述目标代码中目标平台提交的公共代码部分,所述目标平台是所述目标人员进行代码开发的软件平台,所述公共代码部分是开发人员可直接调用的已有公共代码;
统计模块,用于基于剔除后的目标代码,对所述目标人员在预设时间段内的代码工作量进行统计。
9.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机从而执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210037654.6A CN114385188A (zh) | 2022-01-13 | 2022-01-13 | 一种代码工作量统计方法、装置和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210037654.6A CN114385188A (zh) | 2022-01-13 | 2022-01-13 | 一种代码工作量统计方法、装置和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114385188A true CN114385188A (zh) | 2022-04-22 |
Family
ID=81202417
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210037654.6A Pending CN114385188A (zh) | 2022-01-13 | 2022-01-13 | 一种代码工作量统计方法、装置和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114385188A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115345531A (zh) * | 2022-10-19 | 2022-11-15 | 平安银行股份有限公司 | 工作量的确定方法、装置、计算机设备及可读存储介质 |
CN117785272A (zh) * | 2023-12-28 | 2024-03-29 | 湖南长银五八消费金融股份有限公司 | 一种代码统计方法及系统 |
CN117785272B (zh) * | 2023-12-28 | 2024-09-27 | 湖南长银五八消费金融股份有限公司 | 一种代码统计方法及系统 |
-
2022
- 2022-01-13 CN CN202210037654.6A patent/CN114385188A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115345531A (zh) * | 2022-10-19 | 2022-11-15 | 平安银行股份有限公司 | 工作量的确定方法、装置、计算机设备及可读存储介质 |
CN117785272A (zh) * | 2023-12-28 | 2024-03-29 | 湖南长银五八消费金融股份有限公司 | 一种代码统计方法及系统 |
CN117785272B (zh) * | 2023-12-28 | 2024-09-27 | 湖南长银五八消费金融股份有限公司 | 一种代码统计方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9201738B2 (en) | Method, computer readable storage medium and computer system for obtaining snapshots of data | |
CN108694195B (zh) | 一种分布式数据仓库的管理方法及系统 | |
CN108153784B (zh) | 同步数据处理方法和装置 | |
CN109714249B (zh) | 一种小程序消息的推送方法及相关装置 | |
CN110716539B (zh) | 一种故障诊断分析方法和装置 | |
CN110647562B (zh) | 一种数据查询方法和装置、电子设备、存储介质 | |
CN114416703A (zh) | 数据完整性自动监控方法、装置、设备及介质 | |
CN111400288A (zh) | 数据质量检查方法及系统 | |
CN109284331B (zh) | 基于业务数据资源的制证信息获取方法、终端设备及介质 | |
CN111324781A (zh) | 一种数据分析方法、装置及设备 | |
CN108121774B (zh) | 一种数据表备份方法及终端设备 | |
CN110569315B (zh) | 基于数据仓库的数据处理方法和装置 | |
CN114385188A (zh) | 一种代码工作量统计方法、装置和电子设备 | |
CN113918658A (zh) | 恢复数据的方法及装置 | |
CN113094154A (zh) | 一种基于阿里云的大数据处理方法及系统 | |
CN111026736B (zh) | 数据血缘管理方法及装置、数据血缘解析方法及装置 | |
CN116132499B (zh) | 调用链的压缩方法、装置、计算机设备及存储介质 | |
CN111523921B (zh) | 漏斗分析方法、分析设备、电子设备及可读存储介质 | |
CN107092671B (zh) | 一种元信息管理的方法及设备 | |
CN111427871A (zh) | 数据处理方法、装置、设备 | |
CN113220530B (zh) | 数据质量监控方法及平台 | |
CN113780950A (zh) | 数据处理方法、装置、服务器和可读存储介质 | |
CN111078258A (zh) | 一种版本升级方法及装置 | |
Heidari et al. | MetaHive: A Cache-Optimized Metadata Management for Heterogeneous Key-Value Stores | |
CN111274316A (zh) | 多级数据流转任务的执行方法及装置、电子设备、存储介质 |
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 |