记录FE 开发 Go 中遇到的一些问题:
1. context.WithValue 的 key 不允许使用 built-in 类型(go-static-check)
2. golang的数据类型与mysql的数据类型对应的关系
https://gobea.cn/blog/detail/j5ynaOod.html
3. 有关 go 的零值问题
https://youwu.today/skill/backend/golang-zero-value-and-reference-and-null-value-testing/
4. 查看引用 会打开超链接
在用户配置中禁用
"[go]": {
"editor.links": false
},
5.使用 wire 声明代码遇到 no provider found xxx 类似的错误
因为 wire 是一个依赖注入的框架,所以你需要提前声明,遇到这类问题,可自行检查
view & server 使用到的一些方法是否在 wire_set 文件作声明(类似 View.NewConfigService)
一些 facade 接口,接口的定义和实现是否一致
6. Go本地调用 python服务的抛出 400 错误
在用 go 调用 python 的服务时,本地联调过程(直接访问 BE 的 IP)发现服务会走不通, 报 400 和一堆乱码错误,但是部署了测试环境却可以正常访问。目前只能是 BE 部署了测试环境再进行联调,比较影响效率
解决办法: 使用 IP 访问时,应使用 HTTP 协议,非 HTTPS 协议 参考: https://stackoverflow.com/questions/49389535/problems-with-flask-and-bad-request
7. Goproxy 报错
修改 GOProxy 地址,重新进入项目即可
参考:https://townsyio.medium.com/how-to-configure-your-go-modules-proxy-in-vscode-fa41f29192fe
8. grpc 局限
由于注册中心的限制,只有相同环境才能调用 grpc。由于内部系统只有两个环境 test 和 live,在两个环境下,能分别调用 test 和 live 环境下的grpc。由于没有 uat 环境,所以无法访问 uat 服务,要用 grpc 请考虑环境是否匹配。