作者回复: 强!
作者回复: 这段代码的意思是:强制确保userService实现了UserSrv接口。
作者回复: 是的,项目源码结合背后的设计思路,学习效果会翻倍的。学习一次,职业生涯中会一直受益
作者回复: 对的
作者回复: 666666
作者回复: 2个目的: 1. 可以通过context.WithValue进行参数传递,这样就不用通过给函数添加入参的方式进行参数传递了,简单、灵活,扩展性高; 2. 可以通过context.WithTimeout的方式,传递关停信号、过期时间等
作者回复: 这样写是不行的吧,dbIns作为参数传入Secrets没啥意义。因为仓库层的db都是固定的,所以如果这么搞整个仓库调用都要加入固定的dbIns。 store.Secrets(username).List 这种到是可以,Secrets传入的username类似于k8s的namespace
作者回复: 这里使用的是选项模式,好处是,新加参数选项时,不用修改NewApp代码
作者回复: 这里用到了 工厂方法模式模式。可以参考 https://zhuanlan.zhihu.com/p/514427527
作者回复: 在 internal/apiserver/router.go 文件中