不懂就问,同事写后台不会用断点也不学…每次调接口都要好久,怎么劝劝啊…
同事用 Go 写后台,我写前端,我俩联调时,我发现同事一直用 log 不用断点,我好奇就问了下为啥不用断点.同事说 Go 用不了断点,他写区块链时也用的 log 调试…但明显 GoLand 能用断点….每次调接口都磨磨唧唧的,10min 的事儿能给您墨迹一上午,就疯狂 log…..怎么劝也不听….现在后台框架用的是 b 站的 Kratos…
同事用 Go 写后台,我写前端,我俩联调时,我发现同事一直用 log 不用断点,我好奇就问了下为啥不用断点.同事说 Go 用不了断点,他写区块链时也用的 log 调试…但明显 GoLand 能用断点….每次调接口都磨磨唧唧的,10min 的事儿能给您墨迹一上午,就疯狂 log…..怎么劝也不听….现在后台框架用的是 b 站的 Kratos…
哈哈哈开玩笑。不用断点的人多的是,真的,远比你想象的多。但是疯狂 log.Println 也是不应该的,不然日志的 TRACE DEBUG 时拿来干啥的?这的确算是个人风(水)格(平)问题。
如果你不是 Leader,最好别多管,犯不上。闭嘴不是最好的选择,但绝对不是最差的…
而主的观点是会合理用断点明显会加速调试过程,这个见仁见智吧,如果对方能继续不用断点也能把调试效率拉上来,那就随他去,不然你让他学会用断点,也未必会加快调试过程
立场说明:前 ACM/ICPC 选手,比赛时三个人一台机器不可能让你单步调的,多输出中间结果打印下来在纸上去调试;工作后写 C++ 服务端,启个环境没有 80G 内存启不来的那种,还是期望思路清晰一次过,不然也还是依赖打印日志,单步是永远不可能单步的,gdb 最多去看看 core 文件的现场
调的满的可能原因:
1,慢性子人,没办法;
2,能力有些差,没办法;
3,主小瞧了后端的复杂度,自认为 10 分钟的事;
正确的姿势是:
写测试用例,单元测试覆盖到位。自测 OK 了再联调。
结论:题主和题主提到的同事都是错误的。
既然你觉得 10min 能解决的问题,最好直接自己上,不是开玩笑,很多后端都会点简单的前端,小问题有时候前端没空就自己上手改了,前端完全可以学点后端的东西,也能让你对整个流程更了解,开阔思路,下次他再这么墨迹直接改完甩他脸上。
前端已开发完毕,等待后端联调。
第二天:
前端已开发完毕,等待后端联调。
最后你看着急的是他,继续不听劝,还是你?
go 开发 100%都会涉及多线程,非常多的问题不断点跑大量压测都有时候很难碰到,何况断点吭哧吭哧慢慢倒腾。断点调试可能一辈子都无法找到问题。我很少看到后端开发断点调试。
还是得靠自测和测试单元,代码和框架机制要简单。
生产环境:
断点几乎不适用,只剩 log,通过开关控制输出级别
反正 deadline 会给出答案( doge
选择哪个看个具体情况了,
如果你同事打算尽量增加齐全的日志,方便以后再出问题时解决问题,那么这也是一种选择。
如果做 turnkey 方案,客户平台遇到问题,只有靠印 log 怎么办?断点调试的场景比较局限,虽然定位问题比较快
只能说各有优缺点,不能一棍子打死…
前端遇到问题,只需要告诉后端某个请求有问题,并提供 curl 命令、预期结果和实际结果。
至于后端是用断点、log 、买个啄木鸟还是拍电脑,都与前端无关。