V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  matrix1010  ›  全部回复第 1 页 / 共 26 页
回复总数  506
1  2  3  4  5  6  7  8  9  10 ... 26  
习惯就好,轻度 battle 一下还能增加点帖子热度
20 天前
回复了 aababc 创建的主题 程序员 golang 中 error 如何影响 log 和 api 状态
@rainbowStay repo 不是你在 NewService 函数内部创建的,而是传入作为参数。完全符合依赖注入的定义
@kelololy 我其实感兴趣的是过程,比如 code base 规模多大,多少人参与,什么级别的人牵头,大家配合度怎么样,花了多长时间达到了什么目标等等。不同的公司产品不同,面向对象也不同,所以是不是 kpi ,要不要做这类的问题因人/公司/产品而异
@FrankFang128 这是想象还是实际经验?有没有实际开源项目或者 blog 可以参考。或者说 AI 是否能处理复杂依赖 mock ,复杂逻辑理解(大于 100 行代码的单个函数)
@mrjnamei 这个恰好也是我正在试图避免的问题,初始化 service 肯定是有个 NewXxxService 或者 ProvideXxxService 之类的方法,如果单元测试初始化 service 时也使用这些方法就可以覆盖到。但如果 test 里手动构建 struct: testService := &UserServiceImpl{db: db, ...} 这样就检测不到了
@lesismal 依赖注入其实是符合直觉的,因此专门尝试去理解反而比较困难。前面有人说的在 init 里初始化服务就属于非依赖注入的做法,但这么做的开源项目肯定是极少数,因为复杂的大型开源项目肯定是多人协同开发,那项目结构也要达成共识,而多人共识最有可能的就是使用认可度最高的依赖注入模式
@mrjnamei 其实这个 NewApplicationService ,完全可以把 struct 扔给任何 AI 来写. 这种极简单场景我估计任何 AI 都能达到几乎 100%准确率
@FarmerChillax 我问的恰恰正是[依赖注入],假设 FooService 和 BarService 都依赖 BaseService ,但 NewFooService(...)和 NewBarService(...)都各自调用 NewBaseService()一遍而不是先 NewBaseService 再分别传入,这个应当不能说用了依赖注入。当然这一步可以用依赖注入框架自动完成
@Jinnrry 建议你去 https://www.zhihu.com/question/425602814/answer/2930203878 讨论 new 是不是合适,不要武断的说依赖注入==java 味。或者找个 grafana 的 service 比如 https://github.com/grafana/grafana/blob/main/pkg/services/guardian/accesscontrol_guardian.go 看看如果不用依赖注该怎么写怎么测
@houshuu 其实只要你把依赖传入就是 DI ,不用 DI 的话就只能每次需要就 New 一个。在多人协作的情况下看似没用的单元测试有可能会在你意想不到的地方起作用
@kuanat 几十个可能不多,但 初始化十几个个依赖 还是很容易出现的,特别是复杂度很高,多人协作,质量管理不太严格的大型项目上。只能接受而没法改变的情况下依赖注入框架就很方便。interface 方便单元测试 mock 是肯定的,我做的第一轮重构就是这个
@bthulu 这就没意思了兄弟,来点干货不要输出情绪。不 Go 为啥 wire, fx, samber/do 会存在
@aloxaf no, 我不知道 "这种说法容易让人看错", 只是可能大部分人的常识是"依赖注入用的很少,所以提问肯定是问哪些项目使用了依赖注入",基于这种常识无论怎么写都很容易看错
注意我问的是 没有 使用依赖注入,因为使用依赖注入的太容易找。但调研肯定有和没有都包括才比较合适。另外应当是有一定复杂度的项目比如 grafana
@matrix1010 顺带附上我的看法 & 小宣传一下:极狐是一个依托于 gitlab ,面向中国用户的平台。 依托 gitlab 注定了技术的话语权不高,大部分开发做的可能是用户定制化之类的事。面向中国用户则必须接受国内各种不太好的风气。 这就是为什么 OpenCSG ( https://github.com/OpenCSGs)在努力做一个全球化的,完全独立的开源平台
光看这个知乎上下文不够,完整事件是这样的:

极狐 GitLab 停止远程办公: https://zhuanlan.zhihu.com/p/9184020724
举报极狐 GitLab CEO 为美国间谍的视频: https://www.bilibili.com/video/BV1uT6cYbEz2/
极狐 GitLab 回应: https://zhuanlan.zhihu.com/p/10088605857

另外 zhihu 的作者就是举报者
1.5 Flash 的定位就是适合处理已有数据而不是创造内容。像信息提取,文本润色或者简单代码重构之类的任务就非常合适
1  2  3  4  5  6  7  8  9  10 ... 26  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1737 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 16:28 · PVG 00:28 · LAX 08:28 · JFK 11:28
Developed with CodeLauncher
♥ Do have faith in what you're doing.