一种代码耦合检测的方法及装置制造方法及图纸

技术编号:26478480 阅读:27 留言:0更新日期:2020-11-25 19:22
本申请示出了一种代码耦合检测的方法及装置。根据引用头文件在业务中间件中的引用形式检测引用头文件是否为耦合工程文件,当是时,确定业务中间件中存在代码耦合。耦合工程文件包括除头文件列表中的文件、公共白名单中的文件以及私有白名单中的文件以外的文件;本申请不受运行环境限制,从而提高了代码耦合检测的适用性。不涉及对业务中间件的编译,从而避免编译本身带来的干扰,可以有效提高代码耦合检测结果的准确性。由于本申请针对业务中间件中的每一个引用头文件分别进行检测,可以直接定位出耦合的引用头文件,可以提高代码耦合定位的准确性,且代码耦合定位不需要人工参与,因此可以降低人工成本以及提高耦合定位的效率。

【技术实现步骤摘要】
一种代码耦合检测的方法及装置
本申请涉及计算机
,特别是涉及一种代码耦合检测的方法及装置。
技术介绍
在开发应用程序的过程中,为了使得一些基础服务能在多个应用程序中复用,可以将这些基础服务创建为业务中间件。业务中间件包括应用程序架构中处于上层业务下方的,为上层业务提供通用服务的基础组件,属于通用业务。例如,上层业务包括用户可以直接交互的业务,例如,买房业务、租车业务以及招聘业务等,为了使得用户能够享用这些业务,在这些业务的详情页中有时候需要设置相册、列表以及聊天框等,这些诸如为了支持上层业务提供通用相册服务、通用列表服务、IM服务以及信息推送服务等可以看做通用业务,其与上层业务不是强相关。但是,在维护应用程序中的业务中间件的过程中,有时候开发人员为了方便,可能会将业务中间件不经过解耦而直接引用了其它工程代码,这样虽然应用程序的功能和编译都不会受影响,但是后续将难以维护业务中间件,也很难将其复用到其它应用程序中,也不能单独编译生成业务中间件的静态库。在相关技术中,为了对业务中间件进行代码耦合检测,可以对每个业务中间件本文档来自技高网...

【技术保护点】
1.一种代码耦合检测方法,其特征在于,所述方法包括:/n获取第一业务中间件中的引用头文件,以及,获取所述引用头文件在所述第一业务中间件中的引用形式;/n根据所述引用形式,检测所述引用头文件是否为耦合工程文件,其中,所述耦合工程文件包括除头文件列表中的文件、公共白名单中的文件以及私有白名单中的文件以外的文件,所述公共白名单是至少基于所述第一业务中间件在非耦合状态下依赖的系统库、三方库以及标准中间件生成的,所述私有白名单是至少基于所述第一业务中间件在非耦合状态下依赖的第二业务中间件生成的,所述头文件列表中是至少根据所述第一业务中间件自身包括的文件生成的;/n在至少一个所述引用头文件为所述耦合工程文...

【技术特征摘要】
1.一种代码耦合检测方法,其特征在于,所述方法包括:
获取第一业务中间件中的引用头文件,以及,获取所述引用头文件在所述第一业务中间件中的引用形式;
根据所述引用形式,检测所述引用头文件是否为耦合工程文件,其中,所述耦合工程文件包括除头文件列表中的文件、公共白名单中的文件以及私有白名单中的文件以外的文件,所述公共白名单是至少基于所述第一业务中间件在非耦合状态下依赖的系统库、三方库以及标准中间件生成的,所述私有白名单是至少基于所述第一业务中间件在非耦合状态下依赖的第二业务中间件生成的,所述头文件列表中是至少根据所述第一业务中间件自身包括的文件生成的;
在至少一个所述引用头文件为所述耦合工程文件的情况下,确定所述第一业务中间件中存在代码耦合。


2.根据权利要求1所述的方法,其特征在于,所述根据所述引用形式,检测所述引用头文件是否为耦合工程文件,包括:
根据所述引用形式,确定用于检测所述引用头文件是否为耦合工程文件的检测路径,所述检测路径包括以下至少一者:在所述公共白名单中检测、在所述私有白名单中检测以及在所述头文件列表中检测;
根据所述检测路径,检测所述引用头文件是否为耦合工程文件。


3.根据权利要求2所述的方法,其特征在于,所述根据所述引用形式,检测所述引用头文件是否为耦合工程文件之前,还包括:
至少获取所述第一业务中间件在非耦合状态下依赖的系统库、三方库和标准中间件,至少根据所述系统库、所述三方库以及所述标准中间件,构建所述公共白名单;
至少获取根据所述第一业务中间件自身包括的文件,至少根据所述第一业务中间件自身包括的文件,构建所述头文件列表;
至少获取所述第一业务中间件在非耦合状态下依赖的第二业务中间件,至少根据所述第二业务中间件,构建所述私有白名单。


4.根据权利要求3所述的方法,其特征在于,所述至少获取所述第一业务中间件在非耦合状态下依赖的第二业务中间件,包括:
获取所述第一业务中间件的代码文件中的引用文件的文件标识;
在所述公共白名单和所述头文件列表中查找所述文件标识;
在所述公共白名单和所述头文件列表中未查找到所述文件标识的情况下,将所述引用文件确定为所述第二业务中间件。


5.根据权利要求3所述的方法,其特征在于,所述根据所述引用形式,确定用于检测所述引用头文件是否为耦合工程文件的检测路径,包括:
在所述引用形式为包括所述引用头文件的文件标识的引用形式情况下,确定所述检测路径包括所述头文件列表、所述公共白名单以及所述私有白名单;
或者,
在所述引用形式为包括库标识的引用形式情况下,确定所述检测路径包括所述公共白名单以及所述私有白名单。


6.根据权利要求5所述的方法,其特征在于,所述根据所述检测路径,检测所述引用头文件是否为耦合工程文件,包括:
在所述检测路径包括所述头文件列表、所述公共白名单以及所述私有白名单的情况下,在所述头文件列表、所述公共白名单以及所述私有白名单中分别查找所述引用头文件的文件标识;
如果在所述头文件列表、所述公共白名单以及所述私有白名单中均未查找到所述文件标识,确定所述引用头文件为耦合工程文件。


7.根据权利要求5所述的方法,其特征在于,所述根据所述检测路径,检测所述引用头文件是否为耦合工程文件,包括:
在所述检测路径包括所述公共白名单以及所述私有白名单的情况下,获取所述库标识,在所述公共白名单以及所述私有白名单中查找所述库标识;
如果在所述公共白名单以及所述私有白名单中均未查找到所述库标识,确定所述引用头文件为耦合工程文件。


8.根据权利要求1-7中任一项所述的方法,其特征在于,所述确定所述第一业务中间件中存在代码耦合之后,还包括:
在预设异常文件中记录所述引用头文件的文件信息;
其中,所述文件信息包括所述引用头文件的文件路径和/或所述引用头文件在所述第一业务中间件中的引用信息。


9.一种代码耦合检测装置,其特征在于,所述装置包括:
获取模块,用于获取第一业务中间件中的引用头文件,以及,获取所述引用头文件在所述第一业务中间件中的引用形式;
检测模块,用于根据所述引用形式,...

【专利技术属性】
技术研发人员:曾庆隆彭飞邓竹立
申请(专利权)人:五八有限公司
类型:发明
国别省市:天津;12

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1