CN115309391A - 代码片段复用方法、装置、电子设备和存储介质 - Google Patents

代码片段复用方法、装置、电子设备和存储介质 Download PDF

Info

Publication number
CN115309391A
CN115309391A CN202210833923.XA CN202210833923A CN115309391A CN 115309391 A CN115309391 A CN 115309391A CN 202210833923 A CN202210833923 A CN 202210833923A CN 115309391 A CN115309391 A CN 115309391A
Authority
CN
China
Prior art keywords
code
multiplexing
code segment
language
segment
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
Application number
CN202210833923.XA
Other languages
English (en)
Inventor
胡国庆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bank of China Financial Technology Co Ltd
Original Assignee
Bank of China Financial Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Bank of China Financial Technology Co Ltd filed Critical Bank of China Financial Technology Co Ltd
Priority to CN202210833923.XA priority Critical patent/CN115309391A/zh
Publication of CN115309391A publication Critical patent/CN115309391A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种代码片段复用方法、装置、电子设备和存储介质,其中方法包括:确定复用检索词,复用检索词包括复用关键词和/或复用代码标识;基于复用检索词在代码片段库中的检索结果,确定复用代码片段;对复用代码片段进行语言拆分,得到各语言复用代码片段;将各语言复用代码片段插入至所述复用检索词对应的复用位置,规避了手动复制和人工判断效率低下,以及灵活性差的缺陷,线上代码片段库的构建,可以使得不同系统之间的代码片段能够进行快速复用,降低了开发任务的工作量,提升了开发效率;此外,复用后形成的代码片段又可以用于构建代码片段库,经过多轮的复用和构建过程,可以在极大程度上丰富代码片段库,为代码复用过程提供了的助力。

Description

代码片段复用方法、装置、电子设备和存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种代码片段复用方法、装置、电子设备和存储介质。
背景技术
代码作为众多电子设备功能的实现依据,其是程序员用开发工具所支持的语言编写的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。
在日常开发过程中会存在许多重复的代码片段,不同的系统中也会存在相似的功能,此类功能大多通过相同的代码片段实现,若对此部分代码片段进行重复利用,则能在一定程度上减少开发任务的工作量,换而言之,日常开发任务中常有复用已有代码的需求,而目前的代码复用方式是将代码片段封装成组件,或者直接复制代码片段,而代码的复制工作需要分多次才能完成,例如,需要分别复制代码中的常量定义、参数定义、接口定义、实现类等,如此不仅十分繁琐,效率低下,还存在门槛限制,即复用过程耗时长,灵活性差。
发明内容
本发明提供一种代码片段复用方法、装置、电子设备和存储介质,用以解决现有技术中复用过程耗时长、灵活性差以及存在门槛限制的缺陷。
本发明提供一种代码片段复用方法,包括:
确定复用检索词,所述复用检索词包括复用关键词和/或复用代码标识;
基于所述复用检索词在代码片段库中的检索结果,确定复用代码片段;
对所述复用代码片段进行语言拆分,得到各语言复用代码片段;
将所述各语言复用代码片段插入至所述复用检索词对应的复用位置。
根据本发明提供的一种代码片段复用方法,所述对所述复用代码片段进行语言拆分,得到各语言复用代码片段,包括:
确定所述复用代码片段中的语言标签,所述语言标签用于反映所述复用代码片段的代码内容对应的语言类别;
基于所述语言标签,对所述复用代码片段进行语言拆分,得到各语言复用代码片段。
根据本发明提供的一种代码片段复用方法,所述将所述各语言复用代码片段插入至所述复用检索词对应的复用位置,之后还包括:
生成所述复用代码片段的所述复用代码标识与对应的复用位置之间的映射关系;
在所述复用代码片段的代码内容发生变更的情况下,基于所述映射关系,更新所述代码片段库中的所述复用代码片段。
根据本发明提供的一种代码片段复用方法,所述代码片段库包括私有代码库和公有代码库;
所述私有代码库基于如下步骤确定:
确定待上传的代码片段;
对所述代码片段的代码内容进行过滤处理,得到目标代码片段,所述过滤处理包括格式处理和/或脱敏处理;
将所述目标代码片段上传至服务端,以使所述服务端为所述目标代码片段生成目标代码标识,和/或,基于所述目标代码片段的代码内容和/或代码注释,生成目标关键词,并基于所述目标代码片段,以及所述目标关键词和/或所述目标代码标识,构建所述私有代码库。
根据本发明提供的一种代码片段复用方法,所述公有代码库中各代码片段公用,所述公有代码库基于如下步骤确定:
确定待公开的代码片段;
向所述服务端发送代码公开请求,以使所述服务端在接收到所述代码公开请求,且允许所述代码公开请求的情况下,基于所述代码公开请求的请求内容,构建所述公有代码库;
所述请求内容包括待公开的代码片段,以及所述待公开的代码片段的公开关键词和/或公开代码标识。
根据本发明提供的一种代码片段复用方法,所述基于所述语言标签,对所述复用代码片段进行语言拆分,得到各语言复用代码片段,包括:
对所述复用代码片段进行格式处理;
基于所述语言标签,对格式处理后的复用代码片段进行语言拆分,得到各语言复用代码片段。
本发明还提供一种代码片段复用装置,包括:
复用检索词确定单元,用于确定复用检索词,所述复用检索词包括复用关键词和/或复用代码标识;
复用代码片段确定单元,用于基于所述复用检索词在代码片段库中的检索结果,确定复用代码片段;
复用代码片段拆分单元,用于对所述复用代码片段进行语言拆分,得到各语言复用代码片段;
复用代码片段插入单元,用于将所述各语言复用代码片段插入至所述复用检索词对应的复用位置。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述的代码片段复用方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述的代码片段复用方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述代码片段复用方法。
本发明提供的代码片段复用方法、装置、电子设备和存储介质,利用复用检索词在代码片段库中进行检索,并从检索结果中确定复用代码片段,对复用代码片段进行语言拆分,将拆分后的各语言复用代码片段插入至对应的复用位置,规避了手动复制和人工判断效率低下,以及灵活性差的缺陷,线上代码片段库的构建,可以使得不同系统之间的代码片段能够进行快速复用,在降低开发任务的工作量的同时,提升了开发效率;此外,复用后形成的代码片段又可以用于构建代码片段库,经过多轮的复用和构建过程,可以在极大程度上丰富代码片段库,并且可以使得代码片段库中的代码片段成为自身的知识储备,为代码复用过程提供了的助力。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的代码片段复用方法的流程示意图;
图2是本发明提供的复用代码片段的示例图;
图3是本发明提供的代码片段复用装置的结构示意图;
图4是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
代码作为众多电子设备功能的实现依据,其依靠程序员借助开发工具进行编写得到。在日常开发过程中会存在许多重复的代码片段,不同的系统中也会存在相似的功能,此类功能大多通过相同的代码片段实现,此种情况下,可以对此部分代码片段进行复用,代码复用是一种重要的代码编写手段,其可以降低程序员的开发工作量,提升开发效率。
日常开发任务中,通常会有复用已有代码的需求,对于新手而言,代码复用不仅可以降低开发工作量和开发门槛,还能实现功能的快速上线。目前,大多是将代码片段封装成组件进行复用,或者直接复制代码片段进行复用,此类复用方式耗时长,并且缺乏灵活性,原因在于,封装复用方式需人工介入判断,主观性强,灵活性差;复制复用方式需分多次进行,即需要分别复制代码中的常量定义、参数定义、接口定义、实现类等,如此不仅会使得复用过程十分繁琐,复用效率低下,还存在门槛限制。此外,复用结束后未能形成知识沉淀,导致了资源的流失。
本发明提供一种代码片段复用方法,旨在利用复用检索词从代码片段库中检索得到复用代码片段,并对复用代码片段进行语言拆分,将拆分后的各语言复用代码片段插入至对应的复用位置,规避了手动复制效率低下、灵活性差的缺陷,实现了不同系统之间代码片段的快速复用,降低了开发任务的工作量。图1是本发明提供的代码片段复用方法的流程示意图,如图1所示,该方法的执行主体为客户端,此处的客户端可以是手机,也可以是平板电脑,还可以是其他具备代码编辑功能的设备,本发明实施例对此不做具体限定,该方法包括:
步骤110,确定复用检索词,复用检索词包括复用关键词和/或复用代码标识;
具体地,在进行代码片段复用之前,首先需要确定需要进行复用的代码片段的检索词,即复用检索词,此处的复用检索词可以是复用关键词,也可以是复用代码标识,还可以是其他能够通过检索得到这一代码片段的内容,本发明实施例对此不做具体限定。
此处,复用关键词和复用代码标识分别表示需要进行复用的代码片段的关键词和代码标识,其中,关键词即表征对应代码片段的代码内容的核心词,其可以是一个也可以是多个,本发明实施例对此不做具体限定;复用代码标识则是表征对应代码片段的身份信息的标志,其可以是名称,或者是编号,并且代码标识是唯一的,通过一个代码标识可以确定唯一一个代码片段,即一个代码标识对应有且仅有一个代码片段,换而言之,代码标识与代码片段之间存在一一对应关系。
确定复用检索词后,即可依据复用检索词进行检索,以得到需要进行复用的代码片段,即复用代码片段,并且,可以以此复用代码片段为基准,进行代码片段复用。
步骤120,基于复用检索词在代码片段库中的检索结果,确定复用代码片段;
具体地,在步骤110中,确定复用检索词的基础上,可以执行步骤120,依据复用检索词在代码片段库中的检索结果,确定复用代码片段,这一过程具体包括如下步骤:
首先,需确定代码片段库,此处的代码片段库是预先构建的包含多个可以复用的代码片段的集合,并且,代码片段库中各代码片段均对应有关键词和/或代码标识,换而言之,代码片段库中还包含各代码片段与关键词和/或代码标识之间的对应关系;
而值得注意的是,代码片段库中各代码片段可以来源于客户端,即用户可以通过客户端上传代码片段,以据此上传的代码片段构建代码片段库,具体可以是,在确定上传的代码片段后,为了使此部分代码片段的代码内容规整化,可以对其进行格式处理、脱敏处理等,随后即可将处理后的代码片段上传至服务端,服务端会为其生成关键词和/或代码标识,此后,即可据此关键词和/或代码标识,以及对应的代码片段,构建代码片段库。
经此过程构建得到的代码片段库可以理解为用户私库,即私有代码库,然而,代码片段库中除私有代码库外,还包含公有代码库,公有代码库中的代码片段可以来源于私有代码库,也可以来源于地方,例如,用户直接上传、网络获取等;不同于私有代码库仅供对应用户使用,公有代码库中的代码片段可以供所有人使用,亦可以理解为,私有代码库中的代码片段私用,而公有代码库中的代码片段公用。
随即,可以依据复用检索词,以及代码片段库进行代码片段检索,以得到与复用检索词对应的复用代码片段,即以代码片段库为基准,利用复用检索词进行检索,从而得到检索结果,具体可以是,将复用检索词中的复用关键词和/或复用代码标识作为输入词输入至检索框中,然后以检索框中的输入词为索引,在代码片段库中进行代码片段检索,从而得到复用检索词在代码片段库中的检索结果;
需要说明的是,此处若以复用代码标识为输入词,且复用代码标识正确,则进行代码片段检索仅能得到唯一一个代码片段,即检索结果是唯一的;相应地,若以复用关键词为输入词,则进行代码片段检索能得到一个或多个代码片段,在检索结果中包含多个代码片段的情况下,各代码片段可以按照输入词的出现频次从高到低的顺序进行排序,也可以按照与输入词之间的远近关系进行排序,例如,可以按照与输入词之间词义关系由近到远的顺序进行排序。
此后,即可根据复用检索词在代码片段库中的检索结果,确定复用代码片段,即在复用检索词为中包含复用代码标识,且复用代码标识正确的情况下,将检索得到的唯一的代码片段作为复用代码片段;而在复用检索词为复用关键词的情况下,从检索结果下的代码片段中,选取复用代码片段,选取依据可以是检索结果下各代码片段与本地键入的代码片段之间的契合度,此处的契合度可以通过两者关键词之间的相似度,两者代码内容之间的重复度、衔接度、语义连贯度等衡量。
需要说明的是,此处选取出的复用代码片段即符合复用预期的代码片段,而对于符合复用预期的复用代码片段,则可以直接进行复用。
步骤130,对复用代码片段进行语言拆分,得到各语言复用代码片段;
考虑到从代码片段库中获取的复用代码片段中可能包含多种语言,例如,HTML(Hyper Text Markup Language)、JS(JavaScript)、CSS(Cascading Style Sheets)等,此时若直接对复用代码片段进行复用,即直接进行代码片段插入,则需由人工判断插入位置,这一过程十分繁琐,并且灵活性较差。
鉴于此,为避免上述问题,同时考虑到从代码片段库中获取的复用代码片段中,各语言所对应的代码片段已较为完整,功能相对成熟,因此,本发明实施例中,在得到复用代码片段之后,进行代码片段复用之前,可以对代码片段进行语言拆分,以将其拆分为多个单一语言的复用代码片段,即各语言复用代码片段。
具体地,经过步骤120得到复用代码片段后,即可执行步骤130,对复用代码片段进行语言拆分,从而得到各语言复用代码片段,具体过程可以包括如下步骤:
首先,需确定复用代码片段中的语言种类,即确定复用代码片段的代码内容所对应的语言类别,而这一语言类别可以通过语言标签进行标注,换而言之,语言标签能够反映代码内容所对应的语言类别;
随即,可以以复用代码片段中的语言种类为参考,对复用代码片段进行语言拆分,即将复用代码片段中杂糅的各种语言拆分开来,以得到多个单一语言的复用代码片段,即各语言复用代码片段,具体可以是,依照语言标签对复用代码片段进行拆分,得到各类语言标签下的复用代码片段,又由于一类语言标签即对应一类语言,因而最终得到的实际上是各语言类别下的复用代码片段,即各语言复用代码片段。
步骤140,将各语言复用代码片段插入至复用检索词对应的复用位置。
具体地,在步骤130中,得到各语言复用代码片段的基础上,可以执行步骤140,将各语言复用代码片段插入至复用检索词对应的复用位置,具体过程可以是,在拆分得到各语言类别下的复用代码片段之后,客户端可直接将各语言类别下的复用代码片段插入至复用检索词对应复用位置,而在插入的过程中,由于拆分得到的html对应的代码片段的插入位置与最终的展示位置有关,因而,在对html对应的代码片段进行插入时,需将其插入复用检索词对应的复用位置中的核心位置,即客户端上当前界面中光标所在位置;对应地,由于css和js分别对应的代码片段的插入位置与最终的展示位置之间并无关联,因而可以将css对应的代码片段往后排布,而js由于具备固定结构,因而可以将其插入至复用检索词对应的复用位置中的最后部分。
本发明实施例中,通过将各语言复用代码片段插入至复用检索词对应的复用位置,实现了复用代码片段的整体复用,参照各语言特性进行代码片段插入,避免了人工判断的繁琐工作,实现了自适应的插入以及代码片段的复用,减少了开发任务的工作量,提升了开发效率。
本发明提供的代码片段复用方法,利用复用检索词在代码片段库中进行检索,并从检索结果中确定复用代码片段,对复用代码片段进行语言拆分,将拆分后的各语言复用代码片段插入至对应的复用位置,规避了手动复制和人工判断效率低下,以及灵活性差的缺陷,线上代码片段库的构建,可以使得不同系统之间的代码片段能够进行快速复用,在降低开发任务的工作量的同时,提升了开发效率;此外,复用后形成的代码片段又可以用于构建代码片段库,经过多轮的复用和构建过程,可以在极大程度上丰富代码片段库,并且可以使得代码片段库中的代码片段成为自身的知识储备,为代码复用过程提供了的助力。
基于上述实施例,步骤130包括:
确定复用代码片段中的语言标签,语言标签用于反映复用代码片段的代码内容对应的语言类别;
基于语言标签,对复用代码片段进行语言拆分,得到各语言复用代码片段。
具体地,步骤130中,对复用代码片段进行语言拆分,从而得到各语言复用代码片段的过程,具体包括如下步骤:
首先,需确定复用代码片段中的语言种类,每一语言种类可以通过一类语言标签进行表示,换而言之,语言标签表示了复用代码片段中代码内容对应的语言类别,因而,本发明实施例中可以借助语言标签,确定复用代码片段中的语言种类,即确定复用代码片段中语言标签的种类,以据此反映出复用代码片段的代码内容对应的语言类别的数目;
随即,可以以复用代码片段中的语言标签为参考,对复用代码片段进行语言拆分,从而得到各语言复用代码片段,即将复用代码片段中不同种类的语言标签下的代码内容拆分开来,将同一类语言标签下的代码内容规整到一起,以得到各类语言标签下的复用代码片段,即各语言复用代码片段。
下面以具体的复用代码片段为例,对针对复用代码片段的语言拆分过程进行说明:
图2是本发明提供的复用代码片段的示例图,如图2所示,该复用代码片段为vue语言的代码片段,其中包含html、js以及css三个部分,此三个部分对应有三类语言标签;其中,“<template>”对应html,“<script>”对应js,“<style scoped>”对应css。
依据此三类语言标签,可以对复用代码片段进行语言拆分,将其拆分为各类语言标签下的复用代码片段,即各语言复用代码片段。
其中,拆分后的html对应的复用代码片段为:
“<template>
</template>”
js对应的复用代码片段为:
Figure BDA0003746654110000111
css对应的复用代码片段为:
“<style scoped>
</style>”
通过语言标签,对复用代码片段进行拆分,可以得到较为完整,且功能相对成熟的多个单一语言的复用代码片段,单一语言的复用代码片段的插入相对简便,简化了代码片段复用过程,提升了复用效率。
基于上述实施例,步骤140中,将各语言复用代码片段插入至复用检索词对应的复用位置,之后还包括:
生成复用代码片段的复用代码标识与对应的复用位置之间的映射关系;
在复用代码片段的代码内容发生变更的情况下,基于映射关系,更新代码片段库中的复用代码片段。
考虑到传统方案中在代码复用之后,因无法对复用的代码片段进行整理归纳,以致无法形成自身的知识沉淀,导致资源的严重流失,本发明实施例中,可以在将各语言代码片段插入至复用检索词对应的复用位置之后,对复用代码片段和线上代码片段库进行管理和维护,以待后续代码复用使用,精进了管理维护功能,助益了代码复用过程。
具体地,在步骤140中,将从复用代码片段中拆分得到的各语言复用代码片段插入至复用检索词对应的复用位置之后,还可以记录该复用代码片段的复用代码标识与复用位置之间的对应关系,即本地生成该复用代码片段在复用位置中的具体插入位置,与其复用代码标识之间的映射关系,例如,“10001:view/test:05-20;30-34;”其中,10001为复用代码片段的复用代码标识,此映射关系表示复用代码标识为10001的复用代码片段插入至了view下的test文件中,具体的插入位置为第5行至第20行,以及第30行至第34行。
进一步地,在插入对应的复用位置中的任一语言复用代码片段被编辑的情况下,即复用代码片段的代码内容发生变更的情况下,可以使用上述过程中生成的映射关系,对线上代码片段库进行更新,即可以以复用代码片段的复用代码标识与对应的复用位置之间的映射关系为基准,更新代码片段库中的复用代码片段。
本发明实施例中,在复用代码片段的代码内容被编辑的情况下,使用映射关系直接更新代码片段库中的复用代码片段,实现了复用代码片段和线上代码片段库的统一管理,与此同时,完善了线上代码片段库,并且可以使得代码片段库中的代码片段更加健壮。
基于上述实施例,代码片段库包括私有代码库和公有代码库;
私有代码库基于如下步骤确定:
确定待上传的代码片段;
对代码片段的代码内容进行过滤处理,得到目标代码片段,过滤处理包括格式处理和/或脱敏处理;
将目标代码片段上传至服务端,以使服务端为目标代码片段生成目标代码标识,和/或,基于目标代码片段的代码内容和/或代码注释,生成目标关键词,并基于目标代码片段,以及目标关键词和/或目标代码标识,构建私有代码库。
具体地,代码片段库中包含私有代码库和公有代码库,其中,私有代码库的构建过程,可以包括如下步骤:
首先,需确定用于构建私有代码库的代码片段,即待上传的代码片段,然后,用户可以于客户端上使用开发环境中的编辑器,例如,IDE(Integrated DevelopmentEnvironment),选中待上传的代码片段,并可以利用粘贴板功能获取待上传的代码片段的代码内容;
随即,考虑到待上传的代码片段的代码内容中可能存在敏感词、格式问题等情况,因而,需对其进行过滤处理,以使各个待上传的代码片段的代码内容更加规整,具体可以是,对待上传的代码片段的代码内容进行过滤处理,以使得代码内容的规范度更高,可读性更强;
此处,针对代码内容的过滤操作可以是格式处理、脱敏处理等,可以通过格式处理滤除/去除其中的空格和空行,通过脱敏处理对其中的敏感词句进行剔除或替换,如此可以使得代码内容更加规范化。
随后,即可将过滤处理后得到的目标代码片段上传至服务端,以请求服务端为其生成目标关键词和/或目标代码标识,具体可以是,客户端首先需向服务端发送代码上传请求,该请求可以是http形式的,在服务端接收到代码上传请求,并且通过/同意/允许代码上传请求的情况下,客户端可以将目标代码片段上传至服务端,而服务端在接收到客户端上传的目标代码片段后,可以为其生成目标关键词和/或目标代码标识;
目标代码标识的生成过程,具体可以是,服务端在接收到客户端上传的目标代码片段后,可以按照已有代码片段的编号顺序,对目标代码片段进行编号,或者随机生成编号,从而得到目标代码片段的代码编号;还可以根据目标代码片段的功能、用途等,对目标代码片段进行命名,从而得到目标代码片段的代码名称,此代码编号或代码名称即为目标代码片段的代码标识,即目标代码标识。
目标关键词的生成过程则可以是,服务端可以根据目标代码片段的代码内容,和/或,目标代码片段中的代码注释,为目标代码片段生成关键词,从而得到目标代码片段的关键词,即目标关键词。
此后,服务端可根据目标代码片段,以及目标关键词和/或目标代码标识,构建代码片段库中的私有代码库,具体可以是,服务端将生成的目标关键词和/或目标代码标识,随同目标代码片段一起置入初始代码库,得到私有代码库。
本发明实施例提供的方法,从客户端收集代码片段开始,对收集的待上传的代码片段进行过滤,并将过滤后的目标代码片段上传至服务端,以请求服务端为其生成目标关键词和/或目标代码标识,并据此目标关键词和/或目标代码标识,以及目标代码片段,构建私有片段库,为后续利用复用检索词在代码片段库中进行检索,以得到复用代码片段的过程,提供了关键性的助力,并且过滤可以使得复用代码片段的规范度更高,可读性更强,为复用效率的提升提供了强有力的支撑。
基于上述实施例,公有代码库中各代码片段公用,公有代码库基于如下步骤确定:
确定待公开的代码片段;
向服务端发送代码公开请求,以使服务端在接收到代码公开请求,且允许所述代码公开请求的情况下,基于代码公开请求的请求内容,构建公有代码库;
请求内容包括待公开的代码片段,以及待公开的代码片段的公开关键词和/或公开代码标识。
具体地,代码片段库中除私有代码库外,还包含公有代码库,公有代码库中的各代码片段可以供所有人使用,即公有代码库中的所有代码片段是公用的,而公有代码库的构建过程,可以包括如下步骤:
首先,需确定用于构建公有代码库的代码片段,即待公开的代码片段,此处的待公开的代码片段可以是待上传的代码片段中的某一代码片段,也可以是私有代码库中的某一代码片段,还可以从网络中获取的某一代码片段,本发明实施例对此不做具体限定;
而作为优选,本发明实施例中是从私有代码库中确定待公开的代码片段,即可以从私有代码库中选取适用范围宽、通用性强、代码较为完善、功能相对成熟等优秀的代码片段,并将其作为待公开的代码片段,以据此待公开的代码片段构建公有代码库,供所有人使用。
随即,可以向服务端发送代码公开请求,并在服务端接收到代码公开请求,且审核人员审核通过/同意/允许客户端发出的代码公开请求的情况下,依据代码公开请求的请求内容,构建公有代码库,具体可以是,将代码公开请求的请求内容中包含的待公开的代码片段,以及该代码片段的公开关键词和/或公开代码标识,置入初始公有代码库,从而得到公有代码库。
具体在本发明实施例中,是于私有代码库中发起代码公开请求,在服务端接收到且允许代码公开请求的情况下,将从私有代码库中选取的待公开的代码片段及其公开关键词和/或公开代码标识,一同置入初始公有代码库,最终形成代码片段库中的公有代码库。
基于上述实施例,步骤120中,基于语言标签,对复用代码片段进行语言拆分,得到各语言复用代码片段,包括:
对复用代码片段进行格式处理;
基于语言标签,对格式处理后的复用代码片段进行语言拆分,得到各语言复用代码片段。
具体地,步骤120中,利用语言标签,对复用代码片段进行语言拆分的过程,具体可以包括如下步骤:
首先,可以对从代码片段库中获取到的复用代码片段进行解析,即可以对复用代码片段的组成、结构等进行解析,然后可以对解析后的复用代码片段进行格式处理,此处的格式处理可以理解为针对解析后的复用代码片段的格式化操作,目的是剔除其中的空行、空格等,以使复用代码片段的规范度更高,可读性更强,以及使后续的语言拆分过程和代码复用过程更精简;
随即,可以利用语言标签,对格式处理后的复用代码片段进行语言拆分,将其拆解为多个单一语言的复用代码片段,以备后续代码片段的插入工作,最终能够得到各语言复用代码片段;语言拆分的过程上文已详细说明,此处不再赘述。
本发明提供的代码片段复用方法的总体流程,包括如下步骤:
首先,确定复用检索词,此处的复用检索词包括复用关键词和/或复用代码标识;
随即,基于复用检索词在代码片段库中的检索结果,确定复用代码片段;
其中,代码片段库包括私有代码库和公有代码库;私有代码库中的代码片段仅供对应用户使用,即私有代码库中各代码片段私用,私有代码库的构建过程可以是,首先,确定待上传的代码片段;然后,对代码片段的代码内容进行过滤处理,得到目标代码片段,此处的过滤处理包括格式处理和/或脱敏处理;在这之后,将目标代码片段上传至服务端,以使服务端为目标代码片段生成目标代码标识,和/或,基于目标代码片段的代码内容和/或代码注释,生成目标关键词,并基于目标代码片段,以及目标关键词和/或目标代码标识,构建私有代码库。
而公有代码库中的代码片段可以供所有人使用,即公有代码库中各代码片段公用,公有代码库的构建过程,具体可以是,首先,确定待公开的代码片段;然后,向服务端发送代码公开请求,以使服务端在接收到代码公开请求,且允许代码公开请求的情况下,基于代码公开请求的请求内容,构建公有代码库;其中,请求内容包括待公开的代码片段,以及待公开的代码片段的公开关键词和/或公开代码标识。
随后,对复用代码片段进行语言拆分,得到各语言复用代码片段,具体可以是,确定复用代码片段中的语言标签,此处的语言标签用于反映复用代码片段的代码内容对应的语言类别;然后对复用代码片段进行格式处理,并基于语言标签,对格式处理后的复用代码片段进行语言拆分,从而得到各语言复用代码片段;
此后,即可将各语言复用代码片段插入至复用检索词对应的复用位置。
而在这之后,还可以本地生成复用代码片段的复用代码标识与对应的复用位置之间的映射关系,以在复用代码片段的代码内容发生变更的情况下,基于映射关系,更新代码片段库中的复用代码片段。
本发明实施例提供的方法,支持从客户端上传代码片段,以构建代码片段库,同时还支持通过复用检索词在代码片段库中进行检索,以根据检索结果确定复用代码片段,借助语言标签对复用代码片段进行语言拆分,并将拆分后的各语言复用代码片段插入至对应的复用位置,规避了手动复制和人工判断效率低下,以及灵活性差的缺陷,线上代码片段库的构建,可以使得不同系统之间的代码片段能够进行快速复用,降低了开发任务的工作量,提升了开发效率;此外,复用后形成的代码片段又可以用于构建代码片段库,经过多轮的复用和构建过程,可以在极大程度上丰富代码片段库,并且可以使代码片段库中的代码片段成为自身的知识储备,从而为代码复用过程提供了的助力。
下面对本发明提供的代码片段复用装置进行描述,下文描述的代码片段复用装置与上文描述的代码片段复用方法可相互对应参照。
图3是本发明提供的代码片段复用装置的结构示意图,如图3所示,该装置包括:
复用检索词确定单元310,用于确定复用检索词,所述复用检索词包括复用关键词和/或复用代码标识;
复用代码片段确定单元320,用于基于所述复用检索词在代码片段库中的检索结果,确定复用代码片段;
复用代码片段拆分单元330,用于对所述复用代码片段进行语言拆分,得到各语言复用代码片段;
复用代码片段插入单元340,用于将所述各语言复用代码片段插入至所述复用检索词对应的复用位置。
本发明提供的代码片段复用装置,利用复用检索词在代码片段库中进行检索,并从检索结果中确定复用代码片段,对复用代码片段进行语言拆分,将拆分后的各语言复用代码片段插入至对应的复用位置,规避了手动复制和人工判断效率低下,以及灵活性差的缺陷,线上代码片段库的构建,可以使得不同系统之间的代码片段能够进行快速复用,在降低开发任务的工作量的同时,提升了开发效率;此外,复用后形成的代码片段又可以用于构建代码片段库,经过多轮的复用和构建过程,可以在极大程度上丰富代码片段库,并且可以使得代码片段库中的代码片段成为自身的知识储备,为代码复用过程提供了的助力。
基于上述实施例,复用代码片段拆分单元330用于:
确定所述复用代码片段中的语言标签,所述语言标签用于反映所述复用代码片段的代码内容对应的语言类别;
基于所述语言标签,对所述复用代码片段进行语言拆分,得到各语言复用代码片段。
基于上述实施例,所述装置还包括复用代码片段更新单元,用于:
生成所述复用代码片段的所述复用代码标识与对应的复用位置之间的映射关系;
在所述复用代码片段的代码内容发生变更的情况下,基于所述映射关系,更新所述代码片段库中的所述复用代码片段。
基于上述实施例,所述代码片段库包括私有代码库和公有代码库;
所述装置还包括代码片段库确定单元,用于:
确定待上传的代码片段;
对所述代码片段的代码内容进行过滤处理,得到目标代码片段,所述过滤处理包括格式处理和/或脱敏处理;
将所述目标代码片段上传至服务端,以使所述服务端为所述目标代码片段生成目标代码标识,和/或,基于所述目标代码片段的代码内容和/或代码注释,生成目标关键词,并基于所述目标代码片段,以及所述目标关键词和/或所述目标代码标识,构建所述私有代码库。
基于上述实施例,所述公有代码库中各代码片段公用,所述代码片段库确定单元还用于:
确定待公开的代码片段;
向所述服务端发送代码公开请求,以使所述服务端在接收到所述代码公开请求,且允许所述代码公开请求的情况下,基于所述代码公开请求的请求内容,构建所述公有代码库;
所述请求内容包括待公开的代码片段,以及所述待公开的代码片段的公开关键词和/或公开代码标识。
基于上述实施例,复用代码片段拆分单元330用于:
对所述复用代码片段进行格式处理;
基于所述语言标签,对格式处理后的复用代码片段进行语言拆分,得到各语言复用代码片段。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行代码片段复用方法,该方法包括:确定复用检索词,所述复用检索词包括复用关键词和/或复用代码标识;基于所述复用检索词在代码片段库中的检索结果,确定复用代码片段;对所述复用代码片段进行语言拆分,得到各语言复用代码片段;将所述各语言复用代码片段插入至所述复用检索词对应的复用位置。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的代码片段复用方法,该方法包括:确定复用检索词,所述复用检索词包括复用关键词和/或复用代码标识;基于所述复用检索词在代码片段库中的检索结果,确定复用代码片段;对所述复用代码片段进行语言拆分,得到各语言复用代码片段;将所述各语言复用代码片段插入至所述复用检索词对应的复用位置。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法所提供的代码片段复用方法,该方法包括:确定复用检索词,所述复用检索词包括复用关键词和/或复用代码标识;基于所述复用检索词在代码片段库中的检索结果,确定复用代码片段;对所述复用代码片段进行语言拆分,得到各语言复用代码片段;将所述各语言复用代码片段插入至所述复用检索词对应的复用位置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种代码片段复用方法,其特征在于,包括:
确定复用检索词,所述复用检索词包括复用关键词和/或复用代码标识;
基于所述复用检索词在代码片段库中的检索结果,确定复用代码片段;
对所述复用代码片段进行语言拆分,得到各语言复用代码片段;
将所述各语言复用代码片段插入至所述复用检索词对应的复用位置。
2.根据权利要求1所述的代码片段复用方法,其特征在于,所述对所述复用代码片段进行语言拆分,得到各语言复用代码片段,包括:
确定所述复用代码片段中的语言标签,所述语言标签用于反映所述复用代码片段的代码内容对应的语言类别;
基于所述语言标签,对所述复用代码片段进行语言拆分,得到各语言复用代码片段。
3.根据权利要求1所述的代码片段复用方法,其特征在于,所述将所述各语言复用代码片段插入至所述复用检索词对应的复用位置,之后还包括:
生成所述复用代码片段的所述复用代码标识与对应的复用位置之间的映射关系;
在所述复用代码片段的代码内容发生变更的情况下,基于所述映射关系,更新所述代码片段库中的所述复用代码片段。
4.根据权利要求1至3中任一项所述的代码片段复用方法,其特征在于,所述代码片段库包括私有代码库和公有代码库;
所述私有代码库基于如下步骤确定:
确定待上传的代码片段;
对所述代码片段的代码内容进行过滤处理,得到目标代码片段,所述过滤处理包括格式处理和/或脱敏处理;
将所述目标代码片段上传至服务端,以使所述服务端为所述目标代码片段生成目标代码标识,和/或,基于所述目标代码片段的代码内容和/或代码注释,生成目标关键词,并基于所述目标代码片段,以及所述目标关键词和/或所述目标代码标识,构建所述私有代码库。
5.根据权利要求4所述的代码片段复用方法,其特征在于,所述公有代码库中各代码片段公用,所述公有代码库基于如下步骤确定:
确定待公开的代码片段;
向所述服务端发送代码公开请求,以使所述服务端在接收到所述代码公开请求,且允许所述代码公开请求的情况下,基于所述代码公开请求的请求内容,构建所述公有代码库;
所述请求内容包括待公开的代码片段,以及所述待公开的代码片段的公开关键词和/或公开代码标识。
6.根据权利要求2所述的代码片段复用方法,其特征在于,所述基于所述语言标签,对所述复用代码片段进行语言拆分,得到各语言复用代码片段,包括:
对所述复用代码片段进行格式处理;
基于所述语言标签,对格式处理后的复用代码片段进行语言拆分,得到各语言复用代码片段。
7.一种代码片段复用装置,其特征在于,包括:
复用检索词确定单元,用于确定复用检索词,所述复用检索词包括复用关键词和/或复用代码标识;
复用代码片段确定单元,用于基于所述复用检索词在代码片段库中的检索结果,确定复用代码片段;
复用代码片段拆分单元,用于对所述复用代码片段进行语言拆分,得到各语言复用代码片段;
复用代码片段插入单元,用于将所述各语言复用代码片段插入至所述复用检索词对应的复用位置。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述的代码片段复用方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的代码片段复用方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述代码片段复用方法。
CN202210833923.XA 2022-07-14 2022-07-14 代码片段复用方法、装置、电子设备和存储介质 Pending CN115309391A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210833923.XA CN115309391A (zh) 2022-07-14 2022-07-14 代码片段复用方法、装置、电子设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210833923.XA CN115309391A (zh) 2022-07-14 2022-07-14 代码片段复用方法、装置、电子设备和存储介质

Publications (1)

Publication Number Publication Date
CN115309391A true CN115309391A (zh) 2022-11-08

Family

ID=83857563

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210833923.XA Pending CN115309391A (zh) 2022-07-14 2022-07-14 代码片段复用方法、装置、电子设备和存储介质

Country Status (1)

Country Link
CN (1) CN115309391A (zh)

Similar Documents

Publication Publication Date Title
US10896212B2 (en) System and methods for automating trademark and service mark searches
CN111160045B (zh) 一种游戏资源文件翻译方法、装置及设备
CN112749284B (zh) 知识图谱构建方法、装置、设备及存储介质
CN111176650B (zh) 解析器生成方法、检索方法、服务器及存储介质
CN111638908A (zh) 接口文档生成方法、装置、电子设备及介质
CN112836018A (zh) 应急预案的处理方法及装置
WO2023278052A1 (en) Automated troubleshooter
CN114090671A (zh) 数据导入方法、装置、电子设备及存储介质
CN112559112B (zh) 界面节点定位方法及装置
CN114637726A (zh) 数据处理方法、装置及存储介质
CN112582073B (zh) 医疗信息获取方法、装置、电子设备和介质
CN112966076A (zh) 智能问答问题的生成方法、装置、计算机设备及存储介质
KR20070062800A (ko) 규칙기반의 전자문서 변환방법 및 그 시스템
CN115795046A (zh) 数据加工方法、装置、系统、电子设备和存储介质
US20100057704A1 (en) Automatic Test Map Generation for System Verification Test
CN112685389B (zh) 数据管理方法、数据管理装置、电子设备及存储介质
CN115309391A (zh) 代码片段复用方法、装置、电子设备和存储介质
CN115269862A (zh) 一种基于知识图谱的电力问答与可视化系统
KR20130068633A (ko) 데이터 시각화 장치 및 방법
CN112966198A (zh) 级联样式表数据生成方法、系统、计算机设备及存储介质
CN112699642A (zh) 复杂医疗文书的索引提取方法及装置、介质及电子设备
CN117891531B (zh) 用于saas软件的系统参数配置方法、系统、介质及电子设备
CN112799638B (zh) 无侵入式快速开发方法、平台、终端及存储介质
CN114416323A (zh) 任务创建方法、装置、计算机设备及计算机可读存储介质
CN116933804A (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