背景
公司内部分享了Kratos开源框架,其中有一些思想值得借鉴.
为什么需要依赖注入?
// 附录1
其中提到了依赖注入的2个好处
1.Redis 是基础组件,往往会在项目的很多地方被依赖, 那么如果哪天我们想整体修改 redis sdk 的甚至想把 redis 整体替换成 mysql 时,需要在每个被用到的地方都进行修改,耗时耗力还容易出错。
2.很难对 App 这个类写单元测试,因为我们需要创建一个真实的 redis.Client。
自己的思考:依赖注入的坏处
1.编码违背直觉? 2.可阅读性下降?
参考
1.从 Kratos 设计看 Go 微服务工程实践-Go 的依赖注入框架有两类 2.Fx: Golang中的依赖注入(Dependency Injection)工具(翻译)
原创文章转载请注明出处: Go的依赖注入框架