本文最后更新于 2024-04-16,文章内容可能已经过时。

InitUpdate

github地址:https://github.com/bearslyricattack/InitUpdate

Init函数是Go语言一个特殊的语法糖,通过使用这个特殊的函数,可以让我们在程序启动时初始化一些连接或者变量。

但是不恰当与频繁的使用Go init会大大增加代码的复杂性,而且因为环境的不同,会导致项目本地启动出现一些问题。为了解决此问题, 可以修改Init变为显式初始化,或者使用nacos等中间件做配置中心等。

但是对较为大型的项目,init函数过多,各个init函数之间的依赖关系比较复杂,难以分析,修改成本较高。此工具就是为了解决这个问题。 通过 "go/parser"包解析项目源代码为抽象语法树,并对每个文件的init函数进行操作:修改函数名,输出特定的语句。可以快速得到各个函数之间的依赖关系,进行init函数的改造。

后续可以通过加入自定义方法等方式,进一步拓展其功能。