CN110007900A - 工具类调用方法、***、计算机设备和存储介质 - Google Patents
工具类调用方法、***、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110007900A CN110007900A CN201910113105.0A CN201910113105A CN110007900A CN 110007900 A CN110007900 A CN 110007900A CN 201910113105 A CN201910113105 A CN 201910113105A CN 110007900 A CN110007900 A CN 110007900A
- Authority
- CN
- China
- Prior art keywords
- class
- tool
- information
- developing instrument
- 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
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000004321 preservation Methods 0.000 claims abstract description 20
- 230000006870 function Effects 0.000 claims description 145
- 238000012360 testing method Methods 0.000 claims description 12
- 238000001514 detection method Methods 0.000 claims description 6
- 239000003550 marker Substances 0.000 claims description 5
- 238000000605 extraction Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000011161 development Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 238000005314 correlation function Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000007812 deficiency Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- 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为一个实施例中工具类调用方法的流程图;
图2为另一个实施例中工具类调用方法的流程图;
图3为一个实施例中工具类调用***的结构示意图;
图4为一个实施例中计算机设备的内部结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
在一个实施例中,如图1所示,图1为一个实施例中工具类调用方法的流程图,本实施例中提出了一种工具类调用方法,该工具类调用方法可以应用于计算机设备中,具体可以包括以下步骤:
步骤S110:从软件项目文件中识别软件程序文件包含的工具类,获得工具类的定义信息。
工具类为在软件项目文件中的类类型。本步骤中,识别在软件项目中所有已定义的工具类,并提取工具类的定义内容,即提取各个工具类的定义信息。工具类的定义信息可以是类类型所定义的数据结构和函数等。
所提取的定义信息可以用于建立后续的开发工具模板,便于计算机在执行程序的时候在开发工具模板中调用定义信息内的结构类型和函数,进行程序的编译。
步骤S120:根据定义信息获取工具类的功能标识信息。
本步骤中,在定义信息中包括有程序代码和注释文本。其中,注释文本往往用于标记和解释程序代码,体现类类型的功能。而且程序代码中还包含数据结构的元素名称和函数名称,这些元素名称和函数名称有时候也可以通过命名的意义来反映类类型的功能。因此定义信息中包含用于反映工具类功能的内容,从定义信息中提取标识工具类对应功能的功能标识信息。
步骤S130:将定义信息和功能标识信息保存在开发工具模板中。
本步骤中,开发工具模板可以为在软件项目文件中存储类类型的定义信息的文件。
步骤S140:在处理软件项目文件时,从开发工具模板中调用工具类。
本步骤中,在处理软件项目文件时,如在开发和运行软件项目文件时,软件项目文件的程序代码可以从该软件项目文件的开发工具模板中调用工具类,进行程序的撰写或编译。
另外在撰写软件项目文件时,可以根据功能调用工具类,此时可以根据软件项目文件中所需使用功能,根据该功能对应的功能标识信息,从开发工具模板中查找和调用该功能标识信息对应的工具类。
上述工具类调用方法,可以将软件项目文件中分散的工具类的定义代码整合在指定的开发工具模板中,便于在开发工具模板中调用工具类,减少在软件项目文件中遍历和查找多个文件后调用工具类,提高工具类的调用效率。
而且在编译的时候调用开发工具模板中的工具类,避免打开多个包含工具类的文件,降低内存的消耗。
在面对文件量非常多的大型软件项目时,作为大型软件项目的软件项目文件,其中的软件程序文件繁多且关系复杂,可能会按照框架架构或实现功能等错综复杂的关系进行存放,往往开发者是很难快速地了解大型软件项目并同时熟知分散的工具类,在调用工具类时也无法快速查阅工具类的功能,增加调用工具类的难度。而且当开发者未能查阅到相关功能的工具类了,为了继续进行开发,开发者往往会重复开发和定义该相关功能的工具类,造成开发者进行重复劳动,降低了项目开发的效率以及增加了时间成本。对于查阅大型软件项目来说,提高了项目的可读性。
在一个实施例中,软件项目文件包括多个软件程序文件,软件程序文件可以为软件项目文件中记录软件程序的文件。
步骤S110中从软件项目文件中识别软件程序文件包含的工具类,获得工具类的定义信息的步骤,可以包括:
A1:遍历软件项目文件的各个软件程序文件,在软件程序文件的程序代码中识别工具类定义标识。
本步骤中,软件项目文件中包含多个软件程序文件,工具类的定义代码保存在软件程序文件中,软件项目在开发的阶段是不连续的,软件程序文件会根据开发需求中对程序架构和功能的需求逐步进行开发,因此工具类的定义会随开发需求分散在软件项目中,需要遍历各个软件程序文件对软件项目文件中所有的工具类进行识别。
A2:根据工具类定义标识提取工具类的类名称和用于定义工具类的程序代码。
本步骤中,工具类的定义包括工具类的类名称和工具类的定义格式,工具类的定义格式为用于定义工具类的程序代码,其中定义格式一般可以包括声明部分和实现部分,声明部分往往是包括工具类的数据成员的名称以及函数成员的名称,实现部分可以包括成员的定义信息或算法的代码。
A3:将工具类的类名称和用于定义工具类的程序代码作为工具类的定义信息。
上述工具类调用方法,识别工具类的类名称和程序代码,将工具类的类名称和程序代码作为工具类的定义信息,可以将工具类的整个定义的信息存储在开发工具模板中,不仅可以便于编译的时候调用实现函数,还提高了开发工具模板的可读性。
在一个实施例中,步骤S120中根据定义信息获取工具类的功能标识信息的步骤,可以包括:
B11:识别定义信息中的注释文本。
在程序代码会使用特定的符号区分注释文本,可以根据标记注释文本的符号识别注释文本。
B12:从注释文本中提取标识工具类功能的功能标识信息。
上述工具类调用方法,注释文本中可以包含标注工具类功能的信息,通过识别注释文本并提取描述工具类功能的功能标识信息,完成工具类的功能点的识别。
例如,在注释文本中提取关键字,例如可以提取注释文本中的动词,也可以提取注释文本中用于解释实现代码的原理的文本信息,这种解释原理的文本信息在面对同一原理但是不同使用场景的函数来说,可以很好地便于同类型工具类的查找和查阅。
在一个实施例中,步骤S120中根据定义信息获取工具类的功能标识信息的步骤,可以包括:
B21:根据工具类的定义信息确定工具类的调用方式。
调用方式可以由工具类所实现功能和使用场景来决定的,直接和客观地体现在工具类的定义信息上,体现在工具类中数据成员的数量、函数成员的调用格式、函数成员的返回格式、公有成员、私有成员等方面。
例如根据工具类的定义信息可以看出,函数成员是用于计算并返回计算值,函数成员也可以用于改变状态而无返回值的;工具类可以用于存储结构数据的,工具类也可以用于存储函数成员,也可以既存储数据同时包含函数成员;工具类中的成员可以是公有的,也可以是私有的,工具类之间可以通过继承获得调用其他工具类中的数据成员或函数成员。
B22:根据调用方式确定工具类的调用类型。
以返回数据的格式为例进行说明,可以根据调用方式中返回数据的格式确定工具类的调用类型,如果工具类中函数成员调用后无返回数据,则确定该工具类包含无返回值类型。还可以根据其他调用方式确定工具类所具有的调用类型。
B23:将工具类的调用类型作为功能标识信息。
开发过程根据工具类具有的调用类型选择是否调用该工具类,此时将工具类的调用类型反映了工具类可实现的调用方式的功能。
上述工具类调用方法,可以将该调用类型作为功能标识信息,标识工具类的功能。
进一步地,还可以将开放工具模板中的工具类按照工具类的功能标识信息进行分类。根据功能标识信息对工具类进行分类,将同种类型的工具类记载在次模板,将不同种类的多个次模板组成开发工具模板。
在一个实施例中,在步骤S130将定义信息和功能标识信息保存在开发工具模板中的步骤之前,还可以包括:
C1:根据代码编撰规则检测工具类的定义信息,并获得检测结果。
代码编撰规则指的是程序编码所要遵循的规则,要注意代码的正确性、稳定性、可读性;编码中要避免使用不易理解的数字,用有意义的标识来替代,不要使用难懂的技巧性很高的语句;源程序中关系较为紧密的代码应尽可能相邻。在排版、注释、命名、可读性、变量、函数过程、可测性、程序效率、质量保证等方面可以对工具类进行检测。
C2:当检测结果表示为工具类内无标注信息时,对工具类标识用于提醒标注的提示信息。
当工具类的定义信息中缺乏释义,需要开发者重新阅读和推理工具类的功能和作用,降低工具类的可读性。
C3:当检测结果表示为工具类的定义信息可优化时,对工具类标识用于提醒优化代码的提示信息。
当定义信息的语句在撰写或排版中,出现排版或命名不恰当,不仅会影响工具类的可读性,还容易导致后续代码撰写出错。例如可以统计定义信息中代码行数、函数成员的参量个数或者识别指定种类的代码语句,检测是否符合代码编撰规则,根据检测结果给出提示信息,便于开发者根据提示信息进行定义信息的优化,提高工具类的可读性。
上述工具类调用方法,在保存之前还可以对工具类的定义信息进行检查,检测定义信息是否符代码编撰规则,不符合代码编撰规则所撰写的工具类的可读性差,向不符合代码编撰规则的工具类发出提示信息,便于后续开发过程中对该工具类进行改进,提高工具类的可读性。
在一个实施例中,在步骤S130将定义信息和功能标识信息保存在开发工具模板中的步骤之后,还可以包括:
D11:识别软件项目文件中新增的工具类。
D12:将新增的工具类保存在开发工具模板。
上述工具类调用方法,在软件项目开发过程中,伴随着功能的增加,工具类也会随之增加,为了便于后续及时调用新增的工具类,需要定期更新开发工具模板。
在一个实施例中,在步骤S130将定义信息和功能标识信息保存在开发工具模板中的步骤之后,还可以包括:
D21:检查开发工具模板是否存在相同功能的工具类。
D22:从开发工具模板中移除相同功能的工具类中重复的工具类。
上述工具类调用方法,当开发工具模板中记录的工具类出现重复时,删除重复的工具类。
在一个实施例中,在步骤S130将定义信息和功能标识信息保存在开发工具模板中的步骤之后,还可以包括:
E1:获取软件项目文件中对工具类的调用情况。
E2:在任一个工具类的调用情况中的调用次数为零时,对该工具类标识用于提醒未调用的提示信息。
如果因项目变动而使部分工具类弃用,该部分工具类不再被调用,有必要删除这部分不被调用的工具类,上述工具类调用方法,可以降低开发工具模板所占用的存储空间。
在一个实施例中,在处理软件项目文件时,从开发工具模板中调用工具类的步骤之前,还包括:
F1:获取检索词。
本步骤中,获取开发者输入检索词,检索词可以是工具类的使用方式、功能、原理相关的关键词。
F2:将检索词与定义信息或功能标识信息进行匹配,从开发工具模板中获取与检索词匹配的工具类。
本步骤中,根据功能对工具类进行检索,匹配出若干个相近或相关的工具类。定义信息和功能标识信息可以反映工具类的使用方式、功能和原理等信息。例如定义信息的程序代码中的部分命名可以反映工具类的功能和使用方式,特别是在按照代码编撰规则进行代码的撰写,一些命名规则可以使得功能和原理等信息直接记录在工具类的成员名称上;功能标识信息中也能直接反映工具类的功能。从定义信息和功能标识信息中进行匹配可以快速确定匹配的工具类。
F3:返回匹配的工具类。
本步骤中,可以返回所匹配的工具类的名称,提示开发者对该工具类进行调用。进一步地,还可以返回所匹配的工具类的注释内容,提示开发者该工具类如何使用。
上述工具类调用方法,便于开发者可以快速查阅需要的工具类。
在一个实施例中,为了可以便捷开发者维护工具类,可以对开发工具模板中的工具类按照调用情况对工具类进行检索。定期统计工具类在开发项目文件中的被调用次数等的被调用情况。可以查阅各个工具类被调用情况,当工具类的调用次数较多,则表明该工具在开发项目中较为常用,或者表示该工具所在模块的开发程度较深。另外也可以在预设时间点,如在项目开发周期截止日时,检索哪些工具类暂时没有被调用的信息,可以在开发工具模板中进行特殊标记,以便于开发者可以及时处理没被调用的工具类。
如图2所示,图2为另一个实施例中工具类调用方法的流程图,本实施例中提供一种工具类调用方法,具体可以包括以下步骤:
步骤210:从软件项目文件中识别软件程序文件包含的工具类,获得工具类的定义信息。其中,工具类为在软件项目文件中的类类型,工具类的定义信息可以是类类型所定义的数据结构和函数等。
遍历软件项目文件的各个软件程序文件,在软件程序文件的程序代码中识别工具类定义标识。根据工具类定义标识提取工具类的类名称和用于定义工具类的程序代码。将工具类的类名称和用于定义工具类的程序代码作为工具类的定义信息。
将工具类的类名称和程序代码作为工具类的定义信息,可以将工具类的整个定义的信息存储在开发工具模板中,首先可以便于编译的时候调用实现函数,其次还提高了开发工具模板的可读性。
步骤220:根据定义信息获取工具类的功能标识信息。
其中,在定义信息中包括有程序代码和注释文本。注释文本往往用于标记和解释程序代码,体现工具类的功能。而且程序代码中还包含数据结构的元素名称和函数名称,这些元素名称和函数名称有时候也可以通过命名的意义来反映工具类的功能。因此定义信息中包含用于反映工具类功能的内容,从定义信息中提取标识工具类对应功能的功能标识信息。
例如,可以识别定义信息中的注释文本;从注释文本中提取标识工具类功能的功能标识信息。也可以根据工具类的定义信息确定工具类的调用方式;根据调用方式确定工具类的调用类型;将工具类的调用类型作为功能标识信息。
步骤230:对工具类的定义信息进行检查,标识用于提醒改进和优化的提示信息。
根据代码编撰规则检测工具类的定义信息,并获得检测结果;当检测结果表示为工具类内无标注信息时,对工具类标识用于提醒标注的提示信息;当检测结果表示为工具类的定义信息可优化时,对工具类标识用于提醒优化代码的提示信息。
步骤240:将定义信息和功能标识信息保存在开发工具模板中。
可以将开放工具模板中的工具类按照工具类的功能标识信息进行分类排放。根据功能标识信息对工具类进行分类,将同种类型的工具类记载在次模板,将不同种类的多个次模板组成开发工具模板。
另外还需要定期更新开发工具模板,及时添加新增的工具类、删除重复或不被调用的工具类。识别软件项目文件中新增的工具类;将新增的工具类保存在开发工具模板。检查开发工具模板是否存在相同功能的工具类;从开发工具模板中移除相同功能的工具类中重复的工具类。获取软件项目文件中对工具类的调用情况;在任一个工具类的调用情况中的调用次数为零时,对该工具类标识用于提醒未调用的提示信息,提醒开发者删除该未被调用的工具类。
步骤250:在处理软件项目文件时,从开发工具模板中调用工具类。
在处理软件项目文件时,如在开发和运行软件项目文件时,软件项目文件的程序代码可以从该软件项目文件的开发工具模板中调用工具类,进行程序的撰写或编译。
另外在撰写软件项目文件时,可以根据功能调用工具类,此时可以根据软件项目文件中所需使用功能,根据该功能对应的功能标识信息,从开发工具模板中查找和调用该功能标识信息对应的工具类。
步骤260:根据功能对开发工具模板的工具类进行检索。
获取检索词;将检索词与定义信息或功能标识信息进行匹配,从开发工具模板中获取与检索词匹配的工具类;返回匹配的工具类,提示开发者在软件项目文件中调用该工具类。
上述工具类调用方法,可以将软件项目文件中分散的工具类的定义代码整合在指定的开发工具模板中,便于在开发工具模板中调用工具类,减少在软件项目文件中遍历和查找多个文件后调用工具类,提高工具类的调用效率。而且在编译的时候调用开发工具模板中的工具类,避免打开多个包含工具类的文件,降低内存的消耗。
在一个实施例中,如图3所示,图3为一个实施例中工具类调用***的结构示意图,本实施例中提供一种工具类调用***,具体可以包括工具类识别模块310、功能标识获取模块320、开发工具模板保存模块330和工具类调用模块340,其中:
工具类识别模块310,用于从软件项目文件中识别软件程序文件包含的工具类,获得工具类的定义信息。
工具类识别模块310中,工具类为在软件项目文件中的类类型。本步骤中,识别在软件项目中所有已定义的工具类,并提取工具类的定义内容,即提取各个工具类的定义信息。工具类的定义信息可以是类类型所定义的数据结构和函数等。所提取的定义信息可以用于建立后续的开发工具模板,便于计算机在执行程序的时候在开发工具模板中调用定义信息内的结构类型和函数,进行程序的编译。
功能标识获取模块320,用于根据定义信息获取工具类的功能标识信息。
功能标识获取模块320中,定义信息中包括有程序代码和注释文本。其中,注释文本往往用于标记和解释程序代码,体现类类型的功能。而且程序代码中还包含数据结构的元素名称和函数名称,这些元素名称和函数名称有时候也可以通过命名的意义来反映类类型的功能。因此定义信息中包含用于反映工具类功能的内容,从定义信息中提取标识工具类对应功能的功能标识信息。
开发工具模板保存模块330,用于将定义信息和功能标识信息保存在开发工具模板中。
开发工具模板可以为在软件项目文件中存储类类型的定义信息的文件。
工具类调用模块340,用于在处理软件项目文件时,从开发工具模板中调用工具类。
工具类调用模块340在处理软件项目文件时,如在开发和运行软件项目文件时,软件项目文件的程序代码可以从该软件项目文件的开发工具模板中调用工具类,进行程序的撰写或编译。
另外在撰写软件项目文件时,可以根据功能调用工具类,此时可以根据软件项目文件中所需使用功能,根据该功能对应的功能标识信息,从开发工具模板中查找和调用该功能标识信息对应的工具类。
上述工具类调用***,可以将软件项目文件中分散的工具类的定义代码整合在指定的开发工具模板中,便于在开发工具模板中调用工具类,减少在软件项目文件中遍历和查找多个文件后调用工具类,提高工具类的调用效率。
而且在编译的时候调用开发工具模板中的工具类,避免打开多个包含工具类的文件,降低内存的消耗。
在面对文件量非常多的大型软件项目时,作为大型软件项目的软件项目文件,其中的软件程序文件繁多且关系复杂,可能会按照框架架构或实现功能等错综复杂的关系进行存放,往往开发者是很难快速地了解大型软件项目并同时熟知分散的工具类,在调用工具类时也无法快速查阅工具类的功能,增加调用工具类的难度。而且当开发者未能查阅到相关功能的工具类了,为了继续进行开发,开发者往往会重复开发和定义该相关功能的工具类,造成开发者进行重复劳动,降低了项目开发的效率以及增加了时间成本。对于查阅大型软件项目来说,提高了项目的可读性。
关于工具类调用***的具体限定可以参见上文中对于工具类调用方法的限定,在此不再赘述。上述工具类调用***中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
如图4所示,图4为一个实施例中计算机设备的内部结构示意图。该计算机设备包括通过***总线连接的处理器、非易失性存储介质、存储器和网络接口。其中,该计算机设备的非易失性存储介质存储有操作***、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种工具类调用方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种工具类调用方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提出了一种计算机设备,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述任一实施例中工具类调用方法的步骤。
在一个实施例中,提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述任一实施例中工具类调用方法的步骤。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种工具类调用方法,其特征在于,包括如下步骤:
从软件项目文件中识别软件程序文件包含的工具类,获得所述工具类的定义信息;
根据所述定义信息获取所述工具类的功能标识信息;
将所述定义信息和所述功能标识信息保存在开发工具模板中;
在处理所述软件项目文件时,从所述开发工具模板中调用所述工具类。
2.根据权利要求1所述的工具类调用方法,其特征在于,所述从软件项目文件中识别软件程序文件包含的工具类,获得所述工具类的定义信息的步骤,包括:
遍历所述软件项目文件的各个软件程序文件,在所述软件程序文件的程序代码中识别工具类定义标识;
根据所述工具类定义标识提取所述工具类的类名称和用于定义所述工具类的程序代码;
将所述工具类的类名称和用于定义所述工具类的程序代码作为所述工具类的定义信息。
3.根据权利要求1所述的工具类调用方法,其特征在于,所述根据所述定义信息获取所述工具类的功能标识信息的步骤,包括:
识别所述定义信息中的注释文本;
从所述注释文本中提取标识工具类功能的功能标识信息;
和/或,根据所述工具类的定义信息确定所述工具类的调用方式;
根据所述调用方式确定所述工具类的调用类型;
将所述工具类的调用类型作为所述功能标识信息。
4.根据权利要求1所述的工具类调用方法,其特征在于,在所述将所述定义信息和所述功能标识信息保存在开发工具模板中的步骤之前,还包括:
根据代码编撰规则检测所述工具类的定义信息,并获得检测结果;
当所述检测结果表示为所述工具类内无标注信息时,对所述工具类标识用于提醒标注的提示信息;
当所述检测结果表示为所述工具类的定义信息可优化时,对所述工具类标识用于提醒优化代码的提示信息。
5.根据权利要求1所述的工具类调用方法,其特征在于,在所述将所述定义信息和所述功能标识信息保存在开发工具模板中的步骤之后,还包括:
识别所述软件项目文件中新增的工具类;
将所述新增的工具类保存在所述开发工具模板;
和/或,
检查所述开发工具模板是否存在相同功能的工具类;
从所述开发工具模板中移除所述相同功能的工具类中重复的工具类。
6.根据权利要求1所述的工具类调用方法,其特征在于,在所述将所述定义信息和所述功能标识信息保存在开发工具模板中的步骤之后,还包括:
获取所述软件项目文件中对所述工具类的调用情况;
在任一个工具类的调用情况中的调用次数为零时,对该工具类标识用于提醒未调用的提示信息。
7.根据权利要求1所述的工具类调用方法,其特征在于,在所述在处理所述软件项目文件时,从所述开发工具模板中调用所述工具类的步骤之前,还包括:
获取检索词;
将所述检索词与定义信息或功能标识信息进行匹配,从所述开发工具模板中获取与所述检索词匹配的工具类;
返回所述匹配的工具类。
8.一种工具类调用***,其特征在于,包括:
工具类识别模块,用于从软件项目文件中识别软件程序文件包含的工具类,获得所述工具类的定义信息;
功能标识获取模块,用于根据所述定义信息获取所述工具类的功能标识信息;
开发工具模板保存模块,用于将所述定义信息和所述功能标识信息保存在开发工具模板中;
工具类调用模块,用于在处理所述软件项目文件时,从所述开发工具模板中调用所述工具类。
9.一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,其特征在于,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述工具类调用方法的步骤。
10.一种存储有计算机可读指令的存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述工具类调用方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910113105.0A CN110007900A (zh) | 2019-02-13 | 2019-02-13 | 工具类调用方法、***、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910113105.0A CN110007900A (zh) | 2019-02-13 | 2019-02-13 | 工具类调用方法、***、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110007900A true CN110007900A (zh) | 2019-07-12 |
Family
ID=67165750
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910113105.0A Pending CN110007900A (zh) | 2019-02-13 | 2019-02-13 | 工具类调用方法、***、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110007900A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110030A (zh) * | 2007-08-23 | 2008-01-23 | 南京联创科技股份有限公司 | 基于java的数据库持久层的开发方法 |
CN105468381A (zh) * | 2016-01-04 | 2016-04-06 | 苏州奇松软件有限公司 | 一种安卓和iOS快速集成第三方类库的***及操作方法 |
CN105843600A (zh) * | 2016-02-29 | 2016-08-10 | 乐视体育文化产业发展(北京)有限公司 | 数据编辑方法、装置及*** |
CN107741845A (zh) * | 2017-12-04 | 2018-02-27 | 山东浪潮通软信息科技有限公司 | 一种自定义类实例的生成方法和装置 |
CN109086038A (zh) * | 2018-07-10 | 2018-12-25 | 千寻位置网络有限公司 | 基于Spark的大数据开发方法及装置、终端 |
-
2019
- 2019-02-13 CN CN201910113105.0A patent/CN110007900A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101110030A (zh) * | 2007-08-23 | 2008-01-23 | 南京联创科技股份有限公司 | 基于java的数据库持久层的开发方法 |
CN105468381A (zh) * | 2016-01-04 | 2016-04-06 | 苏州奇松软件有限公司 | 一种安卓和iOS快速集成第三方类库的***及操作方法 |
CN105843600A (zh) * | 2016-02-29 | 2016-08-10 | 乐视体育文化产业发展(北京)有限公司 | 数据编辑方法、装置及*** |
CN107741845A (zh) * | 2017-12-04 | 2018-02-27 | 山东浪潮通软信息科技有限公司 | 一种自定义类实例的生成方法和装置 |
CN109086038A (zh) * | 2018-07-10 | 2018-12-25 | 千寻位置网络有限公司 | 基于Spark的大数据开发方法及装置、终端 |
Non-Patent Citations (1)
Title |
---|
刘胡来: "app项目设计规范_app设计规范实例", pages 1 - 2, Retrieved from the Internet <URL:《CSDN:https://blog.csdn.net/d06110902002/article/details/80590743》> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10169337B2 (en) | Converting data into natural language form | |
US8875110B2 (en) | Code inspection executing system for performing a code inspection of ABAP source codes | |
US9122540B2 (en) | Transformation of computer programs and eliminating errors | |
US9934220B2 (en) | Content revision using question and answer generation | |
CN111460787A (zh) | 一种话题提取方法、装置、终端设备及存储介质 | |
CN108614898A (zh) | 文档解析方法与装置 | |
US20120158625A1 (en) | Creating and Processing a Data Rule | |
CN109491658A (zh) | 计算机可执行代码数据的生成方法及装置 | |
CN111680634A (zh) | 公文文件处理方法、装置、计算机设备及存储介质 | |
CN109710518A (zh) | 脚本审核方法及装置 | |
WO2006136055A1 (fr) | Procédé d'exploration de données texte | |
CN108563561B (zh) | 一种程序隐性约束提取方法及*** | |
WO2022142635A1 (zh) | 业务信息录入方法、装置、服务器和存储介质 | |
CN112417852B (zh) | 一种代码片段重要性的判断方法和装置 | |
EP3407204A1 (en) | Methods and systems for translating natural language requirements to a semantic modeling language statement | |
CN117272982A (zh) | 基于大型语言模型的协议文本检测方法及装置 | |
CN109471637B (zh) | 电路图的审查脚本调试方法 | |
CN110007900A (zh) | 工具类调用方法、***、计算机设备和存储介质 | |
CN112101019A (zh) | 一种基于词性标注和组块分析的需求模板符合性检查优化方法 | |
WO2024108986A1 (zh) | 一种通信网络业务处理方法和装置 | |
CN109284097A (zh) | 实现复杂数据分析的方法、设备、***及存储介质 | |
CN117951038B (zh) | 基于代码大模型的Rust语言文档测试自动生成方法及装置 | |
JP2011227695A (ja) | テストケース作成システム、方法およびプログラム、並びにテスト観点作成システム | |
US20110191089A1 (en) | Method and apparatus for monitoring demands in a number of models of a system | |
Li et al. | Software Defect Detection Based on Feature Fusion and Alias Analysis |
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 |