CN112181489B - 代码迁移方法、装置、计算机设备及存储介质 - Google Patents
代码迁移方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112181489B CN112181489B CN202011041497.3A CN202011041497A CN112181489B CN 112181489 B CN112181489 B CN 112181489B CN 202011041497 A CN202011041497 A CN 202011041497A CN 112181489 B CN112181489 B CN 112181489B
- Authority
- CN
- China
- Prior art keywords
- frame
- matched
- target
- character
- converted
- 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.)
- Active
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
- G06F8/76—Adapting program code to run in a different environment; Porting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及数据处理技术领域,尤其涉及一种代码迁移方法、装置、设备及存储介质。该代码迁移方法包括获取源文件以及目标转换框架信息;根据所述待匹配字符串,确定所述源文件对应的待转换框架信息;获取所述框架类型对应的配置文件;根据所述待转换框架信息以及所述目标转换框架信息,从所述多个映射关系中,确定目标映射关系;采用与所述字符类型对应的匹配方式,对所述待匹配字符串进行匹配,得到与所述源框架字符串相匹配的待转换字符串;根据所述目标映射关系,将所述待转换字符串转换为所述目标框架字符串,得到所述源文件在所述目标转换框架下的目标文件。该方法可有效解决目前代码迁移的效率低且通用性不高的问题。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种代码迁移方法、装置、计算机设备及存储介质。
背景技术
随着互联网技术的不断发展,***的规模也不断增大,***也不断向模块化方向转变,许多框架技术更多作为“功能块”引入至***中。
但由于***的发展不断向低耦合性转变,导致***容易产生“技术鸿沟”。当***某一功能模块的切换升级或***业务功能的迁移,需要进行代码逻辑的迁移,由于不同的技术框架存在差异,原有技术框架下的代码逻辑不能适应新技术框架的规则,则需要对原有代码逻辑进行转换以适应新技术框架。目前,代码逻辑的转换一般是通过人工进行分析、判断技术框架之间的差异,然后手动进行代码逻辑的切换,效率低且容易产生人为错误导致新技术框架下的方案存在一定缺陷,导致后续耗费大量的人力成本进行修复工作。
发明内容
本发明实施例提供一种代码迁移方法、装置、计算机设备及存储介质,以解决目前代码迁移的效率低且通用性不高的问题。
一种代码迁移方法,包括:
获取源文件以及目标转换框架信息;其中,所述目标转换框架信息对应一框架类型;所述源文件包括多个待匹配字符串;
根据所述待匹配字符串,确定所述源文件对应的待转换框架信息;
获取所述框架类型对应的配置文件;其中,所述配置文件用于描述多个源框架信息与目标框架信息间的映射关系;
根据所述待转换框架信息以及所述目标转换框架信息,从所述多个映射关系中,确定目标映射关系;其中,所述目标映射关系用于指示与所述待转换框架信息相匹配的源框架信息以及与所述目标转换框架信息相匹配的目标框架信息间的映射关系;所述源框架信息包括源框架字符串;所述目标框架信息包括目标框架字符串;
采用与所述字符类型对应的匹配方式,对所述待匹配字符串进行匹配,得到与所述源框架字符串相匹配的待转换字符串;
根据所述目标映射关系,将所述待转换字符串转换为所述目标框架字符串,得到所述源文件在所述目标转换框架下的目标文件。
一种代码迁移装置,包括:
源文件获取模块,用于获取源文件以及目标转换框架信息;其中,所述目标转换框架信息对应一框架类型;所述源文件包括多个待匹配字符串;
待转换框架信息确定模块,用于根据所述待匹配字符串,确定所述源文件对应的待转换框架信息;
配置文件获取模块,用于获取所述框架类型对应的配置文件;其中,所述配置文件用于描述多个源框架信息与目标框架信息间的映射关系;
目标映射关系确定模块,用于根据所述待转换框架信息以及所述目标转换框架信息,从所述多个映射关系中,确定目标映射关系;其中,所述目标映射关系用于指示与所述待转换框架信息相匹配的源框架信息以及与所述目标转换框架信息相匹配的目标框架信息间的映射关系;所述源框架信息包括源框架字符串;所述目标框架信息包括目标框架字符串;
字符匹配模块,用于采用与所述字符类型对应的匹配方式,对所述待匹配字符串进行匹配,得到与所述源框架字符串相匹配的待转换字符串;
框架转换模块,用于根据所述目标映射关系,将所述待转换字符串转换为所述目标框架字符串,得到所述源文件在所述目标转换框架下的目标文件。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述代码迁移方法的步骤。
一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述代码迁移方法的步骤。
上述代码迁移方法、装置、计算机设备及存储介质中,通过获取源文件以及目标转换框架信息,以便根据源文件中国的待匹配字符串,确定源文件对应的待转换框架信息,无需用户手动选择,对源文件的掌握程度要求低,通用性更高。接着,获取框架类型对应的配置文件,该配置文件中存储有不同框架类型的多个不同框架版本的技术框架之间的映射关系,以实现多种框架技术及框架版本的综合性的***代码维护。然后,根据待转换框架信息以及目标转换框架信息,从多个映射关系中,确定目标映射关系,以便采用与字符类型对应的匹配方式,对待匹配字符串进行匹配,得到与源框架字符串相匹配的待转换字符串,以针对不同的字符类型采取不同的匹配方式进行匹配,通用性高。最后,根据目标映射关系,将待转换字符串转换为目标框架字符串,得到源文件在目标转换框架下的目标文件,以实现代码迁移的自动转换,提高***代码迁移效率,降低迁移过程中的人为错误,便于统一管理以及降低后期维护***成本。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中代码迁移方法的一应用环境示意图;
图2是本发明一实施例中代码迁移方法的一流程图;
图3是图2中步骤S202的一具体流程图;
图4是图2中步骤S204的一具体流程图;
图5是图2中步骤S205的一具体流程图;
图6是图5中步骤S501的一具体流程图;
图7是本发明一实施例中字典树的一具体示例图;
图8本发明一实施例中代码迁移方法的一流程图;
图9是本发明一实施例中代码迁移装置的一示意图;
图10是本发明一实施例中计算机设备的一示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
该代码迁移方法可应用在如图1的应用环境中,其中,计算机设备通过网络与服务器进行通信。计算机设备可以但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。服务器可以用独立的服务器来实现。
在一实施例中,如图2所示,提供一种代码迁移方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:
S201:获取源文件以及目标转换框架信息;其中,目标转换框架信息对应一框架类型;源文件包括多个待匹配字符串。
具体地,本方法可应用在***代码迁移工具中,用于将源文件由当前技术框架转换为所需框架版本的相同或不同技术框架的迁移工具,无需开发人员线下分析所需迁移的技术框架与当前待转换的技术框架之间的差异,并根据手动根据该差异进行代码迁移,可有效提高代码迁移效率且降低人力成本。
其中,框架类型包括但不限于数据库框架(如SQLserver、MySQL、Oracle)、前端技术框架(如VUE、JS)以及后端技术框架(如C、Java、Python)。其中,目标转换框架信息包括目标转换框架和转换框架版本。目标转换框架即为用户指定的所需迁移的新技术框架。转换框架版本即为目标转换框架的框架版本。该待匹配字符串对应源文件中的多个单词。
具体地,用户可在***代码迁移工具的显示界面中根据实际需要选择所需转换的目标转换框架以及对应的转换框架版本,并同时上传待转换的源文件,以使服务器获取源文件以及转换框架信息。
S202:根据待匹配字符串,确定源文件对应的待转换框架信息。
其中,待转换框架信息包括待转换框架和对应的待转换框架版本。待转换框架即源文件对应的技术框架。待转换框架版本即为待转换框架对应的框架版本。
具体地,通过扫描源文件,以通过预先定义的版本特定字符串对源文件进行关键字匹配,若匹配到,则将该版本特定字符串对应的技术框架和框架版本作为该源文件对应的待转换框架信息。其中,版本特定字符串是预先定义的不同技术框架在不同版本中所新增或变更的特定关键字。本实施例中,通过自动检测源文件对应的待转换框架信息,无需用户手动选择,对源文件的掌握程度要求低,通用性更高。
S203:获取框架类型对应的配置文件;其中,配置文件用于描述多个源框架信息与目标框架信息间的映射关系。
其中,配置文件是预先创建好的存储有源框架信息和目标框架信息的描述文件,用于描述多个源框架在源框架版本下对应的源框架字符串与目标转换框架在转换框架版本下对应的目标框架字符串之间的映射关系。该源框架即为待迁移的技术框架。目标框架为需要迁移的新技术框架。该源框架信息包括源框架、源框架版本以及源框架字符串。该源框架字符串用于指示源框架在某一源框架版本下的待转换的关键字。目标框架信息包括目标框架、目标框架版本以及目标框架字符串。目标框架字符串用于指示目标框架在目标框架版本下所需的目标关键字。
本实施例中,通过调用配置文件对源文件中的字符串进行自动转换,不会影响代码的主要逻辑,可有效降低业务逻辑和框架技术的耦合性。
示例性地,配置文件可如下表所示为数据库框架类型的配置文件:
S204:根据待转换框架信息以及目标转换框架信息,从多个映射关系中,确定目标映射关系;其中,目标映射关系用于指示与待转换框架信息相匹配的源框架信息以及与目标转换框架信息相匹配的目标框架信息间的映射关系;源框架信息包括源框架字符串;目标框架信息包括目标框架字符串。
具体地,由于配置文件中存储有多个映射关系,故需要根据用户所选择的待转换框架信息以及目标转换框架信息,从多个映射关系中确定目标映射关系。示例性地,若源文件对应的源框架为ibatis框架,源框架版本为1.10.3,目标转换框架为mybatis、框架版本为4.11.5,则将配置文件中存储的源框架信息中源框架为ibatis、框架版本为1.10.3;目标框架信息为mybatis框架、转换框架版本为4.11.5的映射关系作为目标映射关系。
S205:采用与字符类型对应的匹配方式,对待匹配字符串进行匹配,得到与源框架字符串相匹配的待转换字符串。
其中,字符类型包括但不限于关键字类型和方法类型。具体地,对于不同的字符类型其对应的匹配方式不同,以有针对性地对待匹配字符串进行匹配,适用性更高。可以理解地,由于字符类型包括关键字类型或方法类型,当采用同一关键字匹配算法匹配时,对于方法类型的关键字如try...catch,则只能匹配包括关键字“try”以及catch的代码,但由于方法类型的特殊性,即方法类型的关键字需要成对出现,因此若代码中仅是将“trycatch”作为一变量名,此时,关键字匹配会出现将该单词识别为待转换字符串的错误,导致代码迁移的准确率无法保证,因此需要针对不同的字符类型,采用不同的匹配方式进行匹配,以保证代码迁移的准确率。
S206:根据目标映射关系,将待转换字符串转换为目标框架字符串,得到源文件在目标转换框架下的目标文件。
具体地,根据目标映射关系的描述,可得到多组源框架字符串与目标框架字符串的对应关系,例如(<sqlMapConfig>,<configuration>)、(<sqlMap>、<mapper>),根据该对应关系,以将源文件中与源框架字符串相匹配的待转换字符串转换为对应的目标框架字符串,得到源文件在目标转换框架下的目标文件。
本实施例中,通过获取源文件以及目标转换框架信息,以便根据源文件中国的待匹配字符串,确定源文件对应的待转换框架信息,无需用户手动选择,对源文件的掌握程度要求低,通用性更高。接着,获取框架类型对应的配置文件,该配置文件中存储有不同框架类型的多个不同框架版本的技术框架之间的映射关系,以实现多种框架技术及框架版本的综合性的***代码维护。然后,根据待转换框架信息以及目标转换框架信息,从多个映射关系中,确定目标映射关系,以便采用与字符类型对应的匹配方式,对待匹配字符串进行匹配,得到与源框架字符串相匹配的待转换字符串,以针对不同的字符类型采取不同的匹配方式进行匹配,通用性高。最后,根据目标映射关系,将待转换字符串转换为目标框架字符串,得到源文件在目标转换框架下的目标文件,以实现代码迁移的自动转换,提高***代码迁移效率,降低迁移过程中的人为错误,便于统一管理以及降低后期维护***成本。
在一实施例中,如图3所示,步骤202中,即根据待匹配字符串,确定源文件对应的待转换框架信息,具体包括如下步骤:
S301:根据版本特定字符串对待匹配字符串进行关键字匹配;其中,版本特定字符串为预先定义的技术框架在不同版本下所对应的特定关键字。
其中,关键字匹配包括但不限于采用KMP算法、多模字符串匹配算法(Aho–Corasick)。具体地,此处以多模式匹配算法为例进行说明,可将多个待匹配字符串全量或分批次输入到多模字符串匹配算法中进行处理,以确定源文件中是否存在版本特定字符串相匹配的待匹配字符串。
应当理解的是,多模字符串匹配算法中所需的字典树是通过本实施例中预先定义的多个版本特定字符串构建的,再根据多模式匹配算法中的成功表以及失败表的思想进行字符串匹配,即可确定源文件中存在与版本特定字符串相匹配的关键字。
S302:若源文件中存在与版本特定字符串相匹配的待匹配字符串,则将版本特定字符串对应的框架版本和技术框架作为源文件对应的待转换框架信息。
具体地,若源文件中存在与版本特定字符串相匹配的关键字,则将版本特定字符串对应的框架版本和技术框架作为源文件对应的待转换框架信息,若源文件中不存在与版本特定字符串相匹配的待匹配字符串,则可生成提示信息,以提示用户选择源框架的框架版本。
可以理解地,由若源文件中不存在与版本特定字符串相匹配的待匹配字符串,还可能是由于配置文件中不存在该源框架对应的映射关系,故此时可生成提示信息提示用户添加该映射关系至配置文件中。
示例性地,若ibatis框架在v1版本中sqlMap标签的关键字为<sql-map>,在v2版本中为<sqlMap>,则可将<sql-map>作为ibatis框架在v1版本的版本特定字符串,若源文件中存在与该版本特定字符串相匹配的关键字(即<sql-map>),则可将版本特定字符串对应的框架版本和技术框架作为源文件对应的待转换框架信息,即该源文件的源框架为ibatis框架,源框架版本为v1版本。
在一实施例中,如图4所示,步骤S204中,即根据待转换框架信息以及目标转换框架信息,从多个映射关系中,确定目标映射关系,具体包括如下步骤:
S401:根据待转换框架信息,匹配多个映射关系,确定与待转换框架信息对应的候选映射关系。
具体地,通过待转换框架信息中的源框架以及框架版本,对配置文件中的多个映射关系进行匹配,即从多个映射关系中将包含与待转换框架信息相匹配的映射关系作为候选映射关系。示例性地,若配置文件中包括SQLserver(源框架)--源框架版本为2005--Oracle(目标框架)--目标框架版本为10.2.0.1、SQLserver(源框架)--源框架版本为2005--MySQL(目标框架)--目标框架版本为5.6.23以及SQLserver(源框架)--框架版本为2008--Oracle(目标框架)--目标框架版本为10.2.0.1等映射关系,若待转换框架信息中的源框架为SQLserver、源框架版本2005,则将SQLserver(源框架)--源框架版本为2005--Oracle(目标框架)--目标框架版本为10.2.0.1以及SQLserver(源框架)--框架版本为2005--MySQL(目标框架)--目标框架版本为5.6.23这两条映射关系作为候选映射关系。
S402:根据目标转换框架信息,对候选映射关系进行匹配,确定目标映射关系。
具体地,若目标转换框架信息为:目标框架为MySQL、目标框架版本为5.6.23,则将与转换框架信息相匹配的候选映射关系作为目标映射关系,即如上述示例中所述的SQLserver(源框架)--框架版本为2005--MySQL(目标框架)--目标框架版本为5.6.23。
在一实施例中,如图5所示,步骤S205中,即采用与字符类型对应的匹配方式,对待匹配字符串进行匹配,得到与源框架字符串相匹配的待转换字符串,具体包括如下步骤:
S501:若字符类型为关键字类型,则采用关键字匹配方式对待匹配字符串进行匹配,得到与源框架字符串相匹配的待转换字符串。
其中,关键字类型即指待匹配字符串为技术框架的标签字段,例如<sqlMapConfig>、<sqlMap>。具体地,对于关键字匹配方式即可采用关键字匹配算法进行匹配,如KMP算法、多模字符串匹配算法(Aho–Corasick)。以下对于关键字匹配的方式以多模字符串匹配算法为例进行说明。
S502:若字符类型为方法类型,则采用正则表达式对待匹配字符串进行匹配,得到与源框架字符串相匹配的待转换字符串。
其中,方法类型即指待匹配字符串为表示方法的字段,例如try...catch、try…except等。具体地,对于该种字符类型的待匹配字符串可通过构建正则表达式进行匹配,例如对于匹配try...catch这一待匹配字符串,可构建如下正则表达式进行匹配即[try].*[catch]。本实施例中,通过对不同的字符类型采取不同的匹配方式进行匹配,可有效保证代码迁移的通用性,实现工具化。
在一实施例中,所述源框架字符串包括多个携带顺序标签的待测字符;如图6所示,步骤S501中,即采用关键字匹配方式对待匹配字符串进行匹配,得到与源框架字符串相匹配的待转换字符串,具体包括如下步骤:
S601:根据多个待匹配字符串,构建源文件对应的字典树;其中,字典树包括多个节点字符。
其中,节点字符是指字典树中每一子节点所存储的字符。字典树,又称Trie树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树。Trie树的基本性质包括:
(1)根节点不包含字符,除根节点以外每个节点只包含一个字符。
(2)从根节点到某一个节点,路径上经过的字符连接起来,为该节点对应的字符。
(3)每个节点的所有子节点包含的字符不相同。
具体地,根据待匹配字符串构建对应的字典树的过程如下:首先初始化树结构的根节点(以下简称为root节点),然后从root节点开始依次比较需要***的单词(即待匹配字符串)中的每一字符是否在字典树的子节点中,如果存在就指针指向该子节点,并进行下一个字符(即待匹配字符串的第二位字符)比较,如果字典树中不存在该字符,则新建一个子节点来存储当前的字符,继续进行下一个字符的判断,直到待匹配字符串中的所有字符都判断完成且全部字符都存在于字典树中,则字典树构建完成。
S602:遍历所述字典树,按照顺序标签将每一所述待测字符与所述节点字符进行匹配,得到与所述源框架字符串相匹配的待转换字符串。
具体地,若源框架字符串顺序标签为首位的待测字符在字母树中存在,则将该字符作为当前节点,按照字母树中成功指针的路径,将成功指针指向下一个节点对应的节点字符,若该指针指向的节点字符和框架字符串中的第二顺序标签对应的待测字符匹配,则将该第二顺序标签对应的待测字符作为当前节点,继续执行按照字母树中成功指针的路径,将成功指针指向下一个成功节点对应的节点字符的步骤,直至失败指针指向根节点时,终止循环,获取目标终止节点,基于根节点和终止节点按照字母树中成功指针的路径进行遍历,获取待转换字符串。
示例性地,假设源框架字符串为her,(待测字符即为“h”、“e”、“r”)以图7的字母树为例进行说明(图中虚线部分为失败指针的指向;实线部分为成功指针的路径、root为根节点,灰色圆圈为终止节点),由于首位字符(即“s”)在字母树中存在,则将字符“h”作为作为当前节点,按照字母树中的路径,将成功指针指向下一个节点对应的节点字符,即“e”。
服务器通过读取与源框架字符串的第二顺序标签对应的待测字符(即“h”),并此时成功指针指向的节点字符“h”进行匹配,由图7可知,第二顺序标签对应的待测字符“h”与节点字符“h”匹配,则将该第二顺序标签对应的待测字符作为当前节点,继续执行按照字母树中成功指针的路径,将成功指针指向下一个节点对应的节点字符的步骤,并继续将此时指针指向的节点字符“r”与读取的源框架字符串中的第三位顺序标签对应的待测字符“r”进行匹配,由图7可知,该待测字符“r”与节点字符“r”匹配,且“r”为终止节点,则将root节点到终止节点所得到的单词记录下来作为待转换字符串即“her”,并继续执行按照字母树中成功指针的路径,将成功指针指向下一个节点对应的节点字符的步骤,由于“r”为终止节点,因此按照终止节点“r”的失败指针的指向root节点,终止循环,将root节点到终止节点所得到的单词记录下来作为待转换字符串即“her”。
本实施例中,通过对待匹配字符串构建字典树,可有效减少数据存储空间;然后,通过遍历字典树进行字符串匹配,得到与源框架字符串相匹配的待转换字符串,以最大限度地减少无谓的字符串比较,有效保证查询效率。
在一实施例中,如图8所示,步骤203之后,该代码迁移方法还包括如下步骤:
S701:接收客户端输入的自定义编辑指令,自定义编辑指令包括源框架信息和对应的目标框架信息。
其中,自定义编辑指令是用于触发对配置文件进行自定义编辑的指令。该自定义编辑指令包括但不限于对配置文件进行新增、修改或删除等操作。
示例性地,以自定义编辑指令为“新增”操作为例进行说明。具体地,用户可通过界面中的自定义编辑模块(如按钮形式)进行自定义编辑界面,以便根据自定义编辑界面所显示的待编辑项目进行编辑。该待编辑项目包括源框架信息和对应的目标框架信息,源框架信息包括源框架、源框架版本以及源框架字符串。目标框架信息包括目标框架、目标框架版本以及目标框架字符串,用于可针对上述信息维度进行自定义编辑或配置,以使服务器获取源框架信息和对应的目标框架信息。
S702:响应自定义编辑指令,将源框架信息和对应的目标框架信息关联存储至配置文件中,以更新配置文件。
具体地,服务器响应自定义编辑指令,并将源框架信息和目标框架信息关联存储至所述配置文件中,以更新配置文件。需要说明的是,待编辑项目中的源框架信息和目标框架信息的对应关系是预先设定好的,用户只需对应编辑即可,无需手动设置。本实施例中,通过提供自定义编辑接口以供用户和进行自定义编辑,实现定制化,具有可扩展性高的优点。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种代码迁移装置,该代码迁移装置与上述实施例中代码迁移方法一一对应。如图9所示,该代码迁移装置包括源文件获取模块10、待转换框架信息确定模块20、配置文件获取模块30、目标映射关系确定模块40、字符匹配模块50和框架转换模块60。各功能模块详细说明如下:
源文件获取模块10,用于获取源文件以及目标转换框架信息;其中,目标转换框架信息对应一框架类型;源文件包括多个待匹配字符串。
待转换框架信息确定模块20,用于根据待匹配字符串,确定源文件对应的待转换框架信息。
配置文件获取模块30,用于获取框架类型对应的配置文件;其中,配置文件用于描述多个源框架信息与目标框架信息间的映射关系。
目标映射关系确定模块40,用于根据待转换框架信息以及目标转换框架信息,从多个映射关系中,确定目标映射关系;其中,目标映射关系用于指示与待转换框架信息相匹配的源框架信息以及与目标转换框架信息相匹配的目标框架信息间的映射关系;源框架信息包括源框架字符串;目标框架信息包括目标框架字符串。
字符匹配模块50,用于采用与字符类型对应的匹配方式,对待匹配字符串进行匹配,得到与源框架字符串相匹配的待转换字符串。
框架转换模块60,用于根据目标映射关系,将待转换字符串转换为目标框架字符串,得到源文件在目标转换框架下的目标文件。
具体地,待转换框架信息确定模块包括版本特定字符串匹配单元和待转换框架信息确定单元。
版本特定字符串匹配单元,用于根据版本特定字符串对待匹配字符串进行关键字匹配;其中,版本特定字符串为预先定义的技术框架在不同版本下所对应的特定关键字。
待转换框架信息确定单元,用于若源文件中存在与版本特定字符串相匹配的待匹配字符串,则将版本特定字符串对应的框架版本和技术框架作为源文件对应的待转换框架信息。
具体地,目标映射关系确定模块包括候选映射关系确定单元和目标映射关系单元。
候选映射关系确定单元,用于根据待转换框架信息,匹配多个映射关系,确定与待转换框架信息对应的候选映射关系。
目标映射关系单元,用于确定根据目标转换框架信息,对候选映射关系进行匹配,确定目标映射关系。
具体地,字符匹配模块包括关键字匹配单元和正则匹配单元。
关键字匹配单元,用于若字符类型为关键字类型,则采用关键字匹配方式对待匹配字符串进行匹配,得到与源框架字符串相匹配的待转换字符串。
正则匹配单元,用于若字符类型为方法类型,则采用正则表达式对待匹配字符串进行匹配,得到与源框架字符串相匹配的待转换字符串。
具体地,关键字匹配单元包括字典树构建子单元和遍历匹配单元。
字典树构建子单元,用于根据多个待匹配字符串,构建源文件对应的字典树;其中,字典树包括多个节点字符。
遍历匹配单元,用于遍历字典树,按照源框架字符串中的字符顺序,与节点字符进行匹配,得到与源框架字符串相匹配的待转换字符串。
具体地,该代码迁移装置还包括
自定义编辑指令获取模块,用于接收客户端输入的自定义编辑指令,自定义编辑指令包括源框架信息和对应的目标框架信息。
自定义编辑指令响应模块,用于响应自定义编辑指令,将源框架信息和对应的目标框架信息关联存储至配置文件中,以更新配置文件。
关于代码迁移装置的具体限定可以参见上文中对于代码迁移方法的限定,在此不再赘述。上述代码迁移装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图10所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括计算机存储介质、内存储器。该计算机存储介质存储有操作***、计算机程序和数据库。该内存储器为计算机存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行代码迁移方法过程中生成或获取的数据,如图像识别模型。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种代码迁移方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中的代码迁移方法的步骤,例如图2所示的步骤S201-S206,或者图3至图8中所示的步骤。或者,处理器执行计算机程序时实现代码迁移装置这一实施例中的各模块/单元的功能,例如图9所示的各模块/单元的功能,为避免重复,这里不再赘述。
在一实施例中,提供一计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中代码迁移方法的步骤,例如图2所示的步骤S201-S206,或者图3至图8中所示的步骤,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现上述代码迁移装置这一实施例中的各模块/单元的功能,例如图9所示的各模块/单元的功能,为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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 (8)
1.一种代码迁移方法,其特征在于,包括:
获取源文件以及目标转换框架信息;其中,所述目标转换框架信息对应一框架类型;所述源文件包括多个待匹配字符串;
根据所述待匹配字符串,确定所述源文件对应的待转换框架信息;
获取所述框架类型对应的配置文件;其中,所述配置文件用于描述多个源框架信息与目标框架信息间的映射关系;
根据所述待转换框架信息以及所述目标转换框架信息,从所述多个映射关系中,确定目标映射关系;其中,所述目标映射关系用于指示与所述待转换框架信息相匹配的源框架信息以及与所述目标转换框架信息相匹配的目标框架信息间的映射关系;所述源框架信息包括源框架字符串;所述目标框架信息包括目标框架字符串;
采用与字符类型对应的匹配方式,对所述待匹配字符串进行匹配,得到与所述源框架字符串相匹配的待转换字符串,包括:
若所述字符类型为关键字类型,则采用关键字匹配方式对所述待匹配字符串进行匹配,得到与所述源框架字符串相匹配的待转换字符串;
若所述字符类型为方法类型,则采用正则表达式对所述待匹配字符串进行匹配,得到与所述源框架字符串相匹配的待转换字符串;
所述源框架字符串包括多个携带顺序标签的待测字符;
所述采用关键字匹配方式对所述待匹配字符串进行匹配,得到与所述源框架字符串相匹配的待转换字符串,包括:
根据所述多个待匹配字符串,构建所述源文件对应的字典树;其中,所述字典树包括多个节点字符;
遍历所述字典树,按照所述顺序标签将每一所述待测字符与所述节点字符进行匹配,得到与所述源框架字符串相匹配的待转换字符串;
根据所述目标映射关系,将所述待转换字符串转换为所述目标框架字符串,得到所述源文件在所述目标转换框架下的目标文件。
2.如权利要求1所述代码迁移方法,其特征在于,所述根据所述待匹配字符串,确定所述源文件对应的待转换框架信息,包括:
根据版本特定字符串对所述待匹配字符串进行关键字匹配;其中,所述版本特定字符串为预先定义的技术框架在不同版本下所对应的特定关键字;
若所述源文件中存在与所述版本特定字符串相匹配的待匹配字符串,则将所述版本特定字符串对应的框架版本和技术框架作为所述源文件对应的待转换框架信息。
3.如权利要求1所述代码迁移方法,其特征在于,所述根据所述待转换框架信息以及所述目标转换框架信息,从所述多个映射关系中,确定目标映射关系,包括:
根据所述待转换框架信息,匹配所述多个映射关系,确定与所述待转换框架信息对应的候选映射关系;
根据所述目标转换框架信息,对所述候选映射关系进行匹配,确定所述目标映射关系。
4.如权利要求1所述代码迁移方法,其特征在于,在所述获取所述框架类型对应的配置文件之后,所述代码迁移方法还包括:
接收客户端输入的自定义编辑指令,所述自定义编辑指令包括源框架信息和对应的目标框架信息;
响应所述自定义编辑指令,将所述源框架信息和对应的所述目标框架信息关联存储至所述配置文件中,以更新所述配置文件。
5.一种代码迁移装置,其特征在于,包括:
源文件获取模块,用于获取源文件以及目标转换框架信息;其中,所述目标转换框架信息对应一框架类型;所述源文件包括多个待匹配字符串;
待转换框架信息确定模块,用于根据所述待匹配字符串,确定所述源文件对应的待转换框架信息;
配置文件获取模块,用于获取所述框架类型对应的配置文件;其中,所述配置文件用于描述多个源框架信息与目标框架信息间的映射关系;
目标映射关系确定模块,用于根据所述待转换框架信息以及所述目标转换框架信息,从所述多个映射关系中,确定目标映射关系;其中,所述目标映射关系用于指示与所述待转换框架信息相匹配的源框架信息以及与所述目标转换框架信息相匹配的目标框架信息间的映射关系;所述源框架信息包括源框架字符串;所述目标框架信息包括目标框架字符串;
字符匹配模块,用于采用与字符类型对应的匹配方式,对所述待匹配字符串进行匹配,得到与所述源框架字符串相匹配的待转换字符串,包括:
若所述字符类型为关键字类型,则采用关键字匹配方式对所述待匹配字符串进行匹配,得到与所述源框架字符串相匹配的待转换字符串;
若所述字符类型为方法类型,则采用正则表达式对所述待匹配字符串进行匹配,得到与所述源框架字符串相匹配的待转换字符串;
所述源框架字符串包括多个携带顺序标签的待测字符;
所述采用关键字匹配方式对所述待匹配字符串进行匹配,得到与所述源框架字符串相匹配的待转换字符串,包括:
根据所述多个待匹配字符串,构建所述源文件对应的字典树;其中,所述字典树包括多个节点字符;
遍历所述字典树,按照所述顺序标签将每一所述待测字符与所述节点字符进行匹配,得到与所述源框架字符串相匹配的待转换字符串;
框架转换模块,用于根据所述目标映射关系,将所述待转换字符串转换为所述目标框架字符串,得到所述源文件在所述目标转换框架下的目标文件。
6.如权利要求5所述的代码迁移装置,其特征在于,所述字符匹配模块包括:
关键字匹配单元,用于若所述字符类型为关键字类型,则采用关键字匹配方式对所述待匹配字符串进行匹配,得到与所述源框架字符串相匹配的待转换字符串;
正则匹配单元,用于若所述字符类型为方法类型,则采用正则表达式对所述待匹配字符串进行匹配,得到与所述源框架字符串相匹配的待转换字符串。
7.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4任一项所述代码迁移方法的步骤。
8.一种计算机存储介质,所述计算机存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述代码迁移方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011041497.3A CN112181489B (zh) | 2020-09-28 | 2020-09-28 | 代码迁移方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011041497.3A CN112181489B (zh) | 2020-09-28 | 2020-09-28 | 代码迁移方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112181489A CN112181489A (zh) | 2021-01-05 |
CN112181489B true CN112181489B (zh) | 2023-07-25 |
Family
ID=73944570
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011041497.3A Active CN112181489B (zh) | 2020-09-28 | 2020-09-28 | 代码迁移方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112181489B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12039365B2 (en) * | 2021-03-30 | 2024-07-16 | International Business Machines Corporation | Program context migration |
CN113360184B (zh) * | 2021-06-04 | 2024-06-18 | 曙光信息产业(北京)有限公司 | 多生态间的软件迁移方法、装置、计算机设备及存储介质 |
CN113377917A (zh) * | 2021-06-22 | 2021-09-10 | 云知声智能科技股份有限公司 | 一种多模式匹配方法、装置、电子设备和存储介质 |
CN113656055A (zh) * | 2021-08-20 | 2021-11-16 | 深圳壹账通智能科技有限公司 | ***架构升级方法、装置、计算机设备和存储介质 |
CN114610385B (zh) * | 2022-03-16 | 2023-05-09 | 山东福生佳信科技股份有限公司 | 一种运行环境适配***及方法 |
CN116009960B (zh) * | 2023-02-14 | 2024-01-23 | 花瓣云科技有限公司 | 一种目标微服务迁移方法、***和电子设备 |
CN117270961B (zh) * | 2023-11-21 | 2024-04-12 | 武汉蜂鸟龙腾软件有限公司 | 一种Linux环境下MFC字符资源的解析和加载方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000029678A (ja) * | 1998-05-18 | 2000-01-28 | Ntt Communication Ware Kk | プログラム言語変換方法、変換装置および記録媒体 |
WO2013157008A2 (en) * | 2012-04-18 | 2013-10-24 | Gizmox Ltd. | Code migration systems and methods and an online solutions store |
CN109376142A (zh) * | 2018-09-03 | 2019-02-22 | 中国平安人寿保险股份有限公司 | 数据迁移方法及终端设备 |
CN111008037A (zh) * | 2019-12-17 | 2020-04-14 | 苏州浪潮智能科技有限公司 | 一种代码迁移方法、设备以及存储介质 |
CN111177113A (zh) * | 2019-12-06 | 2020-05-19 | 中国平安财产保险股份有限公司 | 数据迁移方法、装置、计算机设备和存储介质 |
CN111367890A (zh) * | 2020-03-13 | 2020-07-03 | 深圳壹账通智能科技有限公司 | 一种数据迁移的方法、装置、计算机设备及可读存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7571175B2 (en) * | 2005-09-23 | 2009-08-04 | Sap Ag | Transformation directives in datatype definitions |
US8600925B2 (en) * | 2011-06-23 | 2013-12-03 | Microsoft Corporation | Object-relational mapped database initialization |
CN103631632B (zh) * | 2013-11-29 | 2017-08-04 | 华为技术有限公司 | 移植方法及源到源编译器 |
US9886249B2 (en) * | 2015-11-16 | 2018-02-06 | Sap Se | Universal transcompiling framework |
-
2020
- 2020-09-28 CN CN202011041497.3A patent/CN112181489B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000029678A (ja) * | 1998-05-18 | 2000-01-28 | Ntt Communication Ware Kk | プログラム言語変換方法、変換装置および記録媒体 |
WO2013157008A2 (en) * | 2012-04-18 | 2013-10-24 | Gizmox Ltd. | Code migration systems and methods and an online solutions store |
CN109376142A (zh) * | 2018-09-03 | 2019-02-22 | 中国平安人寿保险股份有限公司 | 数据迁移方法及终端设备 |
CN111177113A (zh) * | 2019-12-06 | 2020-05-19 | 中国平安财产保险股份有限公司 | 数据迁移方法、装置、计算机设备和存储介质 |
CN111008037A (zh) * | 2019-12-17 | 2020-04-14 | 苏州浪潮智能科技有限公司 | 一种代码迁移方法、设备以及存储介质 |
CN111367890A (zh) * | 2020-03-13 | 2020-07-03 | 深圳壹账通智能科技有限公司 | 一种数据迁移的方法、装置、计算机设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112181489A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112181489B (zh) | 代码迁移方法、装置、计算机设备及存储介质 | |
CN110765763B (zh) | 语音识别文本的纠错方法、装置、计算机设备和存储介质 | |
CN111666401B (zh) | 基于图结构的公文推荐方法、装置、计算机设备及介质 | |
CN109814854B (zh) | 项目框架生成方法、装置、计算机设备和存储介质 | |
CN109635838A (zh) | 人脸样本图片标注方法、装置、计算机设备及存储介质 | |
CN111176996A (zh) | 测试用例生成方法、装置、计算机设备及存储介质 | |
CN109858045B (zh) | 机器翻译方法和装置 | |
US9858330B2 (en) | Content categorization system | |
CN110046637B (zh) | 一种合同段落标注模型的训练方法、装置及设备 | |
CN111367595B (zh) | 数据处理方法、程序运行方法、装置及处理设备 | |
CN112286934A (zh) | 数据库表导入方法、装置、设备及介质 | |
CN110955608B (zh) | 测试数据处理方法、装置、计算机设备和存储介质 | |
CN111984659B (zh) | 数据更新方法、装置、计算机设备和存储介质 | |
CN112580363A (zh) | 需求文档处理方法、装置、计算机设备及存储介质 | |
CN112036161A (zh) | 需求文档处理方法、装置、设备及存储介质 | |
CN112069236B (zh) | 关联文件的展示方法、装置、设备及存储介质 | |
CN112307169B (zh) | 地址数据的匹配方法、装置、计算机设备及存储介质 | |
CN111240790B (zh) | 一种应用的多语言适配方法、装置、客户端和存储介质 | |
CN116861881A (zh) | 数据处理方法、装置、设备及介质 | |
CN112395880A (zh) | 结构化三元组的纠错方法、装置、计算机设备及存储介质 | |
CN110222193A (zh) | 扫描文字修正方法、装置、计算机设备和存储介质 | |
CN115345166A (zh) | 医疗文本的疾病诊断名识别方法、装置、设备及存储介质 | |
CN115129598A (zh) | 一种sql语句的风险检测方法、装置、***及介质 | |
CN114416847A (zh) | 一种数据转换的方法、装置、服务器及存储介质 | |
CN112463791A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |