[发明专利]非覆盖更新代码方法、装置、设备及介质在审
申请号: | 202210686903.4 | 申请日: | 2022-06-16 |
公开(公告)号: | CN114924771A | 公开(公告)日: | 2022-08-19 |
发明(设计)人: | 杨俊波 | 申请(专利权)人: | 平安科技(深圳)有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 深圳市沃德知识产权代理事务所(普通合伙) 44347 | 代理人: | 高杰;于志光 |
地址: | 518000 广东省深圳市福田区福*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 覆盖 更新 代码 方法 装置 设备 介质 | ||
本发明涉及人工智能技术领域,提供了一种非覆盖更新代码方法、装置、设备及介质。该方法包括将代码数据和代码模型进行合并生成待更新文件;若存储有源代码文件,则根据待更新文件的类型获取预设的语法模型;利用语法模型加载待更新文件与源代码文件,分别生成第一语法树和第二语法树,将第一语法树与第二语法树进行分析比对,确定出待插入内容;分别对待更新文件和源代码文件进行解析,得到第一哈希表和第二哈希表,根据预设哈希函数将第一哈希表和第二哈希表进行比对,确定出插入位置,将待插入内容插入所述插入位置生成目标文件。本发明还涉及区块链技术领域,上述插入位置、待插入内容还可以存储于一区块链的节点中。
技术领域
本发明涉及人工智能技术领域,尤其涉及一种非覆盖更新代码方法、装置、设备及介质。
背景技术
在应用程序发布之后,为了修复隐藏的错误、漏洞等问题或发布新功能以改善用户体验,需要对应用程序进行更新。
在代码生成器生成新代码后,现有的更新方法是,要么将新代码直接全面覆盖之前的老代码,同时也将开发人员在维护期间手动修改的代码覆盖掉,容易出现BUG(错误、漏洞等)问题;要么将新代码追加到老代码之后,再人工检查合并,容易造成代码重复编译出错和工作效率低的问题。
发明内容
鉴于以上内容,本发明提供一种非覆盖更新代码方法、装置、设备及介质,其目的在于解决现有技术中代码更新容易出现BUG和效率低的技术问题。
为实现上述目的,本发明提供一种非覆盖更新代码方法,该方法包括:
获取代码数据和代码模板,将所述代码数据和所述代码模型进行合并,生成待更新文件;
判断预设工程库是否存储有所述待更新文件对应的源代码文件,若预设工程库存储有所述源代码文件,则根据所述待更新文件的类型获取预设的语法模型;
利用所述语法模型加载所述待更新文件与所述源代码文件,分别生成所述待更新文件的第一语法树和所述源代码文件的第二语法树,将所述第一语法树与所述第二语法树进行分析比对,确定出所述待更新文件中有差异的代码区块作为待插入内容;
分别对所述待更新文件和所述源代码文件进行解析,得到所述待更新文件的第一哈希表和所述源代码文件的第二哈希表,根据预设哈希函数将所述第一哈希表和所述第二哈希表进行比对,根据比对得到的结果,确定出所述待插入内容在所述源代码文件中的插入位置,将所述待插入内容插入所述插入位置生成目标文件。
优选的,所述获取代码数据和代码模板,将所述代码数据和所述代码模型进行合并,生成待更新文件,包括:
从预设数据库获取生成代码的数据表结构信息和工程配置信息作为代码数据,及获取所述生成代码的类型的代码模板;
根据所述代码模板的引擎框架将所述数据表结构信息和所述工程配置信息填充至所述代码模板,生成所述待更新文件。
优选的,所述根据所述代码模板的引擎框架将所述数据表结构信息和所述工程配置信息填充至所述代码模板,生成所述待更新文件,包括:
根据所述代码模板的引擎框架,读取所述数据表结构信息、所述工程配置信息与所述代码模板路径之间的预设映射关系,
根据所述预设映射关系,将所述数据表结构信息的表名、字段名称、字段类型、字段属性与所述工程配置信息填充至代码模板对应的位置,生成所述待更新文件。
优选的,在所述判断预设工程库是否存储有所述待更新文件对应的源代码文件之前,包括:
读取所述待更新文件在预设数据库的目录信息,生成所述待更新文件的路径信息;
根据所述待更新文件的路径信息,扫描预设工程库所有工程文件的路径信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于平安科技(深圳)有限公司,未经平安科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210686903.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:适用于机翼的环量控制方法
- 下一篇:背光模组和显示装置