【技术实现步骤摘要】
一种代码耦合检测方法、装置、终端设备及存储介质
本专利技术涉及计算机
,尤其涉及一种代码耦合检测方法、装置、终端设备及存储介质。
技术介绍
为了让一些基础服务能在多个APP(Application,应用程序)间复用,可以将这些基础服务做成若干个中间件。其中,中间件指APP架构中处于业务下方的,为业务提供服务的基础组件,与具体业务无关,如网络服务、路由服务、缓存服务等。但是,在中间件的维护过程中,由于团队人数众多,就算是进行权限控制,也难免会有开发人员为了方便,在中间件中不经过解耦而直接引用了其它工程代码,这样虽然整个APP功能和编译都不会受影响,但是对于该中间件来说后续将难以维护,也很难将其复用到其它APP中,更不能单独编译生成自身的静态库。相关技术中,为了对中间件进行代码耦合检测,可以对每个中间件工程单独编译,如果编译失败,则这个中间件很有可能存在代码耦合。但是,对中间件进行编译,首先会比较耗时,而且需要依赖xcode环境,如果把代码放到如win/linux这样的服务器上就无法完成检测;而且, ...
【技术保护点】
1.一种代码耦合检测方法,其特征在于,包括:/n扫描待检测的中间件中的每个文件,获取所述中间件中的每个引用头文件,以及所述引用头文件在所述中间件中的引用形式;/n根据所述中间件针对所述引用头文件的引用形式,检测所述引用头文件是否为其他工程文件,所述其他工程文件为除去所述中间件内部的头文件,所述中间件在非耦合状态下依赖的系统库和三方库之外的其他文件;/n响应于存在至少一个所述引用头文件为其他工程文件,确认所述中间件中存在代码耦合。/n
【技术特征摘要】
1.一种代码耦合检测方法,其特征在于,包括:
扫描待检测的中间件中的每个文件,获取所述中间件中的每个引用头文件,以及所述引用头文件在所述中间件中的引用形式;
根据所述中间件针对所述引用头文件的引用形式,检测所述引用头文件是否为其他工程文件,所述其他工程文件为除去所述中间件内部的头文件,所述中间件在非耦合状态下依赖的系统库和三方库之外的其他文件;
响应于存在至少一个所述引用头文件为其他工程文件,确认所述中间件中存在代码耦合。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述中间件针对所述引用头文件的引用形式,检测所述引用头文件是否为其他工程文件的步骤之前,还包括:
获取所述中间件在非耦合状态下依赖的系统库和三方库;
根据所述系统库、所述三方库以及所述中间件,构建所述中间件关联的白名单和头文件列表。
3.根据权利要求2所述的方法,其特征在于,所述根据所述中间件针对所述引用头文件的引用形式,检测所述引用头文件是否为其他工程文件的步骤,包括:
根据所述中间件针对所述引用头文件的引用形式,确定用以检测所述引用头文件是否为其他工程文件的的检测路径,所述检测路径包括在所述白名单中检测,和/或在所述头文件列表中检测;
根据所述检测路径,检测所述引用头文件是否为其他工程文件。
4.根据权利要求2所述的方法,其特征在于,所述根据所述系统库、所述三方库以及所述中间件,构建所述中间件关联的白名单和头文件列表的步骤,包括:
根据所述中间件中包含的全部头文件,以及以.a为文件后缀名的三方库中包含的头文件,构建所述头文件列表;
根据所述系统库以及以.framework为文件后缀名的三方库,构建所述白名单。
5.根据权利要求4所述的方法,其特征在于,所述根据所述中间件针对所述引用头文件的引用形式,确定用以检测所述引用头文件是否为其他工程文件的的检测路径的步骤,包括:
针对每个所述引用头文件,响应于所述中间件针对所述引用头文件的引用形式为基于引号的引用形式,确定所述引用头文件的检测路径为在所述头文件列表中检测所述引用头文件;
响应于所述中间件针对所述引用头文件的引用形式为基于尖括号的引用形式,确定所述引用头文件的检测路径为在所述白名单中检测所述引用头文件。
6.根据权利要求5所述的方法,其特征在于,所述根据所述检测路径,检测所述引用头文件是否为其他工程文件的步骤,包括:
响应于所述引用头文件的检测路径为在所述白名单中检测所述引用头文件,且所述引用头文件的引用形式为基于尖括号且包含库标识的引用形式,获取所述库标识,并在所述白名单中查找所述库标识;
如果在所述白名单中未查找到所述库标识,确认所述引用头文件为其他工程文件;
响应于所述引用头文件的检测路径为在所述白名单中检测所述引用头文件,且所述引用头文件的引用形式为基于尖括号且不包含库标识的引用形式,在所述白名单中查找所述引用头文件的文件标识;
如果在所述白名单中未查找到所述文件标识,确认所述引用头文件为其他工程文件;
响应于所述引用头文件的检测路径为在所述头文件列表中检测所述引用头文件,在所述头文件列表中查找所述引用头文件的文件标识;
如果在所述头文件列表中未查找到所述文件标识,确认所述引用头文件为其他工程文件。
7.根据权利要求1-6中任一项时所述的方法,其特征在于,在所述根据所述中间件针对所述引用头文件的引用形式,检测所述引用头文件是否为其他工程文件的步骤之后,还包括:
响应于所述引用头文件为其他工程文件,记录所述引用头文件的文件信息到预设的异常文件中;
其中,所述文件信息包括所述引用头文件的文件路径、所述引用头文件在所述中间件中的引用信息。
8.一种代码耦合检测装置,其特征在于,包括:
引用头文件扫描模块,用于扫描待检测的中间件中的每个文件,获取所述中间件中的每个引用头文件,以及所述引用头文件在所述中间件中的引用形式;
引用头文件...
【专利技术属性】
技术研发人员:曾庆隆,彭飞,邓竹立,
申请(专利权)人:五八有限公司,
类型:发明
国别省市:天津;12
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。