V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
V2EX  ›  chaleaochexist  ›  全部回复第 3 页 / 共 65 页
回复总数  1284
1  2  3  4  5  6  7  8  9  10 ... 65  
2025 年 9 月 15 日
回复了 Veiled 创建的主题 职场话题 从来没这么焦虑过
昨天和室友一起参加了一场线下面试,其他人基本都顺利过了一面,接下来只需要进 HR 面了,而我却在招聘进度里看到“暂不匹配”。
>>> 这里是重点, 和室友讨论一下, 或者自己反思一下, 差在哪里?

另外问问大家,如果一开始就选择了测试这条路,是不是后面转开发就真的很难了。
>>> 是的, 本人恰好有类似经历, (但是本人成功了), 知道其中的难度和付出. 譬如降薪, 和机缘巧合.
本人,测试跳槽转开发, 虽然没被开除但是特别难受, 机缘巧合原公司缺一个测试开发(测试团队的纯开发), 后面一步一步的转成真正的开发. 如果没有原公司的这次机会估计也是很难的.
2025 年 8 月 22 日
回复了 Ethan212 创建的主题 分享发现 [杭州为新婚夫妇发放 1000 元消费券] 🤡
@Configuration 再加一条规则, 每笔消费只可用一张券 哈哈...
2025 年 8 月 15 日
回复了 Orchestraa 创建的主题 旅行 9 月初大连->烟台->威海->青岛求推荐路线与好玩的地方
先去大连, 因为大连有烟台威海船票
2025 年 8 月 15 日
回复了 chaleaochexist 创建的主题 Go 编程语言 咨询 golang 接口导入问题
@spritecn 举个例子佬.
2025 年 8 月 14 日
回复了 chaleaochexist 创建的主题 Go 编程语言 咨询 golang 接口导入问题
@cryptovae 主要是为了单元测试.

@mcfog 哦!!! soga 我试试, 从来没见过还可以这么写. 受教了!!!
2025 年 8 月 14 日
回复了 chaleaochexist 创建的主题 Go 编程语言 咨询 golang 接口导入问题
@sthwrong 你是天才! 谢谢.
2025 年 8 月 14 日
回复了 wKong753900 创建的主题 程序员 有没有也是后端+架构+管理层的 v 友呀?
2 、后端的 IDE ,基本以 IDEA 为主,Cursor ,VS Code 调试后端感觉都没 IDEA 好用。PS:我主要是 Java+Go

如果你是 Java 我还不好说什么.
Go 的话, 建议你试试 vscode.
2025 年 8 月 14 日
回复了 chaleaochexist 创建的主题 Go 编程语言 请教 golang 依赖注入的实际问题
@sthwrong #34
"依赖就分错了,provider 依赖 repo , 提供方法返回 clients ,handler 依赖 clients ,提供方法根据传入 clients 和 cmd 构建单个或者多个 handler ,task 依赖 handler ,提供方法执行 handler ,每个实现自己声明一个接口 。依赖清晰了,每一层都可以在 test 中声明新的 mock 实例实现 mock 方法替代调用。"

提供方法返回 clients 中的 clients 是接口还是结构体, 接口的话定义在哪里?
针对这个问题 我又 发了个帖子
https://v2ex.com/t/1152334#reply0

大佬感兴趣的话, 点拨一二..
换小号就行了.
2025 年 8 月 13 日
回复了 chaleaochexist 创建的主题 Go 编程语言 请教 golang 依赖注入的实际问题
@sthwrong 虽然你说的有瑕疵, 但是给我提供了新思路,我明天试一下. 谢谢佬友!!!
2025 年 8 月 13 日
回复了 chaleaochexist 创建的主题 Go 编程语言 请教 golang 依赖注入的实际问题
@NessajCN 我没话讲了大佬, 后端 这么做不是太正常了吗?
一个 service 有多少个 io 操作啊 这都是最简单的了.
2025 年 8 月 13 日
回复了 chaleaochexist 创建的主题 Go 编程语言 请教 golang 依赖注入的实际问题
@sthwrong 明白你的意思 你把 repo 放 provider 里了 就迎刃而解了. 这样就不需要 动态初始化了是吧.

逻辑上是的, 但是不符合业务逻辑吖...
2025 年 8 月 13 日
回复了 chaleaochexist 创建的主题 Go 编程语言 请教 golang 依赖注入的实际问题
@NessajCN 啊? 我没跟上.. 啥意思?

我得意思是
```

type Repo struct {
db *sql.DB
}

func (r *Repo) GetUserByID(userID int) (*User, error) {
// ...
}

type UserService struct {
repo Repo
}

func NewService(repo Repo) *UserService {
return &UserService{repo: repo}
}

func (s *UserService) FindUserByID(userID int) (*User, error) {
user, err := s.repo.GetUserByID(userID)
if err != nil {
return nil, fmt.Errorf("service error: failed to find user with ID %d: %w", userID, err)
}
// 在这里可以添加业务逻辑
return user, nil
}

```

现在的要求是 1. 针对 FindUserByID 做单元测试. 2. 没有数据库 要求 mock 假数据.
你试试吧. 不算为难你吧.


我得问题是: 第一步 你需要实例化 NewService 你传什么参数进去? 你传一个真的, 那一定有一个真正的 db 连接, 传一个假的 编译失败.
2025 年 8 月 13 日
回复了 chaleaochexist 创建的主题 Go 编程语言 请教 golang 依赖注入的实际问题
@NessajCN 你写个测试就知道了.
譬如 repo 访问数据库吧 现在需要你 在没有数据库的情况下测试 service 层的函数

如何 mock 假数据.
只有接口可以做到.

你传入一个结构体 结构体的依赖是 db.DB 他可是真的通过 TCP 去连数据库.

但是如果是接口 我就可以做一个假的 struct 去实现这个接口, 然后返回假数据就行了.

总之一句话 你尝试给你的 repo 层 写单元测试就明白了.
2025 年 8 月 13 日
回复了 chaleaochexist 创建的主题 Go 编程语言 请教 golang 依赖注入的实际问题
@NessajCN 没办法模拟, 反正我不会...
2025 年 8 月 13 日
回复了 chaleaochexist 创建的主题 Go 编程语言 请教 golang 依赖注入的实际问题
@NessajCN 你平时肯定不做单元测试. 我确定.
2025 年 8 月 13 日
回复了 chaleaochexist 创建的主题 Go 编程语言 请教 golang 依赖注入的实际问题
@NessajCN 要么是我没说清楚, 要么是你没仔细看我得代码.

sshClient 是接口, 因为我现在的实现是 standardSshClient 将来可能基于第三方库去实现这个 sshclient. 所以 sshclient 需要定义成一个接口. 这是原因 1. 原因 2 如果 sshclient 是一个具体的结构体实现, 那么将来如何 mock? 如何做单元测试? 单元测试的时候, 需要脱机测试.

[意图显然是把 sshClient 作为一个实例而不是接口参数]
func Cmd1Handler(sshClient SSHClient) string {
的意图就是接口, 而不是实例.

原因是喜闻乐见的, Accept interfaces,return structs

至于为什么 CmdHandler 是一个函数而不是 sshclient 的方法. 是因为 除了我前面说的 sshclient 是一个接口还有一个原因是, 实际上情况比 demo 要复杂一点点除了 sshclient 还有 httpclient,
client 只负责执行, 而不考虑业务, CmdHandler 是带业务的, 就是我说的, 省略 100 行的内容.

==============================分隔
我得最后一个问题, 大佬帮忙看一下 v4 是否符合逻辑呢?
2025 年 8 月 13 日
回复了 chaleaochexist 创建的主题 Go 编程语言 请教 golang 依赖注入的实际问题
@NessajCN 我猜 https://github.com/chaleaoch/golang_demo/tree/master/v4
这个文件夹下的代码 比较符合你的品味吧?

但是我得问题是, 如果我想注入 handler? 要如何做?
答案是不是: handler 就不应该注入 而是直接调用?

实际上我也是这么做的, 但是我需要你们 确认一下!!! 这回 我说明白了吗?
2025 年 8 月 13 日
回复了 chaleaochexist 创建的主题 Go 编程语言 请教 golang 依赖注入的实际问题
@NessajCN 别着急大佬 等我再写一个版本 和你一起讨论.
1  2  3  4  5  6  7  8  9  10 ... 65  
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   915 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 50ms · UTC 20:15 · PVG 04:15 · LAX 13:15 · JFK 16:15
♥ Do have faith in what you're doing.