[发明专利]一种代码耦合检测方法、装置、终端设备及存储介质有效
申请号: | 201911205937.1 | 申请日: | 2019-11-29 |
公开(公告)号: | CN110928797B | 公开(公告)日: | 2021-01-22 |
发明(设计)人: | 曾庆隆;彭飞;邓竹立 | 申请(专利权)人: | 五八有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/445 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 300450 天津市滨海新区经济技术开*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 耦合 检测 方法 装置 终端设备 存储 介质 | ||
本发明提供了一种代码耦合检测方法、装置、终端设备及存储介质。所述方法,包括:扫描待检测的中间件中的每个文件,获取中间件中的每个引用头文件,以及所述引用头文件在中间件中的引用形式;根据中间件针对所述引用头文件的引用形式,检测所述引用头文件是否为其他工程文件,其他工程文件为除去中间件内部的头文件,中间件在非耦合状态下依赖的系统库和三方库之外的其他文件;响应于存在至少一个引用头文件为其他工程文件,确认中间件中存在代码耦合。解决了现有的代码耦合检测方案适用性不强,代码耦合定位困难,以及检测结果准确性不高的技术问题。取得了提高代码耦合检测的适用性,代码耦合检测结果以及代码耦合定位的准确性的有益效果。
技术领域
本发明涉及计算机技术领域,尤其涉及一种代码耦合检测方法、装置、终端设备及存储介质。
背景技术
为了让一些基础服务能在多个APP(Application,应用程序)间复用,可以将这些基础服务做成若干个中间件。其中,中间件指APP架构中处于业务下方的,为业务提供服务的基础组件,与具体业务无关,如网络服务、路由服务、缓存服务等。但是,在中间件的维护过程中,由于团队人数众多,就算是进行权限控制,也难免会有开发人员为了方便,在中间件中不经过解耦而直接引用了其它工程代码,这样虽然整个APP功能和编译都不会受影响,但是对于该中间件来说后续将难以维护,也很难将其复用到其它APP中,更不能单独编译生成自身的静态库。
相关技术中,为了对中间件进行代码耦合检测,可以对每个中间件工程单独编译,如果编译失败,则这个中间件很有可能存在代码耦合。
但是,对中间件进行编译,首先会比较耗时,而且需要依赖xcode环境,如果把代码放到如win/linux这样的服务器上就无法完成检测;而且,对于代码耦合自动定位比较困难,需要对xcode的编译结果进行分析,但目前xcode并未提供解析编译结果文件的方法;另外,编译失败也不一定是代码耦合造成的,也可能是编译本身问题。由此可见,相关技术中的代码耦合检测方案存在适用性不强,代码耦合定位困难,以及检测结果准确性不高等问题。
发明内容
本发明实施例提供一种代码耦合检测方法、装置、终端设备及存储介质,以解决现有的代码耦合检测方案适用性不强,代码耦合定位困难,以及检测结果准确性不高的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种代码耦合检测方法,包括:
扫描待检测的中间件中的每个文件,获取所述中间件中的每个引用头文件,以及所述引用头文件在所述中间件中的引用形式;
根据所述中间件针对所述引用头文件的引用形式,检测所述引用头文件是否为其他工程文件,所述其他工程文件为除去所述中间件内部的头文件,所述中间件在非耦合状态下依赖的系统库和三方库之外的其他文件;
响应于存在至少一个所述引用头文件为其他工程文件,确认所述中间件中存在代码耦合。
可选地,在所述根据所述中间件针对所述引用头文件的引用形式,检测所述引用头文件是否为其他工程文件的步骤之前,还包括:
获取所述中间件在非耦合状态下依赖的系统库和三方库;
根据所述系统库、所述三方库以及所述中间件,构建所述中间件关联的白名单和头文件列表。
可选地,所述根据所述中间件针对所述引用头文件的引用形式,检测所述引用头文件是否为其他工程文件的步骤,包括:
根据所述中间件针对所述引用头文件的引用形式,确定用以检测所述引用头文件是否为其他工程文件的的检测路径,所述检测路径包括在所述白名单中检测,和/或在所述头文件列表中检测;
根据所述检测路径,检测所述引用头文件是否为其他工程文件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于五八有限公司,未经五八有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911205937.1/2.html,转载请声明来源钻瓜专利网。