不懂就问,同事写后台不会用断点也不学...每次调接口都要好久,怎么劝劝啊...

2020-05-13 09:47:19 +08:00
 From313

同事用 Go 写后台,我写前端,我俩联调时,我发现同事一直用 log 不用断点,我好奇就问了下为啥不用断点.同事说 Go 用不了断点,他写区块链时也用的 log 调试...但明显 GoLand 能用断点....每次调接口都磨磨唧唧的,10min 的事儿能给您墨迹一上午,就疯狂 log.....怎么劝也不听....现在后台框架用的是 b 站的 Kratos...

10796 次点击
所在节点    程序员
88 条回复
linauror
2020-05-13 09:51:02 +08:00
这感觉也不是不会打断点的问题,还是能力问题,对程序熟的话,打 log 一般也能很快定位到问题了
Vegetable
2020-05-13 09:54:15 +08:00
本人后台开发,前端说改个东西要两天,但我感觉撑死 2 小时,怎么破?- 知乎
https://www.zhihu.com/question/375396826

哈哈哈开玩笑。不用断点的人多的是,真的,远比你想象的多。但是疯狂 log.Println 也是不应该的,不然日志的 TRACE DEBUG 时拿来干啥的?这的确算是个人风(水)格(平)问题。
如果你不是 Leader,最好别多管,犯不上。闭嘴不是最好的选择,但绝对不是最差的...
eGlhb2Jhb2Jhbw
2020-05-13 09:56:34 +08:00
楼上的说的都没错,不过他同事说的是"用不了",这就是不会还懒得学的说辞罢了。
paulee
2020-05-13 09:57:05 +08:00
你去看看他怎么调试,你要是看懂了并且能告诉他哪里有问题,说明他有问题,要是没看懂,学就是了
sonyxperia
2020-05-13 09:58:13 +08:00
告诉他领导啊
whusnoopy
2020-05-13 10:11:53 +08:00
我觉得问题不在同事会不会用断点,而是调试太慢

而楼主的观点是会合理用断点明显会加速调试过程,这个见仁见智吧,如果对方能继续不用断点也能把调试效率拉上来,那就随他去,不然你让他学会用断点,也未必会加快调试过程

立场说明:前 ACM/ICPC 选手,比赛时三个人一台机器不可能让你单步调的,多输出中间结果打印下来在纸上去调试;工作后写 C++ 服务端,启个环境没有 80G 内存启不来的那种,还是期望思路清晰一次过,不然也还是依赖打印日志,单步是永远不可能单步的,gdb 最多去看看 core 文件的现场
lancelock
2020-05-13 10:16:22 +08:00
我之前一直想用 vim 写代码,但是因为不好调试都放弃了,反正我是佩服只用 log 或者 gdb 的人
yousabuk
2020-05-13 10:17:09 +08:00
我也不用断点,没啥问题啊,看现象 + 日志也能大概定位问题所在。

调的满的可能原因:
1,慢性子人,没办法;
2,能力有些差,没办法;
3,楼主小瞧了后端的复杂度,自认为 10 分钟的事;
CoderGeek
2020-05-13 10:17:29 +08:00
要么水平不到位要么懒 提高效率少浪费双方时间
nicevar
2020-05-13 10:18:24 +08:00
确实是这样, 写后台不会调试的大有人在, 有的已经工作了很多年了, 都是靠日志, 日志固然很方便, 但是有些时候断个点很快就能解决问题, 日志看了大半天还没找到原因, 告诉他们断点调试, 大多数还是很乐意的, 觉得相见恨晚
rockyou12
2020-05-13 10:18:52 +08:00
明显是能力不行啊……,goland 打端点和其它语言没啥区别,就是不知道学啊。不要说 log 比端点调试快,用哪个和会不会是两个问题
nicevar
2020-05-13 10:19:29 +08:00
@yousabuk 有些场景断点调试要比看日志快得多
djoiwhud
2020-05-13 10:24:07 +08:00
go 确实可以断点,但是靠断点调试是非常不合理的。同样,影响他人调试进度也是非常错误的。

正确的姿势是:
写测试用例,单元测试覆盖到位。自测 OK 了再联调。

结论:题主和题主提到的同事都是错误的。
yousabuk
2020-05-13 10:24:17 +08:00
@nicevar
就是在有些场景才偶尔用断点,平时喜欢 log,很顺手。
一般情况下在写代码的时候程序流程怎么走心里就已经有数(少数情况下的时候会跑飞),没那么多使用断点调试的场景。
wellsc
2020-05-13 10:25:41 +08:00
为啥啊,我就喜欢用 print 调试程序,也没影响进度啥的,调试慢可能是别的问题,不是调试工具的问题啊
comwrg
2020-05-13 10:26:03 +08:00
叫他写自动化测试就没那么多逼事了
newtype0092
2020-05-13 10:26:22 +08:00
我也是 log 选手,主要是正常情况下逻辑写的清晰点只要知道一段逻辑的入口参数、变量,中间的运行过程完全能想来,只要 CPU 不出错基本是不会有意外的,只要把关键的变量打印出来看看符不符合预期,很快就能定位问题。
断点、单步等操作比较麻烦,一般只是在看一个新的框架、不熟悉的底层代码的时候才用,自己写的代码还要专门断点太墨迹了。

既然你觉得 10min 能解决的问题,最好直接自己上,不是开玩笑,很多后端都会点简单的前端,小问题有时候前端没空就自己上手改了,前端完全可以学点后端的东西,也能让你对整个流程更了解,开阔思路,下次他再这么墨迹直接改完甩他脸上。
drackzy
2020-05-13 10:26:47 +08:00
熟练了不是打几个断点,看看改改接口就调完了吗
yousabuk
2020-05-13 10:28:30 +08:00
后端调试的慢,那么楼主为啥非要等后端呢?
可以继续开发其他的功能模块嘛。
前端给后端搭好,后端慢就自己看去就可以了。
stevenkang
2020-05-13 10:28:35 +08:00
需求群里面,或者领导群里面回复:

前端已开发完毕,等待后端联调。

第二天:
前端已开发完毕,等待后端联调。

最后你看着急的是他,继续不听劝,还是你?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/671154

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX