求推荐 go 的 web 框架,要求是能实现依赖注入的相关玩法

2021-05-17 11:22:47 +08:00
 chogath

类比:

  1. java 之 spring boot
  2. typescript 之 nest.js
5566 次点击
所在节点    程序员
41 条回复
SingeeKing
2021-05-17 11:24:14 +08:00
chogath
2021-05-17 11:28:44 +08:00
我很多年前刚开始工作的时候,也是非常抵制依赖注入的,不就几个构造器嘛,有必要引入重量级 spring 框架么,直到后来写了一个大型系统,系统初始化的时候把一堆对象接来接去非常繁琐,经常一个构造器里会有七八个对象,而这样的构造器又有几十个,项目看上去像一坨屎,改代码像挑大粪。然后后面使用了 spring,改造后整个系统都清爽无比,才对依赖注入产生了不一样的看法。我个人理解,依赖注入这种东西只有在大型系统里用过才有体会。
chogath
2021-05-17 11:31:07 +08:00
Dogtler
2021-05-17 11:40:04 +08:00
有趣,你又懂鼓唇弄舌,又懂战场厮杀。
chogath
2021-05-17 11:43:04 +08:00
@Dogtler 足下才智 与我暗合。
eijnix
2021-05-17 12:41:17 +08:00
我们组用的是 facebook 的 inject go 还可以,不过这个项目已经停止维护了
zjsxwc
2021-05-17 12:44:03 +08:00
golang
依赖注入容器 https://github.com/facebookarchive/inject
web 框架无脑 beego
SorcererXW
2021-05-17 13:00:06 +08:00
推荐 https://github.com/google/wire , 自己写各种 provider, 然后在编译器生成整个注入链路, 不和 web 框架绑定起来, 可以使用任何 web 框架
chogath
2021-05-17 13:23:34 +08:00
@eijnix 感谢
chogath
2021-05-17 13:23:49 +08:00
@zjsxwc 好的,感谢
chogath
2021-05-17 13:24:33 +08:00
@SorcererXW 好滴,我试下,这个玩法我还挺感兴趣的
evilgod528
2021-05-17 13:31:41 +08:00
@SorcererXW #8 推荐
charlie21
2021-05-17 15:43:11 +08:00
前端 angular 框架那种的搞个什么东西都搞个依赖注入来降低复杂度
FreeEx
2021-05-17 15:55:30 +08:00
go 下面的依赖注入不太好用,不过由于 go 的特性,在同一个包下面的变量在不同的 go 文件里面可以互相引用,所以只需要手动初始化一次即可不限量使用。

你可以看下我的这个项目 https://github.com/dushixiang/next-terminal
我也是在摸索 go 的写法
AppxLite
2021-05-17 15:56:31 +08:00
echo
chogath
2021-05-17 15:58:44 +08:00
@FreeEx 感谢您的分享
TuringGunner
2021-05-17 16:00:55 +08:00
手动 wire 吧,貌似没有啥特别靠谱的
chogath
2021-05-17 16:04:09 +08:00
@TuringGunner 好的,感谢 💛
king888
2021-05-17 16:15:27 +08:00
iris 自带依赖注入 https://github.com/kataras/iris/wiki/dependency-injection
endure 也可以实现依赖注入,但是偏应用相关 https://github.com/spiral/endure
king888
2021-05-17 16:17:48 +08:00
iris 补充一下,最近作者有些蛇王,进度更严重,只 commit 捐助名单,但是不影响使用
endure 老毛子的东西,响应比较及时

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

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

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

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

© 2021 V2EX