展开讨论

经验与复盘经验摘录 · 机器翻译

这最近成了我个人的一个争论点,自从我了解到有几位软件领域的知名人士摒弃了调试器(相当于用示波器探头去检测电子设备)。我一直认为调试就是“尽可能缩小范围”以及“当你能知道发生了什么时,不要猜测”。反对这种做法的论点是,推测和静态分析系统能加深你对系统的理解,从而在长远来看让你更有效率,即使这可能需要更长的时间来定位单个缺陷。我会坚持使用调试器,但我同意不能因噎废食。现代的极端做法是让Cursor的AI代理来“为什么这个坏了?”我最近看到一位经验较丰富的工程师加入新公司时,过度依赖Cursor来理解公司的系统。他们浪费了很多时间却得到了不好的答案。我认为这是更糟糕的极端。

这最近成了我个人的一个争论点,自从我了解到有几位软件领域的知名人士摒弃了调试器(相当于用示波器探头去检测电子设备)。我一直认为调试就是“尽可能缩小范围”以及“当你能知道发生了什么时,不要猜测”。反对这种做法的论点是,推测和静态分析系统能加深你对系统的理解,从而在长远来看让你更有效率,即使这可能需要更长的时间来定位单个缺陷。我会坚持使用调试器,但我同意不能因噎废食。现代的极端做法是让Cursor的AI代理来“为什么这个坏了?”我最近看到一位经验较丰富的工程师加入新公司时,过度依赖Cursor来理解公司的系统。他们浪费了很多时间却得到了不好的答案。我认为这是更糟糕的极端。

源讨论Ask HN:你花了太长时间才学会的行业技巧是什么?原帖 670 条评论 · 导入时统计
2

这条内容在回应什么?

父级讨论 · 节选

OR

推测是优先考虑要调查什么的好方法,但我曾与许多高级工程师(尽管不是在嵌入式领域)合作过,他们因为根据过去经验进行模式匹配而忽视了潜在原因,从而延长了故障排除的时间。

完整原文

社区评论 0

还没有社区评论,来聊聊你的看法。

原讨论中的回复 2

仅展示本次导入中包含的直接回复。中文为机器翻译,可查看英文原文。

MS

对我来说,这是决定我在哪里放置示波器/调试器的方法。 没有推测,你如何知道在哪里设置断点?如果出现崩溃,那很好,从堆栈跟踪开始。如果没有崩溃但有错误,你的范围就更广了。 推测让你思考可能造成问题的逻辑原因。有时候你可以跳过实际调试,通过逻辑推理直接找到具体的代码行,而不会浪费太多时间。

完整原文
OR

对我来说,这是关于意识到整个技术栈,并有意识地决定哪些可能性我正在忽略。 在之前的一家公司,我被分配了一个任务来修复某些用户请求超时的问题。我们知道这些用户的数据量超过了标准差,所以团队领导创建了一个类似“优化SQL查询以...”的工单。结果发现问题是我们的XML转换流程(我一点都不怀念这个技术栈)被配置为对任何超过一定大小的消息都转储到磁盘。 因为我一开始就对查询进行了基准测试,我很快意识到缓慢并不是在数据库里;由于我对整个技术栈都很熟悉,我知道还要去哪些地方查找。 监控也很重要。如果你能不用手动收集和关联就能获得指标和错误信息,那就更容易快速获得上下文。

完整原文
在 Hacker News 阅读

尊重不同观点,分享具体经验。

登录后即可发帖、评论、转发和引用。