上个月,一位开发者把键盘一推——他的终端里漂着47个console.log,像垃圾邮件一样淹没了真正有用的信息。

一、从"打印一切"到"精准狙击"

打开网易新闻 查看精彩图片

他的解法不是更勤快,而是换工具。

把散落的日志换成结构化调试:断点、调用栈、异步可视化。终端干净了,找bug反而更快。异步流程那些"明明执行了却看不到结果"的幽灵问题,终于现形。

原文作者的原话:「Cleaner terminal, faster bug hunting, and better understanding of async flows.」

二、为什么我们戒不掉打印?

惯性。写console.log比配置调试器快3秒,但清理时要花30秒删、10秒确认没漏。

更隐蔽的成本:日志污染。生产环境忘了删?用户数据可能裸奔。测试环境日志爆炸?CI/CD账单悄悄涨。

那位开发者算过账:清理调试代码的时间,一度超过修bug本身。

三、替代方案怎么选

浏览器开发者工具的异步断点(async断点)能冻结时间,看清Promise链的每一步。

Node.js的--inspect协议让VSCode直接接管,变量悬停即看,不用改代码。

实在要留痕?用分级日志库(如pino、winston),开发/生产开关一键切,告别手动删。

四、一个自测问题

你上周删过多少个console.log?如果超过10个,说明工具链该升级了。

这不是"高级开发者不用打印"的优越感。是算清时间账之后,发现旧习惯在偷偷收税。

下次想敲console.log时,试试多按一个F12——第一次配置多花5分钟,之后每次省5分钟。