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

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

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

11629 次点击
所在节点    程序员
88 条回复
Navee
2020-05-13 15:30:17 +08:00
楼主可以发点资料给他学一学
在工作中,你这位同事绝对不是最后一个和你的认知差距很远的同行
gp1136612050
2020-05-13 15:33:07 +08:00
确实我也觉得是能力问题。有时候出问题,测试把场景或者现象一描述,我就能定位到是哪里出问题。有时候都不用 log 或者断点就直接改改完自测就好了。当然说的是改自己的东西。
qwerthhusn
2020-05-13 15:52:41 +08:00
请求接口后,Chrome F12 Network 找到请求 右击 Copy,Copy as cURL 复制出 curl 请求命令,然后可以重复在命令行调用
发过去,让其自己去调,然后就可以安心划水了,全程不需要参与
latteczy
2020-05-13 17:09:13 +08:00
不用断点+1 。
实际工作中能让你通过断点 /打 log 去调试的问题应该比较少,一般遇到问题通过 review 代码就能看出来。
mengzhuo
2020-05-13 17:22:37 +08:00
离了 Goland 我看你怎么断点,现网有问题怎么断点,会用个把工具就叽叽歪歪在网上声讨别人?
而不是帮他搞一搞?提升团队能力?
paoqi2048
2020-05-13 17:34:33 +08:00
IDE 断点还好,命令行断点挺麻烦的😑
xuzhzzz
2020-05-13 17:37:30 +08:00
我们也是 kratos,我们不会是同事吧
wentaoliang
2020-05-13 18:22:08 +08:00
为啥不能用 log 。我反而觉得断掉调试效率不高。只有遇到复杂逻辑或者疑难问题才打断点
zhouwei520
2020-05-13 18:28:28 +08:00
debug 不是自测的么?联调看日志就行
zhouwei520
2020-05-13 18:30:28 +08:00
不都是联调才开始写代码么,手动滑稽
amimo
2020-05-13 18:43:15 +08:00
调试器可以让你在不修改代码,不重启应用的情况下,在任意位置打印 Log,这调试效率不更高么?
0x11901
2020-05-13 20:01:09 +08:00
感觉还是编译 /执行的速度太快了的原因……我以前特别喜欢写 log,后来遇到了项目编译一次 20+分钟之后,我不仅断点要打 20 个,甚至 debugger 附加二进制调试……符号表……逆向……还不简简单单……
newmlp
2020-05-13 20:33:40 +08:00
断点只能解决一时的问题,只要日志加好以后出问题解决会方便很多,也许人家正忙着加日志呢,没空和你 debug
gamexg
2020-05-13 20:43:27 +08:00
断点的确快速简单,不过日志比较适合长期使用。

选择哪个看个具体情况了,
如果你同事打算尽量增加齐全的日志,方便以后再出问题时解决问题,那么这也是一种选择。
csl1995
2020-05-13 20:45:05 +08:00
C++选手
开发阶段:
log 直观清楚,可以解决一些比较明显的问题
log 弄不清楚问题原因,用 GDB 兜底
上了生产:
生产的介质是不会给你开-g 的,所以只有日志
出了问题基本就是根据日志分析复现问题
lechain
2020-05-13 21:51:28 +08:00
举个楼上提到的,生产介质不支持的情景例子

如果做 turnkey 方案,客户平台遇到问题,只有靠印 log 怎么办?断点调试的场景比较局限,虽然定位问题比较快

只能说各有优缺点,不能一棍子打死…
xmge
2020-05-13 22:09:58 +08:00
@sonyxperia 兄弟,同事是统一战线,永远不要站错队。
greenlantern
2020-05-13 22:33:34 +08:00
怕是用了断点能墨迹成三天
yousabuk
2020-05-13 22:49:21 +08:00
@0x11901
对,各项成本综合最优方案,我编译 FPGA 程序 3 小时,敢随便编译吗?修改一下编译一下,两下还不得下班了嘛。就得完善仿真,各种仿真测试,最后再编译。
碰到其他运行太方便了的程序,就可虑的少了,反正有啥问题跑起来就看到了,就懒得思考那么多了。
0987363
2020-05-13 23:40:41 +08:00
以前用 c/c++的时候倒是离不开断点,主要还是指针越界问题。现在 go 的指针越界都能直接报错了,搭配上合理的 log,定位问题非常简单,完全不需要断点

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

https://ex.noerr.eu.org/t/671154

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

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

© 2021 V2EX