代码框架的生成方法及装置
文献发布时间:2023-06-19 16:06:26
技术领域
本发明涉及金融或其他技术领域,具体涉及一种代码框架的生成方法及装置。
背景技术
系统开发过程中,可能会遇到可以复用已有项目工程的情况。快速的从已有项目工程中抽取出待开发系统的框架,能大大缩短新项目的开发流程。现有代码框架提取方式采用人为手工的方式,采用从已有项目代码删减或者从0增加的方式。人为手工的方式存在工作量大、效率不高,且极易缺失必须文件或者代码冗余的情况。
发明内容
本发明实施例提供一种代码框架的生成方法及装置,能够从要复用的项目工程代码出发,根据指定的目标代码框架的起始目标,自动生成目标代码框架的所有代码。该目标代码框架可一键获得,生成效率高,且是一个最小完备集,没有冗余文件,克服了现有人工手动方式从已有项目工程中抽取代码框架的缺点。
一方面,本发明提供一种代码框架的生成方法,包括:
根据待生成的目标代码框架的起始目标,获取要复用的项目工程中与所述起始目标相对应的起始文件;
根据获取的所述起始文件,在所述要复用的项目工程中查找与所述起始文件相关联的关联性文件;
根据所述起始文件和所述关联性文件,生成目标代码框架。
可选的,所述根据待生成的目标代码框架的起始目标,获取要复用的项目工程中与所述起始目标相对应的起始文件包括:
根据待生成的代码框架的目标用户界面,在要复用的项目工程中查找与所述目标用户界面相对应的原始文件,其中,所述要复用的项目工程中保存有用户界面和原始文件之间的映射关系。
可选的,所述根据获取的所述起始文件,在所述要复用的项目工程中查找与所述起始文件相关联的关联性文件包括:
根据获取的所述起始文件,确定每个所述起始文件所依赖的文件;
若所述起始文件所依赖的文件为目标类型的文件,则确定所述起始文件所依赖的文件为与所述起始文件相关联的关联性文件;
若所述要复用的项目工程中具有所述起始文件所依赖的文件的各级父类文件,则确定所述目标起始文件所依赖的文件的各级父类文件为与目标起始文件相关联的关联性文件。
可选的,所述根据所述起始文件和所述关联性文件,生成目标代码框架包括:
将所述起始文件以及所述关联性文件带全路径拷贝至目标目录,生成目标代码框架。
另一方面,本发明提出一种代码框架的生成装置,包括:
获取模块,用于根据待生成的目标代码框架的起始目标,获取要复用的项目工程中与所述起始目标相对应的起始文件;
查找模块,用于根据获取的所述起始文件,在所述要复用的项目工程中查找与所述起始文件相关联的关联性文件;
生成模块,用于根据所述起始文件和所述关联性文件,生成目标代码框架。
可选的,所述获取模块具体用于:
根据待生成的代码框架的目标用户界面,在要复用的项目工程中查找与所述目标用户界面相对应的原始文件,其中,所述要复用的项目工程中保存有用户界面和原始文件之间的映射关系。
可选的,所述查找模块包括:
根据获取的所述起始文件,确定每个所述起始文件所依赖的文件;
若所述起始文件所依赖的文件为目标类型的文件,则确定所述起始文件所依赖的文件为与所述起始文件相关联的关联性文件;
若所述要复用的项目工程中具有所述起始文件所依赖的文件的各级父类文件,则确定所述目标起始文件所依赖的文件的各级父类文件为与目标起始文件相关联的关联性文件。
可选的,所述生成模块具体用于:
将所述起始文件以及所述关联性文件带全路径拷贝至目标目录,生成目标代码框架。
本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一实施例所述的方法。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法。
本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时实现上述任一实施例所述的方法。
本发明实施例提供的代码框架的生成方法及装置,根据待生成的目标代码框架的起始目标,获取要复用的项目工程中与所述起始目标相对应的起始文件;根据获取的所述起始文件,在所述要复用的项目工程中查找与所述起始文件相关联的关联性文件;根据所述起始文件和所述关联性文件,生成目标代码框架。这样,能够从要复用的项目工程代码出发,根据指定的目标代码框架的起始目标,自动生成目标代码框架的所有代码。采用本发明实施例提出的代码框架自动生成方式,能够一键获得可运行代码框架的一个最小完备集,效率高,没有冗余文件,克服了现有人工手动方式从已有项目工程中抽取代码框架的缺点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是本发明一实施例提供的代码框架的生成方法的流程示意图。
图2是本发明一实施例提供的代码框架的生成方法的部分流程示意图。
图3是本发明一实施例提出的一种代码框架的生成装置的结构示意图。
图4是本发明一实施例提出的一种代码框架的生成装置的部分结构示意图。
图5是本发明一实施例提供的电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意排序。
关于本文中所使用的“第一”、“第二”、……等,并非特别指称次序或顺位的意思,亦非用以限定本发明,其仅为了区别以相同技术用语描述的元件或操作。
关于本文中所使用的“包含”、“包括”、“具有”、“含有”等等,均为开放性的用语,即意指包含但不限于。
关于本文中所使用的“及/或”,包括所述事物的任一或全部排序。
本发明实施例提供的代码框架的生成方法的执行主体包括但不限于计算机。
图1是本发明一实施例提供的代码框架的生成方法的流程示意图,如图1所示,本发明实施例提供的代码框架的生成方法,包括:
S101、根据待生成的目标代码框架的起始目标,获取要复用的项目工程中与所述起始目标相对应的起始文件;
本步骤,所述要复用的项目工程是指已有的项目工程,所述待生成的目标代码框架可以以所述要复用的项目工程的部分或全部目标为起始目标,复用所述要复用的项目工程中与所述起始目标相对应的起始文件。从要复用的项目工程代码框架中筛选出来的所述起始文件的文件名组成起始文件集合列表。
S102、根据获取的所述起始文件,在所述要复用的项目工程中查找与所述起始文件相关联的关联性文件;
本步骤,在得到所述起始文件之后,根据所述起始文件,在所述要复用的项目工程中查找与所述起始文件相关联的关联性文件,例如所述起始文件依赖的文件等。具体的,可从起始文件集合列表中出发,选取其中的一个起始文件,依据一定的规则(导入包、继承、特殊文件后缀jsp、html等),解析出起始文件依赖的关联性文件,采用广度遍历的方式,递归找到起始文件依赖的所有关联性文件,将文件名放入到待提取文件集合列表。如此循环,直至待提取文件集合不能再扩充。
S103、根据所述起始文件和所述关联性文件,生成目标代码框架。
本步骤,遍历待提取文件集合中的起始文件和关联性文件,将该集合中的文件复制到新工程目录底下,生成目标代码框架。
本发明实施例提供的代码框架的生成方法,根据待生成的目标代码框架的起始目标,获取要复用的项目工程中与所述起始目标相对应的起始文件;根据获取的所述起始文件,在所述要复用的项目工程中查找与所述起始文件相关联的关联性文件;根据所述起始文件和所述关联性文件,生成目标代码框架。这样,能够从要复用的项目工程代码出发,根据指定的目标代码框架的起始目标,自动生成目标代码框架的所有代码。采用本发明实施例提出的代码框架自动生成方式,能够一键获得可运行代码框架的一个最小完备集,效率高,没有冗余文件,克服了现有人工手动方式从已有项目工程中抽取代码框架的缺点。
可选的,所述根据待生成的目标代码框架的起始目标,获取要复用的项目工程中与所述起始目标相对应的起始文件包括:根据待生成的代码框架的目标用户界面,在要复用的项目工程中查找与所述目标用户界面相对应的原始文件,其中,所述要复用的项目工程中保存有用户界面和原始文件之间的映射关系。
本实施例,所述要复用的项目工程可以是基于MVC(Model View Controller)编程模式编写的;经典MVC模式中,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式,其中,View的定义比较清晰,就是用户界面。
所述待生成的目标代码框架可以以所述要复用的项目工程中的部分或全部用户界面(或用户界面所指向的url链接)为目标用户界面(起始目标),复用所述要复用的项目工程中与所述部分或全部用户界面(或用户界面所指向的url链接)相对应的起始文件;其中,起始文件是MVC模型中的Controller层,例如对于某银行的一已有的项目工程中,Controller层定义了每支交易的入口,交易url和特定Controller之间是存在一个映射关系的,这种映射关系在传统工程是通过部署描述符文件中定义的,在现在springboot工程是通过注解@RequestMapping来定义的;通过指定的交易url,以及交易url和特定controller之间的映射关系,能够获得所述起始文件。
可以预先明确需要确定的交易url,通过部署描述符文件中交易url和特定controller类之间的映射关系来自动获取起始文件。
如图2所示,可选的,所述根据获取的所述起始文件,在所述要复用的项目工程中查找与所述起始文件相关联的关联性文件包括:
S1021、根据获取的所述起始文件,确定每个所述起始文件所依赖的文件;
本步骤,起始文件所依赖的文件,一般在起始文件的行首指明,有import关键字。
S1022、若所述起始文件所依赖的文件为目标类型的文件,则确定所述起始文件所依赖的文件为与所述起始文件相关联的关联性文件;
本步骤,所述起始文件所依赖的文件可以是自主开发的文件,也可以是引用的外部SDK包等;所述目标类型的文件可以指自主开发的文件,一般情况下,自主开发的文件有特定包名格式,而引用的外部SDK包不满足该特定包名格式,在得到起始文件所依赖的文件之后,判断该文件是否为自主开发的文件,如若是,则确定该文件为与所述起始文件相关联的关联性文件,将该文件的文件名加入待提取文件集合。
若起始文件所依赖的文件为引用的外部SDK包,由于在建立新的代码框架时一般会将引用的外部SDK包统一放在指定目录下,故此处无需再单独提取引用的外部SDK包。
S1023、若所述要复用的项目工程中具有所述起始文件所依赖的文件的各级父类文件,则确定所述目标起始文件所依赖的文件的各级父类文件为与目标起始文件相关联的关联性文件。
本步骤,在步骤S1022中得到待提取文件集合中每个起始文件的关联性文件后,在本步骤中还需要确定每个所述关联性文件是否具有父类文件,若有,则确定所述关联性文件的各级父类文件为与目标起始文件相关联的关联性文件,并将所述各级父类文件的文件名加入待提取文件集合。
可选的,所述根据所述起始文件和所述关联性文件,生成目标代码框架包括:将所述起始文件以及所述关联性文件带全路径拷贝至目标目录,生成目标代码框架。
本实施例,复制待提取文件集合中的所有文件到目标目录,并构造对应的文件层次。具体的,假设目标代码框架所处的根路径为/root,根据待提取文件集合-该集合中每个文件都有其在所述要复用的项目工程中所处的文件夹信息,如com.bocsoft.filename.java,则在根路径root下创造一个com文件夹,且在com文件夹下创建bocsoft文件夹,在bocsoft文件夹下创建文件叫做filename.java,通过这种方式实现带全路径拷贝,生成目标代码框架。
图3是本发明一实施例提出的一种代码框架的生成装置的结构示意图,如图3所示,本发明实施例提出的一种代码框架的生成装置,包括:
获取模块21,用于根据待生成的目标代码框架的起始目标,获取要复用的项目工程中与所述起始目标相对应的起始文件;
查找模块22,用于根据获取的所述起始文件,在所述要复用的项目工程中查找与所述起始文件相关联的关联性文件;
生成模块23,用于根据所述起始文件和所述关联性文件,生成目标代码框架。
本发明实施例提供的代码框架的生成装置,根据待生成的目标代码框架的起始目标,获取要复用的项目工程中与所述起始目标相对应的起始文件;根据获取的所述起始文件,在所述要复用的项目工程中查找与所述起始文件相关联的关联性文件;根据所述起始文件和所述关联性文件,生成目标代码框架。这样,能够从要复用的项目工程代码出发,根据指定的目标代码框架的起始目标,自动生成目标代码框架的所有代码。采用本发明实施例提出的代码框架自动生成方式,能够一键获得可运行代码框架的一个最小完备集,效率高,没有冗余文件,克服了现有人工手动方式从已有项目工程中抽取代码框架的缺点。
可选的,所述获取模块具体用于:
根据待生成的代码框架的目标用户界面,在要复用的项目工程中查找与所述目标用户界面相对应的原始文件,其中,所述要复用的项目工程中保存有用户界面和原始文件之间的映射关系。
如图4所示,可选的,所述查找模块22包括:
第一确定单元221,用于根据获取的所述起始文件,确定每个所述起始文件所依赖的文件;
第二确定单元222,用于若所述起始文件所依赖的文件为目标类型的文件,则确定所述起始文件所依赖的文件为与所述起始文件相关联的关联性文件;
第三确定单元223,用于若所述要复用的项目工程中具有所述起始文件所依赖的文件的各级父类文件,则确定所述目标起始文件所依赖的文件的各级父类文件为与目标起始文件相关联的关联性文件。
可选的,所述生成模块具体用于:
将所述起始文件以及所述关联性文件带全路径拷贝至目标目录,生成目标代码框架。
本发明实施例提供的装置的实施例具体可以用于执行上述各应用于服务器的代码框架的生成方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
需要说明的是,本发明实施例提供的代码框架的生成方法及装置可用于金融领域,也可用于除金融领域之外的任意技术领域,本发明实施例对代码框架的生成方法及装置的应用领域不做限定。
图5为本发明一实施例提供的电子设备的实体结构示意图,如图5所示,该电子设备可以包括:处理器(processor)301、通信接口(Communications Interface)302、存储器(memory)303和通信总线304,其中,处理器301,通信接口302,存储器303通过通信总线304完成相互间的通信。处理器301可以调用存储器303中的逻辑指令,以执行上述任一实施例所述的方法,例如包括:根据待生成的目标代码框架的起始目标,获取要复用的项目工程中与所述起始目标相对应的起始文件;根据获取的所述起始文件,在所述要复用的项目工程中查找与所述起始文件相关联的关联性文件;根据所述起始文件和所述关联性文件,生成目标代码框架。
此外,上述的存储器303中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:根据待生成的目标代码框架的起始目标,获取要复用的项目工程中与所述起始目标相对应的起始文件;根据获取的所述起始文件,在所述要复用的项目工程中查找与所述起始文件相关联的关联性文件;根据所述起始文件和所述关联性文件,生成目标代码框架。
本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:根据待生成的目标代码框架的起始目标,获取要复用的项目工程中与所述起始目标相对应的起始文件;根据获取的所述起始文件,在所述要复用的项目工程中查找与所述起始文件相关联的关联性文件;根据所述起始文件和所述关联性文件,生成目标代码框架。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
- 测试代码生成方法及装置、测试框架代码执行方法及装置
- 测试代码生成方法及装置、测试框架代码执行方法及装置