Go 上的 DI 有什么比较好的解决方案

2019 年 3 月 4 日
 index90

如题^ 目前看过 dig 和 wire,有人用过吗?有什么坑分享一下。

5457 次点击
所在节点    Go 编程语言
18 条回复
shallyy
2019 年 3 月 4 日
GoCD
50infivedays
2019 年 3 月 4 日
直接写依赖注入不好吗 di 这个缩写也太模糊了
ptyfork
2019 年 3 月 4 日
@50infivedays

还好我回复的慢,差点把 DI 当成 CI 了。
hanabi
2019 年 3 月 4 日
facebook 也有个 inject 库
SabaPing
2019 年 3 月 4 日
手动构造函数注入不用库
anteros
2019 年 3 月 4 日
用 go 去用依赖注入?问号脸。。。
Presbyter
2019 年 3 月 4 日
选择用 go 就是为了追求更高的性能。所以不用依赖注入。
janxin
2019 年 3 月 4 日
dig 是用反射实现的,其实还行

wire 是代码生成的,如果不是很复杂的项目,代码生成不如手工写了
50infivedays
2019 年 3 月 4 日
@ptyfork 我也想了一下 要不是提到了 wire 我也以为是 ci 的什么变种
zjsxwc
2019 年 3 月 4 日
有没有基于 xml 文件的注入?

wire 的方式看起来不爽啊
jlkm2010
2019 年 3 月 4 日
建议换成 Java
fairyto2
2019 年 3 月 4 日
还以为在说数据智能╮( ̄▽ ̄"")╭
Cbdy
2019 年 3 月 4 日
@Presbyter 依赖注入和性能有什么关系?
rockyou12
2019 年 3 月 4 日
依赖注入有啥影响性能的……大部分启动时候扫一下就行了
reus
2019 年 3 月 4 日
@php01 官方博客都教你用 wire,有什么问题?
Presbyter
2019 年 3 月 4 日
@Cbdy go 的依赖注入( dig )用的反射实现的,反射性能不佳。
当然,你要是能做到只在程序初始加载时做一次注入,那就无所谓了。
sampeng
2019 年 3 月 4 日
出门左转是 java … go 需要啥依赖注入…
zjsxwc
2019 年 3 月 5 日
如果不用 xml 配置注入的话,用注解注入我也喜欢。

发现这个 facebook 的项目,它通过注解来注入比 wire 那种手动写一堆 NewXXXXX 函数来注入更自然:

https://github.com/facebookgo/inject

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/540700

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX