V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  fuis  ›  全部回复第 12 页 / 共 14 页
回复总数  276
1 ... 4  5  6  7  8  9  10  11  12  13 ... 14  
@xmcy0011 随手写了一段,大概看个意思。基本思路就是把重复的地方抠出来做成 func,然后用另一个 helper func 去调用它们。参数尽量看准原来就使用 interface{} 的地方,这样不用写很多 type assert

```go
func (tcp *TcpConn) onHandleCreateGroup(header *cim.ImHeader, buff []byte) {
req := &cim.CIMGroupCreateReq{}
call(header, buff, req, func() {
return conn.CreateGroup(ctx, req)
}, func(rsp Response) {
_, err = tcp.Send(...)
})
}

func (tcp *TcpConn) onHandleDisbandingGroup(header *cim.ImHeader, buff []byte) {
req := &cim.CIMGroupDisbandingReq{}
call(header, buff, req, func () {
return conn.DisbandingGroup(ctx, req)
}, func(rsp Response) {
_, err = tcp.Send(...)
})
}

func (t *TcpConn) call(
header *cim.ImHeader,
buff []byte,
req interface{},
method string,
rpcFn func(context.Context, interface{}) (Response, error),
callback func(Response) error) func() {
return func() {
err := proto.Unmarshal(buff, req)
if err != nil {
logger.Sugar.Warnf("%s error", method)
return
}

logger.Sugar.Info(method)

conn := GetMessageConn()
ctx, cancelFun := context.WithTimeout(context.Background(), time.Second*3)
defer cancelFun()

rsp, err := rpcFn(ctx, req)
if err != nil {
logger.Sugar.Warnf("DisbandingGroup(gRPC) err:")
} else {
_, err := callback(rsp)
logger.Sugar.Infof("onHandleDisbandingGroup res")
}
}
}

```
2020-10-20 23:12:59 +08:00
回复了 knightdf 创建的主题 程序员 双 11 准备撸个显示器,这两款有点纠结
果断 27UL850
2020-10-09 20:25:36 +08:00
回复了 feng32 创建的主题 Kubernetes Kubernetes 下如何方便地获取不断重启的服务的日志
日志管理直接上 ELK 。
“让服务检测机制临时失效” 可以通过修改 YAML 实现,比如让 probes 返回正常,在 command args 里用 bash -c "your-service; tail -f /dev/null" 等待
2020-10-09 20:21:23 +08:00
回复了 jsjcjsjc 创建的主题 Linux DD 命令如何在后台运行?
用 tmux 。运行 dd 之后,Ctrl + B, d detach 。然后用 tmux a 就可以恢复
2020-10-05 17:59:32 +08:00
回复了 howdareyou 创建的主题 职场话题 用 go 写了两年业务,想往存储/中间件方向发展
欢迎来 SmartX 试试
2020-08-05 18:03:58 +08:00
回复了 Fule 创建的主题 JavaScript 在 OneDrive 同步盘上做 JavaScript 应用开发是不是不合适?
@TabGre 是的。
2020-08-05 12:02:17 +08:00
回复了 ffLoveJava 创建的主题 Apple mac 的切屏逻辑真烦
@ljpCN 装一个 HyperSwitch
理解错了,不好意思。
2020-05-08 23:37:20 +08:00
回复了 jizhihaoSAMA 创建的主题 Python 如何解决 pycharm 中某些库没有智能提示的问题?
opencv 的话,pip install opencv-python,然后用 flake8 可解。
2020-04-11 11:57:14 +08:00
回复了 Flands 创建的主题 程序员 话说用 docker 当环境进行开发咋样?
关于容器的运行效率,docker 当然是要在 Linux 下面跑。在 macOS 和 Windows 的 docker 都是虚拟机,有什么意义了。
2020-04-11 11:55:56 +08:00
回复了 lalala139 创建的主题 程序员 怎么搭建“远程局域网”,用来联机打游戏
随便买个内网穿透的服务就行了,比如 natapp
2020-04-10 20:53:16 +08:00
回复了 Huelse 创建的主题 程序员 Docker Desktop 与 VMware 不能共存,晕
最新版 VMware 可以跟 Hyper-V 共存,但是不能打开嵌套虚拟化。
2020-04-05 20:44:11 +08:00
回复了 v2016 创建的主题 PHP 自写博客程序有什么坑吗
没啥坑。不觉得很无聊吗
2020-04-01 16:13:13 +08:00
回复了 darknoll 创建的主题 程序员 前后端分离的网站,能否共用同一个域名
反代一下就行了
2020-04-01 11:02:53 +08:00
回复了 jdz 创建的主题 程序员 为什么分布式软件一般都使用心跳包而不适用 tcp 的保活机制呢
应用层跟协议层是两回事。TCP 连接可用不意味着应用可用。
2020-03-26 15:26:08 +08:00
回复了 nevin47 创建的主题 Linux 请教一下,阅读 Linux Kernel 最快的解决方案(@Windows)是啥呢?
2020-03-18 23:25:12 +08:00
回复了 AAASUKA 创建的主题 git Windows 下添加环境变量,每次都需要重启, Gitbash 才生效
不需要重启。用户环境变量要重启 Explorer,系统环境变量重开程序就行了
2020-03-18 23:05:24 +08:00
回复了 kaneson 创建的主题 宽带症候群 广东电信游戏宽带
@junnsw 下行有差不多 600Mpbs,上行 50Mbps 左右
2020-03-17 23:24:46 +08:00
回复了 kaneson 创建的主题 宽带症候群 广东电信游戏宽带
@lingaoyi 嗯,坐标深圳。500M,290/mon 的游戏宽带
1 ... 4  5  6  7  8  9  10  11  12  13 ... 14  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5941 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 38ms · UTC 02:32 · PVG 10:32 · LAX 19:32 · JFK 22:32
Developed with CodeLauncher
♥ Do have faith in what you're doing.