只会写js而不会排bug的人,做不了好前端


什么叫好前端?定义有很多,在我这至少包括能写js能排错。有些人因为面试的次数多了,什么样的面试题都见过,成了面霸成了面试小能手。js面试题写的666,面试谈话也很ok,但实际的开发经历不多,所以他们的短板在于实际工作中的疑难杂症的排除经验。

为什么会有些同学过不了试用期呢?就是像刚才说的那样,面试很6,但排bug很卡,工作进度不Ok,自然面试到期就不Ok了。

////////


前一篇《为啥总感觉跟前端开发“隔”了一层?因为你没有构建自己的三位一体的前端开发能力。》文章写到了前端的三位一体的技能组合,是我个人的说法,也许有失偏颇,但大方向应该是对的。当时因为时间的关系,“解决问题的能力”的如何养成写的很少,今天就聊一下它。

////////


前端开发是可以看到的。这个看到是指页面的不正常,要么是dom不正常,要么是js报错,要么是数据有问题,基本上就在这三个方面之内。


如果有问题,第1,先在脑子里把工作任务的业务流程在脑子里过一遍,看看是不是开发的顺序有问题;


第2,在脑子里,把开发流程分成一段一段的来考虑,看看它是在哪个阶段发生的问题。是加载?还是进入?还是生成?


第3,看看这个bug,是js引起的,还是data引起的?这是在确定问题是谁的责任。


第4,如果是js引起的,那么要在bug出现的前后不同位置,分别打上console.log来查看打印信息进行调试。

这四个流程走完,基本可以确定问题是在哪出现?如何引发的?

////////


bug多种多样,所以只能写如何解决它们的策略。可能许多同学更习惯的是“针对具体的bug,然后直接给出解决方法”,但很可惜这种银弹式的答案是不存在的。


在我有脑海里,“找到问题,就等于找到答案”。因为前端虽然繁杂,但99%的坑都已经被人踩过了。而你要做的,就是确定自己遇到的问题,然后找到对症的方案去解决就Ok了。


许多同学的问题,就是不知道或不愿意去仔细的分析问题,思考bug,其实原理很简单,你把所有的该踩的坑你也踩一遍,你就Ok了。

////////


另外,记在向别人求助提问的时候,要把语言组织好,把问题描述清晰,关键代码都贴出来。在工作中要明白,提问不是聊天。如果你说的很随意,那么别人只能是无视你这个问题了。因为大家都很忙。


在解决了问题之后,要形成积累,就是把问题的原因、背景都搞搞清楚,而不是解决了之后,就扔到脑后。