CN110471694A - 注释信息处理方法、装置、计算机设备及存储介质 - Google Patents
注释信息处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110471694A CN110471694A CN201910625168.4A CN201910625168A CN110471694A CN 110471694 A CN110471694 A CN 110471694A CN 201910625168 A CN201910625168 A CN 201910625168A CN 110471694 A CN110471694 A CN 110471694A
- Authority
- CN
- China
- Prior art keywords
- annotation
- modification
- code
- target
- objective function
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Document Processing Apparatus (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了提供一种注释信息处理方法、装置、计算机设备及存储介质,可以减少代码注释出错概率。方法部分包括:获取用户对项目代码文件的修改记录;根据所述修改记录确定所述项目代码文件的代码修改行数,以及所述代码修改行数对应的修改内容和修改时间;解析所述代码修改行数所属的目标函数;根据所述修改内容以及所述修改时间生成目标注释信息;将所述目标注释信息添加至所述目标函数的注释处。
Description
技术领域
本发明涉及代码处理领域,尤其涉及一种注释信息处理方法、装置、计算机设备及存储介质。
背景技术
每个软件工程师最头疼的事情不是写代码,而是写注释,而且是如何写出可维护的注释。即使内部项目有强制规范要求必须写注释,在工程师眼里这是十分耗费时间的。在进行代码注释中,可能会无法及时更新导致注释与代码不一致的情况出现,导致代码注释出错。
发明内容
本发明实施例提供一种注释信息处理方法、装置、计算机设备及存储介质,可以减少代码注释出错概率。
一种注释信息处理方法,其特征在于,包括:
获取用户对项目代码文件的修改记录;
根据所述修改记录确定所述项目代码文件的代码修改行数,以及所述代码修改行数对应的修改内容和修改时间;
解析所述代码修改行数所属的目标函数;
根据所述修改内容以及所述修改时间生成目标注释信息;
将所述目标注释信息添加至所述目标函数的注释处。
一种注释信息处理装置,其特征在于,包括:
获取模块,用于获取用户对项目代码文件的修改记录;
确定模块,用于根据获取获取模块获取的所述修改记录确定所述项目代码文件的代码修改行数,以及所述代码修改行数对应的修改内容和修改时间;
解析模块,用于解析所述确定模块确定的所述代码修改行数所属的目标函数;
生成模块,用于根据所述获取模块获取的所述修改内容以及所述修改时间生成目标注释信息;
添加模块,用于将所述生成模块生成的所述目标注释信息添加至所述目标函数的注释处。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述注释信息处理方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述注释信息处理方法的步骤。
上注释信息处理方法、装置、计算机设备及存储介质所实现的方案中,可以看出,利用户对项目代码文件的修改记录确定出代码修改行数,并依据修改内容和修改时间在代码修改行数对应的目标函数添加注释,也就是说,在进行代码注释,能依据及时添加或更新导致代码注释,减少人为添加、更新代码注释的繁琐操作,且能减少注释与代码不一致的情况出现,减少代码注释出错概率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中注释信息处理方法应用的一结构示意图;
图2是本发明一实施例中注释信息处理方法方法的一流程示意图;
图3是本发明一实施例中释信息处理方法方法的一流程示意图;
图4是本发明一实施例中释信息处理方法方法的一流程示意图;
图5是本发明一实施例中释信息处理方法方法的一流程示意图;
图6是本发明一实施例中释信息处理方法方法的一流程示意图;
图7是本发明一实施例中注释信息处理装置的一结构示意图;
图8是本发明一实施例中计算机设备的一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的注释信息处理方法,可应用在如图1的应用环境中,其中,注释信息处理装置可获取用户对项目代码文件的修改记录;根据所述修改记录确定所述项目代码文件的代码修改行数,以及所述代码修改行数对应的修改内容和修改时间;解析所述代码修改行数所属的目标函数;根据所述修改内容以及所述修改时间生成目标注释信息;将所述目标注释信息添加至所述目标函数的注释处。说明注释信息处理装置可利用户对项目代码文件的修改记录确定出代码修改行数,并依据修改内容和修改时间在代码修改行数对应的目标函数添加注释,也就是说,在进行代码注释,能依据及时添加或更新导致代码注释,减少人为添加、更新代码注释的繁琐操作,且能减少注释与代码不一致的情况出现,减少代码注释出错概率。注释信息处理装置可获取用户对项目代码文件的修改记录,根据修改记录生成目标注释信息。其中,注释信息处理装置可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑等,注释信息处理装置也可以由服务器实现,也可服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一实施例中,如图2所示,提供一种注释信息处理方法,包括如下步骤:
S10:获取用户对项目代码文件的修改记录。
项目代码文件指的是一些代码开发项目中,例如APP、网站等开发项目中项目中,用户所编写的代码文件。在项目开发过程中,通常都会对项目代码文件进行修改。对于服务器而言,可以获取到用户对项目代码文件的修改记录。
在一些应用场景中,通常会使用一些代码管理工具对,代码项目开发过程进行管理,具体地,包括用户对项目代码文件的修改记录的管理。在本发明实施例中,可以获取用户对项目代码文件的修改记录。例如,常见的版本管理工具一般有Subversion和Git工具等。以Git工具为例,对于Gti工具而言,在可以获取利用Git工具获取到Git提交记录,依据Git提交记录获取到用户对项目代码文件的修改记录,其中,上述提交记录中包括了用户对项目代码文件的代码修改行数,以及代码修改行数对应的修改内容、修改次数等修改记录,除此之外,提交记录还包括修改提交时间、项目版本号等。另外,修改内容指的是用户对项目代码文件作了哪些修改。可以理解,项目代码文件中的代码模块是以函数(也称为方法)进行划分的,在不同的代码编程语言中具有不同的叫法,例如在c语言中通常称为函数,在java语言中通常称为方法,为了便于描述,本发明实施例统一称为函数。每个函数为一个代码模块,用于执行某种功能。例如,用户对项目代码中的某个函数的代码作了修改以调整函数功能,修改时间是指用户对项目代码文件中代码的修改时间,例如用户在2019年1月1日对项目代码文件中的代码作了修改,代码修改行数是指用户对项目代码文件进行修改时,修改的代码所在的行数。需要说明的是,上述例子在这里只是示例性说明,例如修改时间还可以具体到时刻,这里不做限定。
S20:根据所述修改记录确定所述项目代码文件的代码修改行数,以及所述代码修改行数对应的修改内容和修改时间。
在获取了用户对项目代码文件的修改记录之后,根据所述修改记录确定所述项目代码文件的代码修改行数,以及所述代码修改行数对应的修改内容和修改时间。示例性的,若修改记录指示用户在2019年1月1日对项目代码中第36行的代码由“a”修改为“b”,则可根据上述修改记录,确定出项目代码文件的修改时间为:2019年1月1日;修改内容为:将项目代码中第36行的代码由“a”修改为“b”,修改行数为:项目代码文件中的第36行。
S30:解析所述代码修改行数所属的目标函数。
根据所述修改记录确定所述项目代码文件的代码修改行数之后,解析出代码修改行数所属的目标函数。需要说明的是,在步骤S20中,虽然修改记录是包括了项目代码文件中的代码修改行数以及修改内容,但是记录的修改内容只能记录修改了哪一行代码,无法记录修改的代码是属于项目代码文件中的哪个函数。因此,在本发明实施例,需依据代码修改行数解析出代码修改行数所属的目标函数。
S40:根据所述修改内容以及所述修改时间生成目标注释信息。
S50:将所述目标注释信息添加至所述目标函数的注释处。
在解析所述代码修改行数所属的目标函数之后,就可以知道对项目代码文件中的哪个目标函数作了修改,此时,根据所述修改内容以及所述修改时间生成目标注释信息,并将所述目标注释信息添加至所述目标函数的注释处。因此,通过上述实施例,可生成项目代码文件中每个被修改的函数的注释,便于编程人员观看,且使得代码注释自动更新。
通过上述实施例可以看出,利用户对项目代码文件的修改记录确定出代码修改行数,并依据修改内容和修改时间在代码修改行数对应的目标函数添加注释,也就是说,在进行代码注释,能依据及时添加或更新导致代码注释,减少人为添加、更新代码注释的繁琐操作,且能减少注释与代码不一致的情况出现,减少代码注释出错概率。
在一实施例中,如图3所示,步骤S30中,即所述解析出所述代码修改行数所属的目标函数,具体包括如下步骤:
S31:根据抽象语法树算法对所述项目代码文件进行分析,以获得所述项目代码文件对应的语法树。
由于随着开发项目的系统以及复杂化,项目代码通常也比较繁多复杂,因此为了快速获取到代码修改行数所属的目标函数,有必要理清整个项目代码文件的接口,因此,本发明实施例可根据抽象语法树((abstract syntax code,AST))算法对项目代码文件进行语法树分析,以获得项目代码文件对应的语法树。需要说明的是,项目代码文件对应的语法树是项目代码文件的源代码的抽象语法结构的树状表示,树上的每个节点都表示源代码中的一种结构,具体地,在本发明实施例中,可根据项目代码文件所采用的编程语言来选择语法树分析工具,并采用语法树分析工具对项目代码文件进行语法树分析得到的。在语法树结构中,每一个项目代表一颗树,将项目代码文件中的函数抽象成一个节点,多个具有相互引用关系的节点组成了一条结构链路,节点和结构链路共同反映了各个节点的代码之间的引用、包含以及位置关系。因此,在根据抽象语法树算法对所述项目代码文件进行分析,以获得所述项目代码文件对应的语法树,可清晰的得到项目代码文件的源代码的整个代码结构。
S32:根据所述代码修改行数对所述语法树进行遍历,以确定所述代码修改行数在所述语法树的节点位置。
S33:根据所述节点位置确定所述代码修改行数所属的所述目标函数。
如前面所述,在根据抽象语法树算法对所述项目代码文件进行分析,以获得所述项目代码文件对应的语法树之后,由于语法树中的项目代码文件中的函数抽象成一个节点,多个具有相互引用关系的节点组成了一条结构链路,节点和结构链路共同反映了各个节点的代码之间的引用、包含以及位置关系,因此在本发明实施例中,可根据所述代码修改行数对所述语法树进行遍历,以确定所述代码修改行数在所述语法树的节点位置。在得到根据所述代码修改行数对所述语法树进行遍历,以确定所述代码修改行数在所述语法树的节点位置之后,依据该节点位置的父节点,即可确定所述代码修改行数所属的所述目标函数。可见,在本发明实施例中提出了一种解析出所述代码修改行数所属的目标函数的方式,提高了方案可实施性。
在一实施例中,如图4所示,步骤S50中,即所述将所述目标注释信息添加至所述目标函数注释处,具体包括如下步骤:
S51:确定所述目标函数是否被添加过注释。
在需将所述目标注释信息添加至所述目标函数注释处时,可先确定牧宝势函数是否被添加过注释,具体地,本发明实施例中可为项目代码文件中每一个添加过注释的函数对应生成注释索引号,通过注释索引号确定目标函数是否被添加过注释,若目标函数存在对应的注释索引号,则确定目标函数被添加过注释,若目标函数不存在对应的注释索引号,则确定目标注释信息被添加过注释。
S52:若确定所述目标函数被添加过注释,则通过所述目标注释信息覆盖所述目标函数的旧注释,以将所述目标注释信息添加至所述目标函数的注释处,或按照注释添加时间先后顺序,将所述目标注释信息添加至所述目标函数的注释处。
若确定目标函数被添加过注释,本发明实施例提供以下方式处理新生成的目标注释信息,第一种是通过目标注释信息覆盖目标函数的旧注释,以将所述目标注释信息添加至所述目标函数的注释处,从而实现更新目标函数的注释的功能,使得目标函数的注释随着每次修改而对应更新。第二种是按照注释添加时间先后顺序,将所述目标注释信息添加至所述目标函数的注释处。例如,若前一次注释为注释1,则将目标注释信息添加在注释1后面,并用注释天剑时间区别开,通过第二种方式,可使得目标函数的每次修改记录得以在注释处体现,便于编程人员查阅浏览注释记录,使得新旧注释均能查阅到。
S53:若确定所述函数未被添加过注释,则将所述目标注释信息添加至所述目标函数的注释处。
若确定目标函数被添加过注释,则将所述目标注释信息添加至所述目标函数的注释处。具体地,生成该目标注释信息唯一对应的注释索引号后添加至所述目标函数的注释处。其中,可以不同的字符和/或字符串作为上述注释索引号,由此可见,在本发明实施例中,提出了几种具体将注释天至函数的注释处的方式,提高方案可实施性。
在一实施例中,如图5所示,步骤S40中,即根据所述修改内容以及所述修改时间生成目标注释信息,具体包括如下步骤:
S41:获取用于建立代码注释的规则文件。
其中,上述规则文件是用于后续生成目标注释信息的文件,示例性的,会在项目中建立注释的规则文件,如:注释需包含哪些项(作者、注释内容等)、注释内容,生成的注释的字段、布局等格式。需要说明的是,上述规则文件可人为预先配置,具体不做限定。
S42:根据所述规则文件以及所述修改内容确定注释内容。
在获取了用于建立代码注释的规则文件之后,根据所述规则文件以及所述修改内容确定注释内容。示例性说明,若修改记录指示用户在2019年1月1日对项目代码中第36行的代码由“a”修改为“b”,则可根据上述修改记录,确定出项目代码文件的修改时间为:2019年1月1日;修改内容为:将项目代码中第36行的代码由“a”修改为“b”,修改行数为:项目代码文件中的第36行。此时,确定出了上述第36行所属的函数为函数A,则可根据规则文件以及修改内容确定出如下注释内容:修改人员张某将代码由“a”修改为“b”。其中,编程人员可利用Git工具获取使用人员的信息,从而得到注释内容中的修改人员。
S43:根据所述修改时间以及所述注释内容生成所述目标注释信息。
在根据所述规则文件以及所述修改内容确定注释内容之后,根据所述修改时间以及所述注释内容生成所述目标注释信息。如上述例子所示,在确定出注释内容:修改人员张某将代码由“a”修改为“b”之后,依据修改时间以及注释内容,也即2019年1月1日以及上述注释内容,生成最终的目标注释信息。
在一实施例中,如图6所示,步骤S50之后,也即将所述目标注释信息添加至所述目标函数的注释处之后,该注释信息处理方法还包括如下步骤:
S60:获取所述项目代码文件中的每个所述注释对应的注释索引号。
S70:根据所述项目代码文件中的所有注释,以及所述所有注释对应的注释索引号生成注释文本文件。
对于步骤S60可以理解,在经过步骤S50处理之后,项目代码文件中的每个已包含注释的函数均具有对应的注释索引号,在本发明实施例中,可获取所述项目代码文件中的每个所述注释对应的注释索引号,并根据所述项目代码文件中的所有注释,以及所述所有注释对应的注释索引号生成注释文本文件。具体地,可以注释索引号为关键字从项目代码中获取释索引号对应的注释,并根据所述项目代码文件中的所有注释,以及所述所有注释对应的注释索引号生成注释文本文件。其中,该注释文本文件中说明了此次修改记录中,每个函数的注释,使得编程人员可完整清晰的获取整个项目文件的注释所形成的注释文本文件,便于编程人员查阅浏览,提高用户体验。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种注释信息处理装置,该注释信息处理装置与上述实施例中注释信息处理方法一一对应。如图7所示,该注释信息处理装置10包括获取模块101、确定模块101、解析模块103、生成模块104以及添加模块105。各功能模块详细说明如下:
获取模块101,用于获取用户对项目代码文件的修改记录;
确定模块102,用于根据获取获取模块获取的所述修改记录确定所述项目代码文件的代码修改行数,以及所述代码修改行数对应的修改内容和修改时间;
解析模块103,用于解析所述确定模块确定的所述代码修改行数所属的目标函数;
生成模块104,用于根据所述获取模块获取的所述修改内容以及所述修改时间生成目标注释信息;
添加模块105,用于将所述生成模块生成的所述目标注释信息添加至所述目标函数的注释处。
通过上述装置实施例可以看出,注释信息处理装置利用户对项目代码文件的修改记录确定出代码修改行数,并依据修改内容和修改时间在代码修改行数对应的目标函数添加注释,也就是说,在进行代码注释,能依据及时添加或更新导致代码注释,减少人为添加、更新代码注释的繁琐操作,且能减少注释与代码不一致的情况出现,减少代码注释出错概率。
在一实施例中,所述添加模块具体用于:
确定所述目标函数是否被添加过注释;
若确定所述目标函数被添加过注释,则通过所述目标注释信息覆盖所述目标函数的旧注释,以将所述目标注释信息添加至所述目标函数的注释处,或按照注释添加时间先后顺序,将所述目标注释信息添加至所述目标函数的注释处;
若确定所述函数未被添加过注释,则将所述目标注释信息添加至所述目标函数的注释处。
若注释信息处理装置确定目标函数被添加过注释,则将所述目标注释信息添加至所述目标函数的注释处。具体地,生成该目标注释信息唯一对应的注释索引号后添加至所述目标函数的注释处。其中,可以不同的字符和/或字符串作为上述注释索引号,由此可见,在本发明实施例中,提出了几种具体将注释天至函数的注释处的方式,提高方案可实施性。
在一实施例中,所述解析模块具体用于:
根据抽象语法树算法对所述项目代码文件进行分析,以获得所述项目代码文件对应的语法树;
根据所述代码修改行数对所述语法树进行遍历,以确定所述代码修改行数在所述语法树的节点位置;
根据所述节点位置确定所述代码修改行数所属的所述目标函数。
如前面所述,在注释信息处理装置根据抽象语法树算法对所述项目代码文件进行分析,以获得所述项目代码文件对应的语法树之后,由于语法树中的项目代码文件中的函数抽象成一个节点,多个具有相互引用关系的节点组成了一条结构链路,节点和结构链路共同反映了各个节点的代码之间的引用、包含以及位置关系,因此在本发明实施例中,可根据所述代码修改行数对所述语法树进行遍历,以确定所述代码修改行数在所述语法树的节点位置。在得到根据所述代码修改行数对所述语法树进行遍历,以确定所述代码修改行数在所述语法树的节点位置之后,依据该节点位置的父节点,即可确定所述代码修改行数所属的所述目标函数。可见,在本发明实施例中提出了一种解析出所述代码修改行数所属的目标函数的方式,提高了方案可实施性。
在一实施例中,所述生成模块具体用于获取用于建立代码注释的规则文件;
根据所述规则文件以及所述修改内容确定注释内容;
根据所述修改时间以及所述注释内容生成所述目标注释信息。
在一实施例中,所述获取模块还用于:所述将所述目标注释信息添加至所述目标函数的注释处之后,获取所述项目代码文件中的每个所述注释对应的注释索引号;
所述生成模块,还用于根据所述项目代码文件中的所有注释,以及所述所有注释对应的注释索引号生成注释文本文件。
具体地,注释信息处理装置可以注释索引号为关键字从项目代码中获取释索引号对应的注释,并根据所述项目代码文件中的所有注释,以及所述所有注释对应的注释索引号生成注释文本文件。其中,该注释文本文件中说明了此次修改记录中,每个函数的注释,使得编程人员可完整清晰的获取整个项目文件的注释所形成的注释文本文件,便于编程人员查阅浏览,提高用户体验。
关于注释信息处理装置的具体限定可以参见上文中对于注释信息处理方法的限定,在此不再赘述。上述注释信息处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是上述注释信息处理装置,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储修改记录等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种注释信息处理方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:
获取用户对项目代码文件的修改记录;
根据所述修改记录确定所述项目代码文件的代码修改行数,以及所述代码修改行数对应的修改内容和修改时间;
解析所述代码修改行数所属的目标函数;
根据所述修改内容以及所述修改时间生成目标注释信息;
将所述目标注释信息添加至所述目标函数的注释处。
需要说明的是,处理器执行计算机程序时实现上述步骤的详细内容,可对应参阅前述注释信息处理方法对应的描述,这里不再重复描述。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取用户对项目代码文件的修改记录;
根据所述修改记录确定所述项目代码文件的代码修改行数,以及所述代码修改行数对应的修改内容和修改时间;
解析所述代码修改行数所属的目标函数;
根据所述修改内容以及所述修改时间生成目标注释信息;
将所述目标注释信息添加至所述目标函数的注释处。
需要说明的是,计算机程序被处理器执行时实现上述步骤的详细内容,可对应参阅前述注释信息处理方法对应的描述,这里不再重复描述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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.一种注释信息处理方法,其特征在于,包括:
获取用户对项目代码文件的修改记录;
根据所述修改记录确定所述项目代码文件的代码修改行数,以及所述代码修改行数对应的修改内容和修改时间;
解析所述代码修改行数所属的目标函数;
根据所述修改内容以及所述修改时间生成目标注释信息;
将所述目标注释信息添加至所述目标函数的注释处。
2.如权利要求1所述的注释信息处理方法,其特征在于,所述将所述目标注释信息添加至所述目标函数注释处,包括:
确定所述目标函数是否被添加过注释;
若确定所述目标函数被添加过注释,则通过所述目标注释信息覆盖所述目标函数的旧注释,以将所述目标注释信息添加至所述目标函数的注释处,或按照注释添加时间先后顺序,将所述目标注释信息添加至所述目标函数的注释处;
若确定所述函数未被添加过注释,则将所述目标注释信息添加至所述目标函数的注释处。
3.如权利要求1所述的注释信息处理方法,其特征在于,所述解析出所述代码修改行数所属的目标函数,包括:
根据抽象语法树算法对所述项目代码文件进行分析,以获得所述项目代码文件对应的语法树;
根据所述代码修改行数对所述语法树进行遍历,以确定所述代码修改函数在所述语法树的节点位置;
根据所述节点位置确定所述代码修改行数所属的所述目标函数。
4.如权利要求1所述的注释信息处理方法,其特征在于,所述根据所述修改内容以及所述修改时间生成目标注释信息,包括:
获取用于建立代码注释的规则文件;
根据所述规则文件以及所述修改内容确定注释内容;
根据所述修改时间以及所述注释内容生成所述目标注释信息。
5.如权利要求1所述的注释信息处理方法,其特征在于,所述将所述目标注释信息添加至所述目标函数的注释处之后,所述方法还包括:
获取所述项目代码文件中的每个所述注释对应的注释索引号;
根据所述项目代码文件中的所有注释,以及所述所有注释对应的注释索引号生成注释文本文件。
6.一种注释信息处理装置,其特征在于,包括:
获取模块,用于获取用户对项目代码文件的修改记录;
确定模块,用于根据获取获取模块获取的所述修改记录确定所述项目代码文件的代码修改行数,以及所述代码修改行数对应的修改内容和修改时间;
解析模块,用于解析所述确定模块确定的所述代码修改行数所属的目标函数;
生成模块,用于根据所述获取模块获取的所述修改内容以及所述修改时间生成目标注释信息;
添加模块,用于将所述生成模块生成的所述目标注释信息添加至所述目标函数的注释处。
7.如权利要求6所述的注释信息处理装置,其特征在于,所述添加模块具体用于:
确定所述目标函数是否被添加过注释;
若确定所述目标函数被添加过注释,则通过所述目标注释信息覆盖所述目标函数的旧注释,以将所述目标注释信息添加至所述目标函数的注释处,或按照注释添加时间先后顺序,将所述目标注释信息添加至所述目标函数的注释处;
若确定所述函数未被添加过注释,则将所述目标注释信息添加至所述目标函数的注释处。
8.如权利要求6所述的注释信息处理装置,其特征在于,所述解析模块具体用于:
根据抽象语法树算法对所述项目代码文件进行分析,以获得所述项目代码文件对应的语法树;
根据所述代码修改行数对所述语法树进行遍历,以确定所述代码修改行数在所述语法树的节点位置;
根据所述节点位置确定所述代码修改行数所属的所述目标函数。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5任一项所述的注释信息处理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的注释信息处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910625168.4A CN110471694A (zh) | 2019-07-11 | 2019-07-11 | 注释信息处理方法、装置、计算机设备及存储介质 |
PCT/CN2019/116179 WO2021003913A1 (zh) | 2019-07-11 | 2019-11-07 | 注释信息处理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910625168.4A CN110471694A (zh) | 2019-07-11 | 2019-07-11 | 注释信息处理方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110471694A true CN110471694A (zh) | 2019-11-19 |
Family
ID=68507993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910625168.4A Pending CN110471694A (zh) | 2019-07-11 | 2019-07-11 | 注释信息处理方法、装置、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110471694A (zh) |
WO (1) | WO2021003913A1 (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463210A (zh) * | 2020-12-04 | 2021-03-09 | 上海路人王信息科技有限公司 | 接口文档生成方法、终端设备及计算机可读存储介质 |
CN112698821A (zh) * | 2021-01-12 | 2021-04-23 | 北京字节跳动网络技术有限公司 | 代码标注方法、装置、计算机设备、介质和系统 |
CN112947941A (zh) * | 2021-03-29 | 2021-06-11 | 建信金融科技有限责任公司 | 一种添加异常处理代码的方法和装置 |
CN113094036A (zh) * | 2021-04-19 | 2021-07-09 | 罗普特科技集团股份有限公司 | 一种软件工程目录结构注释鸟瞰图的生成方法和系统 |
CN113495753A (zh) * | 2021-07-06 | 2021-10-12 | 北京百度网讯科技有限公司 | 项目的标签获取方法、装置、电子设备及存储介质 |
CN113609138A (zh) * | 2021-09-30 | 2021-11-05 | 成都数联云算科技有限公司 | 一种类与数据库表的匹配方法、装置、设备及介质 |
CN114579452A (zh) * | 2022-03-07 | 2022-06-03 | 北京有竹居网络技术有限公司 | 接口影响检测方法及相关设备 |
CN114840250A (zh) * | 2022-07-04 | 2022-08-02 | 金现代信息产业股份有限公司 | 一种代码冲突合并方法、系统、电子设备及可读存储介质 |
CN116302218A (zh) * | 2023-03-15 | 2023-06-23 | 北京百度网讯科技有限公司 | 函数信息的添加方法、装置、设备以及存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113110951A (zh) * | 2021-04-08 | 2021-07-13 | 北京沃东天骏信息技术有限公司 | 一种崩溃信息处理方法和装置 |
CN114254237A (zh) * | 2021-12-22 | 2022-03-29 | 北京金堤科技有限公司 | 网页交互规范检测的方法、装置、计算机设备及存储介质 |
CN114675835A (zh) * | 2022-04-08 | 2022-06-28 | 平安资产管理有限责任公司 | 公共组件自动生成方法、系统、设备及介质 |
CN115061723A (zh) * | 2022-06-30 | 2022-09-16 | 海宁奕斯伟集成电路设计有限公司 | 信息处理方法、装置、电子设备及计算机可读存储介质 |
CN115688072A (zh) * | 2023-01-05 | 2023-02-03 | 武汉星碑科技有限公司 | 一种基于大数据的分布式项目管理方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6874140B1 (en) * | 2000-07-31 | 2005-03-29 | Microsoft Corporation | Debug annotations |
CN103678110A (zh) * | 2012-09-26 | 2014-03-26 | 国际商业机器公司 | 提供修改相关信息的方法和装置 |
CN105824794A (zh) * | 2016-03-11 | 2016-08-03 | 天脉聚源(北京)教育科技有限公司 | 一种注释添加方法及装置 |
CN106055334A (zh) * | 2016-06-01 | 2016-10-26 | 努比亚技术有限公司 | 代码管理系统及方法 |
CN107016047A (zh) * | 2017-02-20 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 文档查询、文档存储方法及装置 |
CN108228231A (zh) * | 2018-01-08 | 2018-06-29 | 南京邮电大学 | 一种Git仓库文件注解系统的可视化漂移算法 |
CN108628635A (zh) * | 2018-05-07 | 2018-10-09 | 广州视源电子科技股份有限公司 | 获取参数名和局部变量名的方法、装置、设备及存储介质 |
CN109828783A (zh) * | 2018-12-15 | 2019-05-31 | 中国平安人寿保险股份有限公司 | 基于代码的文档自动生成方法、装置、电子设备及介质 |
CN109857390A (zh) * | 2019-01-16 | 2019-06-07 | 南京邮电大学 | 一种Git仓库文件注解系统的注解传递算法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107545030B (zh) * | 2017-07-17 | 2020-08-21 | 阿里巴巴集团控股有限公司 | 数据血缘关系的处理方法、装置及设备 |
CN107885499A (zh) * | 2017-10-19 | 2018-04-06 | 平安壹钱包电子商务有限公司 | 一种接口文档生成方法及终端设备 |
-
2019
- 2019-07-11 CN CN201910625168.4A patent/CN110471694A/zh active Pending
- 2019-11-07 WO PCT/CN2019/116179 patent/WO2021003913A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6874140B1 (en) * | 2000-07-31 | 2005-03-29 | Microsoft Corporation | Debug annotations |
CN103678110A (zh) * | 2012-09-26 | 2014-03-26 | 国际商业机器公司 | 提供修改相关信息的方法和装置 |
CN105824794A (zh) * | 2016-03-11 | 2016-08-03 | 天脉聚源(北京)教育科技有限公司 | 一种注释添加方法及装置 |
CN106055334A (zh) * | 2016-06-01 | 2016-10-26 | 努比亚技术有限公司 | 代码管理系统及方法 |
CN107016047A (zh) * | 2017-02-20 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 文档查询、文档存储方法及装置 |
CN108228231A (zh) * | 2018-01-08 | 2018-06-29 | 南京邮电大学 | 一种Git仓库文件注解系统的可视化漂移算法 |
CN108628635A (zh) * | 2018-05-07 | 2018-10-09 | 广州视源电子科技股份有限公司 | 获取参数名和局部变量名的方法、装置、设备及存储介质 |
CN109828783A (zh) * | 2018-12-15 | 2019-05-31 | 中国平安人寿保险股份有限公司 | 基于代码的文档自动生成方法、装置、电子设备及介质 |
CN109857390A (zh) * | 2019-01-16 | 2019-06-07 | 南京邮电大学 | 一种Git仓库文件注解系统的注解传递算法 |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112463210A (zh) * | 2020-12-04 | 2021-03-09 | 上海路人王信息科技有限公司 | 接口文档生成方法、终端设备及计算机可读存储介质 |
CN112698821A (zh) * | 2021-01-12 | 2021-04-23 | 北京字节跳动网络技术有限公司 | 代码标注方法、装置、计算机设备、介质和系统 |
CN112698821B (zh) * | 2021-01-12 | 2024-03-26 | 北京字节跳动网络技术有限公司 | 代码标注方法、装置、计算机设备、介质和系统 |
CN112947941A (zh) * | 2021-03-29 | 2021-06-11 | 建信金融科技有限责任公司 | 一种添加异常处理代码的方法和装置 |
CN113094036A (zh) * | 2021-04-19 | 2021-07-09 | 罗普特科技集团股份有限公司 | 一种软件工程目录结构注释鸟瞰图的生成方法和系统 |
CN113495753A (zh) * | 2021-07-06 | 2021-10-12 | 北京百度网讯科技有限公司 | 项目的标签获取方法、装置、电子设备及存储介质 |
CN113495753B (zh) * | 2021-07-06 | 2024-08-06 | 北京百度网讯科技有限公司 | 项目的标签获取方法、装置、电子设备及存储介质 |
CN113609138A (zh) * | 2021-09-30 | 2021-11-05 | 成都数联云算科技有限公司 | 一种类与数据库表的匹配方法、装置、设备及介质 |
CN114579452A (zh) * | 2022-03-07 | 2022-06-03 | 北京有竹居网络技术有限公司 | 接口影响检测方法及相关设备 |
CN114840250A (zh) * | 2022-07-04 | 2022-08-02 | 金现代信息产业股份有限公司 | 一种代码冲突合并方法、系统、电子设备及可读存储介质 |
CN116302218A (zh) * | 2023-03-15 | 2023-06-23 | 北京百度网讯科技有限公司 | 函数信息的添加方法、装置、设备以及存储介质 |
CN116302218B (zh) * | 2023-03-15 | 2024-05-10 | 北京百度网讯科技有限公司 | 函数信息的添加方法、装置、设备以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021003913A1 (zh) | 2021-01-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110471694A (zh) | 注释信息处理方法、装置、计算机设备及存储介质 | |
US10789054B2 (en) | Methods, systems, apparatuses and devices for facilitating change impact analysis (CIA) using modular program dependency graphs | |
US10592220B2 (en) | Metadata-driven binding of converted source code to original source code | |
US11256557B1 (en) | Efficient processing of rule-based computing workflows | |
US11593342B2 (en) | Systems and methods for database orientation transformation | |
CN108563694B (zh) | 对逻辑删除的sql执行方法、装置、计算机设备和存储介质 | |
CN114691464A (zh) | 一种接口测试方法、计算机设备及计算机可读存储介质 | |
US20240069907A1 (en) | Software development context history operations | |
CN113608748A (zh) | C语言转换Java语言的数据处理方法、装置及设备 | |
JP2017174418A (ja) | モデルチェックのためのデータ構造抽象化 | |
WO2023287795A1 (en) | Artificial intelligence approach to solving industrial data transformation problems | |
Zolotas et al. | Bridging proprietary modelling and open-source model management tools: the case of PTC Integrity Modeller and Epsilon | |
CN110347588B (zh) | 软件验证方法、装置、计算机设备和存储介质 | |
US10656922B2 (en) | Systems and methods for providing an application transformation tool | |
US20190303279A1 (en) | Modeling system | |
CN115129598A (zh) | 一种sql语句的风险检测方法、装置、系统及介质 | |
Annenkov et al. | Generation technique for Django MVC web framework using the stratego transformation language | |
CN116627390B (zh) | 航空软件开发中icd文件的替代方法及装置 | |
CN117473871B (zh) | 一种基于CATIA Magic的形式化系统建模方法 | |
CN117992436B (zh) | 基于不同类型数据库的信息系统自动改造方法及设备 | |
CN119558296B (zh) | 针对ros节点的低代码模板自动挖掘方法、装置及设备 | |
CN114238086B (zh) | 内存泄漏检测方法、装置、计算机设备和存储介质 | |
KR100656559B1 (ko) | Bibd 방법론을 이용하는 프로그램 자동 개발 장치 | |
Lano et al. | Development Methods | |
CN116361135A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20191119 |