今天记一点工作上的经验总结,是关于怎么解 bug 的。
解 bug 不一定要捋清整条业务逻辑
接手别人的功能、第一次去修那种不是自己跟进的 bug 时,很容易陷入一个误区:先把整条业务逻辑从头到尾捋清楚再动手。但实际上没必要——某个 bug 往往只是整条链路上某个很细的点出了问题而已,为它去啃完整链路,性价比极低。
所以解 bug 一个很关键的出发点是:学会判断问题的关键点。
先根据自己的经验去判断 bug 大概率出现在哪个节点,如果确实要看细节逻辑代码,也只在自己判断的那个节点附近看,而不是从头到尾毫无目的地把所有代码都扫一遍。
更加不要频繁依赖 console 这种调试方式。特别是在一些很重的项目里,热加载本身就很耗费时间,重度依赖 console 调试(改一行 → 存盘 → 等热加载 → 看输出 → 再改),时间会被严重消耗掉。
这种判断能力要特意去锻炼。一开始可能会很慢、很吃力,因为这个判断本身就是靠经验喂出来的。但一旦练出来,效率会比 console 慢慢试出太多太多——这是今天感受最深的一点。
关于犯错的心态
再记一点生活和工作上的感悟:要认清一个事实——如果想要进步,进步的过程中就一定会出错,甚至会频繁地出错。
道理很简单:进步 = 做自己没做过、不熟悉的事。谁第一次做这种事不出错?出错再正常不过了。
而犯错 = 不舒服、难受。所以用什么心态去面对这种不舒服,就变得非常重要。
如果一犯错就觉得「我很没用」「什么都不懂」「这么简单的东西也不会」,这是一种没有认清事情真实面目的错误认知——上面说了,进步本来就是做自己没做过的事,第一次做,出错是必然的,跟「没用」没有半点关系。
所以既然选择了进步,想走得远一点、进步得多一点,那就要认清事实:再遇到犯错、有不舒服难受的感觉时,告诉自己——犯错是正常的,这是进步必须要经历的。要么放弃进步,要么以自信、坚信自己可以把问题解决的积极心态去面对,这是支撑自己走下去的唯一选择。
长期「一遇到问题就觉得自己能力差、糟透了、烂透了」式的自我打击,要做成一件事,几乎是不可能的。既然选了这条路,就用对的心态走下去。