CN110347382A - 一种代码信息统计方法及装置 - Google Patents
一种代码信息统计方法及装置 Download PDFInfo
- Publication number
- CN110347382A CN110347382A CN201910531968.XA CN201910531968A CN110347382A CN 110347382 A CN110347382 A CN 110347382A CN 201910531968 A CN201910531968 A CN 201910531968A CN 110347382 A CN110347382 A CN 110347382A
- Authority
- CN
- China
- Prior art keywords
- code
- information
- file
- meeting
- signing
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种代码信息统计方法及装置,所述方法包括确定代码标记信息;在所确定的代码文件中查找符合所述代码标记信息的代码,统计得到代码信息。通过根据代码标记信息(如:代码作者、代码生成日期)来获取符合该代码标记信息的代码,进而得到符合该代码标记信息的代码的代码信息(如:代码行数),解决了统计某软件开发人员在指定时间段内最终完成的代码量的问题,满足了软件开发过程中的需要。
Description
技术领域
本申请涉及计算机软件技术领域,尤其涉及一种代码信息统计方法及装置。
背景技术
随着人类各种应用以及硬件芯片技术的飞速发展,各种应用软件越来越复杂和庞大。应用软件一般是由程序代码经过编译器转化的硬件处理单元能够识别的文件组成。复杂的软件需要开发大量的复杂的程序代码,一般由多人组成的开发团队共同完成。
对于一个复杂的应用软件开发项目来说,往往存在多个目录,目录中又存在多个子目录,子目录中包含多个代码文件。在多人完成这些代码文件的情况下,如果人工去统计每个人所完成的代码量,是非常困难的。并且,软件开发人员几乎每天都会增删代码,月底或年终的时候,可能有统计自己或者部门内其他成员在指定时间段内最终完成的代码量的需要。
如何统计某软件开发人员在指定时间段内最终完成的代码量,目前现有技术中还没有相关的解决方案。
发明内容
本申请的主要目的在于提出一种代码信息统计方法,能够解决统计某软件开发人员在指定时间段内最终完成的代码量的问题,满足了软件开发过程中的需要。
为实现上述目的,本申请实施例提供了一种代码信息统计方法,包括:
确定代码标记信息;
在所确定的代码文件中查找符合所述代码标记信息的代码,统计得到代码信息。
可选地,其中,所述代码文件中包括一个或多个代码集合,所述代码集合包括代码注释,所述代码注释包括与所述代码集合对应的代码标记信息。
可选地,所述代码标记信息包括以下信息中的至少一种:代码作者,代码生成日期。
可选地,其中,所述代码信息包括:代码行数;
所述在所确定的代码文件中查找符合所述代码标记信息的代码,统计得到代码信息,包括:
根据预设规则确定代码文件;
遍历所述代码文件中的代码,所述代码文件中查找符合所述代码标记信息的代码,并统计符合所述代码标记信息的代码的行数。
本申请实施例还提供了一种代码信息统计装置,包括:
代码标记信息确定模块,设置为确定代码标记信息;
代码信息统计模块,设置为在所确定的代码文件中查找符合所述代码标记信息的代码,统计得到代码信息。
可选地,其中,所述代码文件中包括一个或多个代码集合,所述代码集合包括代码注释,所述代码注释包括与所述代码集合对应的代码标记信息。
可选地,所述代码标记信息包括以下信息中的至少一种:代码作者,代码生成日期。
可选地,其中,所述代码信息包括:代码行数;
所述代码信息统计模块,具体设置为:
遍历所述代码文件中的代码,在所述代码文件中查找符合所述代码标记信息的代码,并统计符合所述代码标记信息的代码的行数。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现上述方法的步骤。
本申请实施例还提供了一种计算机设备,包括:处理器、存储器和总线;
所述处理器和所述存储器通过所述总线连接;
所述存储器,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令时实现上述的方法。
本申请提出的技术方案包括:确定代码标记信息;在所确定的代码文件中查找符合所述代码标记信息的代码,统计得到代码信息。通过根据代码标记信息(如:代码作者、代码生成日期)来获取符合该代码标记信息的代码,进而得到符合该代码标记信息的代码的代码信息(如:代码行数),解决了统计某软件开发人员在指定时间段内最终完成的代码量的问题,满足了软件开发过程中的需要。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1所示为本申请实施例1的代码信息统计方法流程图;
图2所示为本申请实施例2的代码信息统计装置结构图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
项目文件中的程序代码一般是文本格式,程序代码通常为了增加代码的可读性以及可维护性一般包含了注释,注释通常是对程序代码的解释和说明。注释和程序代码是作为一个整体存储和处理的。
本申请利用了程序代码中的注释,将注释中所包含的内容(如:代码作者以及代码生成日期等)作为查找代码的条件,进而统计满足该条件的代码行数。
图1所示为本申请实施例1代码信息统计方法流程图,包括以下步骤:
步骤101:确定代码标记信息;
其中,本申请中所涉及的代码标记信息包括但不限于以下信息中的至少一种:代码作者,代码生成日期。对于一个项目中的代码文件,如果需要在这些代码文件中获取到某软件开发人员在某一段时间内所完成的代码量,即代码行数,首先需要确定编写代码的人员的姓名或代号,以及该段时间的起始时间和终止时间;如果需要在这些代码文件中获取到某软件开发人员在所有时间内所完成的代码行数,则需要仅确定编写代码的人员的姓名或代号,即可;如果需要在这些代码文件中获取到所有软件开发人员在某一段时间内所完成的代码行数,则需要确定该段时间的起始时间和终止时间。需要说明的是,这里所确定的描述代码作者的信息(姓名或代号)需要与代码注释中所包含的代码作者信息一致。
步骤102:在所确定的代码文件中查找符合所述代码标记信息的代码,统计得到代码信息。
具体地,根据预设规则确定代码文件,比如:本申请所涉及的代码文件所使用的编程语言为Java,开发工具使用eclipse,那么代码文件特指的是仅包含类和方法的代码文件,对于属性或者配置文件中的代码并不包含在内。
其中,代码文件中包括一个或多个代码集合,对于不同的代码编写语言,该代码集合具有不同的形式,比如:对于JAVA语言,代码集合是以类或方法形式存在的,对于C或C++语言,代码集合又是以接口函数的形式存在的。不论哪种形式的代码集合,如果应用本申请实施例的方法,需要该代码集合包括代码注释,该代码注释包括与该代码集合对应的标记信息。在一些软件开发平台中,可以直接使用平台中自带的工具通过注释模板来为代码集合添加注释。
下面是在Eclipse软件开发平台设置类和方法注释模板的方法:
1、打开Eclipse;
2、菜单栏点击Window;
3、点击Preferences,搜索框输入“template”;
4、点击Code Template-->Comments-->Methods;
5、点击右侧的Edit,在Pattern中写入要设置的模板,点击OK-->Apply andClose;
6、光标定位到方法内部,使用快捷键Alt+Shift+j,使用刚刚添加的模板为方法添加注释。
在所确定的代码文件中查找符合该标记信息的目标代码时,需要首先确定查找范围,即在哪些目录的代码文件中却查找符合所定义的代码标记信息的代码。通过逐一读取范围内的目录中的代码文件,再获取代码文件中的代码,将代码标记信息与所获取到的代码中所包含的注释中对应的代码标记信息进行比较,然后满足条件后记录该代码行数,最后得到满足条件的总代码行数,即代码信息,即可统计出某软件开发人员在某一段时间内增加的代码量。
为进一步清楚地说明,以一个应用实例对上述方法进行说明:
1)在开发工具eclipse中设置方法注释模板,模板内至少要包括作者名和方法创建时间,每新建一个方法,都使用该模板加上注释。那么所有加上注释的方法,就都打上了作者和时间的标识。举例来讲,方法及其注释示例如下所示:
其中,注释上都有“@Author.Mark”和“@Date”关键字,通过这两个关键字,可以定位到2018年新增的方法。
2)首先,统计单个Java类文件内的代码行数。
2.1)将Java类文件读入程序,以行为单位转为链表。
2.2)从第零个元素开始遍历链表。
2.3)第一个包含“{”的元素为类的起始位置,从这个位置开始后,进入类的内部。
2.4)如果一个元素包含作者信息,下一个元素包含指定时间段信息(该示例中方法注释作者在上,方法创建时间在紧挨着的下一行),那么可以证明这个方法是该作者写的。
2.5)满足2.4条件之后,开始统计方法内代码行数。通过找到紧挨着的最近的一个“{”确定进入方法,记录方法起始行号,并设置变量numOfOpenBrace等于1;之后每遇到一个“{”,numOfOpenBrace加一,每遇到一个“}”,numOfOpenBrace减一,直到numOfOpenBrace为0,证明该方法结束,记录方法终止行号,这样通过起始终止行号,也就统计除了这个方法的代码行数。
2.6)重复2.4和2.5直到链表遍历结束。
2.7)这样就完成了单个Java类文件内的代码行数统计。
3)其次,使用递归的方式获取到项目内的所有Java类文件。
3.1)将项目所在文件夹读入方法程序。
3.2)获取到文件夹的子目录,遍历这个子目录。
3.3)判断正在遍历的元素类型
3.3.1)如果是Java类文件,这个文件是方法所需要的。
3.3.2)如果是目录,递归调用3.2和3.3。
4)综合2)和3)即完成了统计所需代码行数的需要。
这里需要说明的是,本申请通过根据代码标记信息(如:代码作者、代码生成日期)来获取符合该代码标记信息的代码,进而得到符合该代码标记信息的代码的代码信息(如:代码行数),解决了统计某软件开发人员在指定时间段内最终完成的代码量的问题,满足了软件开发过程中的需要。
图2为本申请实施例2的代码信息统计装置结构图,如图2所示,该装置包括:
代码标记信息确定模块,设置为确定代码标记信息;
代码信息统计模块,设置为在所确定的代码文件中查找符合所述代码标记信息的代码,统计得到代码信息。
其中,所述代码文件中包括一个或多个代码集合,所述代码集合包括代码注释,所述代码注释包括与所述代码集合对应的代码标记信息。
具体地,所述代码标记信息包括以下信息中的至少一种:代码作者,代码生成日期。
其中,所述代码信息包括:代码行数;
所述代码信息统计模块,具体设置为:
遍历所述代码文件中的代码,在所述代码文件中查找符合所述代码标记信息的代码,并统计符合所述代码标记信息的代码的行数。
本申请还提供了一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被处理器执行时实现上述方法的步骤。
本申请还提供了一种计算机设备,包括:处理器、存储器和总线;
所述处理器和所述存储器通过所述总线连接;
所述存储器,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令时实现上述的方法。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种代码信息统计方法,其特征在于,包括:
确定代码标记信息;
在所确定的代码文件中查找符合所述代码标记信息的代码,统计得到代码信息。
2.根据权利要求1所述的方法,其特征在于,其中,所述代码文件中包括一个或多个代码集合,所述代码集合包括代码注释,所述代码注释包括与所述代码集合对应的代码标记信息。
3.根据权利要求2所述的方法,其特征在于,所述代码标记信息包括以下信息中的至少一种:代码作者,代码生成日期。
4.根据权利要求1或2或3所述的方法,其特征在于,其中,所述代码信息包括:代码行数;
所述在所确定的代码文件中查找符合所述代码标记信息的代码,统计得到代码信息,包括:
根据预设规则确定代码文件;
遍历所述代码文件中的代码,所述代码文件中查找符合所述代码标记信息的代码,并统计符合所述代码标记信息的代码的行数。
5.一种代码信息统计装置,其特征在于,包括:
代码标记信息确定模块,设置为确定代码标记信息;
代码信息统计模块,设置为在所确定的代码文件中查找符合所述代码标记信息的代码,统计得到代码信息。
6.根据权利要求5所述的装置,其特征在于,其中,所述代码文件中包括一个或多个代码集合,所述代码集合包括代码注释,所述代码注释包括与所述代码集合对应的代码标记信息。
7.根据权利要求6所述的装置,其特征在于,所述代码标记信息包括以下信息中的至少一种:代码作者,代码生成日期。
8.根据权利要求5或6或7所述的装置,其特征在于,其中,所述代码信息包括:代码行数;
所述代码信息统计模块,具体设置为:
遍历所述代码文件中的代码,在所述代码文件中查找符合所述代码标记信息的代码,并统计符合所述代码标记信息的代码的行数。
9.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,所述计算机指令被处理器执行时实现权利要求1~4任一项所述方法的步骤。
10.一种计算机设备,其特征在于,包括:处理器、存储器和总线;
所述处理器和所述存储器通过所述总线连接;
所述存储器,当所述存储控制器运行时,所述处理器执行所述存储器存储的所述执行指令时实现权利要求1~4任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910531968.XA CN110347382A (zh) | 2019-06-19 | 2019-06-19 | 一种代码信息统计方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910531968.XA CN110347382A (zh) | 2019-06-19 | 2019-06-19 | 一种代码信息统计方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110347382A true CN110347382A (zh) | 2019-10-18 |
Family
ID=68182392
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910531968.XA Withdrawn CN110347382A (zh) | 2019-06-19 | 2019-06-19 | 一种代码信息统计方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110347382A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463210A (zh) * | 2020-12-04 | 2021-03-09 | 上海路人王信息科技有限公司 | 接口文档生成方法、终端设备及计算机可读存储介质 |
CN113127352A (zh) * | 2021-04-20 | 2021-07-16 | 成都新潮传媒集团有限公司 | 一种自动化用例的统计方法、装置及计算机可读存储介质 |
CN113609003A (zh) * | 2021-07-16 | 2021-11-05 | 深圳开源互联网安全技术有限公司 | 代码行数统计方法、系统、终端及存储介质 |
-
2019
- 2019-06-19 CN CN201910531968.XA patent/CN110347382A/zh not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463210A (zh) * | 2020-12-04 | 2021-03-09 | 上海路人王信息科技有限公司 | 接口文档生成方法、终端设备及计算机可读存储介质 |
CN113127352A (zh) * | 2021-04-20 | 2021-07-16 | 成都新潮传媒集团有限公司 | 一种自动化用例的统计方法、装置及计算机可读存储介质 |
CN113127352B (zh) * | 2021-04-20 | 2023-03-14 | 成都新潮传媒集团有限公司 | 一种自动化用例的统计方法、装置及计算机可读存储介质 |
CN113609003A (zh) * | 2021-07-16 | 2021-11-05 | 深圳开源互联网安全技术有限公司 | 代码行数统计方法、系统、终端及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kouzis-Loukas | Learning scrapy | |
JP5148612B2 (ja) | 永続保存ポータル | |
US8688676B2 (en) | Source code search engine | |
US9224103B1 (en) | Automatic annotation for training and evaluation of semantic analysis engines | |
US9418145B2 (en) | Method and system for visualizing documents | |
Eck et al. | A semantic file system for integrated product data management | |
CN110347382A (zh) | 一种代码信息统计方法及装置 | |
WO2009007181A1 (en) | A method, system and computer program for intelligent text annotation | |
CN102902697A (zh) | 用于生成结构化文档导视图的方法和系统 | |
US11314757B2 (en) | Search results modulator | |
US9251281B2 (en) | Web browsing using placemarks and contextual relationships in a data processing system | |
WO2024066067A1 (zh) | 一种定位界面上目标元素的方法、介质及电子设备 | |
CN113849718A (zh) | 互联网烟草科技情报信息自动采集装置、方法与存储介质 | |
Moslehi et al. | A feature location approach for mapping application features extracted from crowd-based screencasts to source code | |
Florez et al. | Automatic code generation system for transactional web applications | |
KR20080030196A (ko) | 인터넷 웹페이지의 태그 방법 및 태그 검색 시스템 | |
Serafini | Apache Solr beginner's guide | |
Dąbrowski et al. | Mining user feedback for software engineering: Use cases and reference architecture | |
Visochek | Practical Data Wrangling: Expert techniques for transforming your raw data into a valuable source for analytics | |
Fourney | Web search, web tutorials & software applications: characterizing and supporting the coordinated use of online resources for performing work in feature-rich software | |
Chen et al. | Towards Identification and Validation of Web Themes | |
Tasovac et al. | Developing Morpho-SLaWS: An API for the Morphosyntactic Annotation of the Serbian Language | |
JP2010250567A (ja) | 環境情報集計分析システム | |
Reese | Natural language processing with java cookbook: over 70 recipes to create linguistic and language translation applications using java libraries | |
Manrique-Losada et al. | NLP in Requirements Processing: A Content Analysis Based Systematic Literature Mapping |
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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20191018 |