DI 框架并不算是 spring 思维,作为减轻开发时心智负担的工具,DI 是真的挺重要的。如果真不重要的话 google 官方也不会亲自下场写 wire 这种工具了
go 的 DI 目前用过觉得靠谱的 DI 框架有两个:
1. wire 谷歌官方的 DI 工具。因为其他的 DI 库基本都是基于反射,性能不行,所以谷歌自己写了个这个基于代码生成的 DI,没有任何性能损失。wire 应该是目前 go 语言中关于 DI 最知名用的最广的一个工具了吧。但是问题在于,wire 是基于代码生成的,所以意味着每次你改动依赖都必须重新生成代码,虽然可以用 go generate,但还是挺麻烦的,尤其有时候你自己都不知道改了依赖,忘了生成代码程序就会出错(当然挺多错误能在编译阶段发现也算是个优点)
@x940727 AOP IOC DI 在你说额的几个 go 这里 如果体现呢? 你觉得这些 context 或者 manager 是软件工程的角色抽象啊 JAVA Spring 的 AOP IOC DI 不知道你理解的是什么意思? AOP 是面向切面编程,动态 /静态编译 , IOC 是 bean 的注入实例化和管理 都没有用反射, 再多是 function programming