首页 > 后端开发 > Golang > 聊聊Go中的循环依赖检测工具(go-cyclic)

聊聊Go中的循环依赖检测工具(go-cyclic)

藏色散人
发布: 2022-12-12 20:21:44
转载
6521 人浏览过

本篇文章给大家介绍有关Golang的相关知识,聊聊开源Go中的一个循环依赖检测工具(go-cyclic) ,希望对大家有所帮助。

go-cyclic 循环依赖解决工具

问题描述

      作为一个 Go 开发者,经常会在大型项目中遇到包的循环依赖问题。
      如果 Golang 出现循环依赖,那么会在编译时抛出异常。

什么时候会出现循环依赖?

      如果有两个包:package a 和 package b。当在包a依赖包b,包b依赖包a时,就会产生循环依赖。真实情况可能会更复杂一些。例如,如包a依赖包b,包b依赖包c,包c又依赖包a时,形成一个环。
613af3cab6c10e8bc8a54ab58e438f6.jpg15bf46aa85db4505bf76d96025c5f12.jpg

import cycle not allowed
登录后复制

      而且如果项目很大的时候,一个包下面有很多 .go 文件,只提示包与包的循环引用(如上图),是很难定位到哪个 .go 文件和哪个 .go 文件直接进行了循环引用,难以排查。

go-cyclic 简单用法

      github地址:github.com/elza2/go-cyclic (欢迎各位大佬提 pr)

       go-cyclic 可以用来检查项目是否存在循环依赖,并且可以定位到具体的 .go 文件。帮助快速定位循环问题。

快速开始

go install github.com/elza2/go-cyclic@latest
# path 路径要设置为 go.mod 文件所在的路径.go-cyclic gocyclic --dir .path
登录后复制
# success output.Success. Not circular dependence.# failed output.Failed. 1 circular dependence chains were found.┌---→    app.go┆          ↓
┆       routes.go┆          ↓
└---    handler.go
登录后复制

3e7f1b117b71ee5ef154a0c322d7073.jpg

以上是聊聊Go中的循环依赖检测工具(go-cyclic)的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
go
来源:learnku.com
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板