我发现,许多人在学习前端的时候,更多的时候是处于一种“对外宣称正在学习中”的状态。而他本人真正的学习了多少前端知识?未必。
我之前就多次说过,“学习前端开发不是学习js脚本”。学习前端开发其实是一种用分析问题、理解需求、解决问题、响应变化的思维方式,是要动脑的。这种思维方式的不是一开始就能具备的,它无疑是一种技能,它是需要大量的练习的。
就像你面对一个姑娘,第一次的时候会很笨、很腼腆,很无措。但只要你练习足够,慢慢的你就老司机了。为什么成为老司机?因为万物都有规律,刚开始跟姑娘聊天,三句话把天聊死了;到后来你可以一次聊三天了。
为什么后来你可以一次聊三天?因为你说的每句话都有它的用处,每句话都是承接下一句话,每句话说出来都勾搭着姑娘往前走。。。
不多说了,回到js这里,这种“分析、理解、解决、响应”的前端开发思维方式,要成为每个前端从业者的本能,要达到面对任何一个问题,一个需求,都能下意识的使用这种思维方式去看待它。
那么,如何做到这一点呢?我认为至少需要下面四点,
从第一步到最后一步,每一步在做什么?需要什么?提供什么?。。。这些东西先在纸上画出来,如果自己画不出来。看在钱的份上,脸皮厚一点,请别人帮助画出来。
在日常生活中,也要有意识的去训练自己这方面的思维。例如在厨房里,你可以这样想,厨房能做饭也能炒菜,这是它的二个方法,
function 厨房(){
this.炒菜 = function(n){
console.log(n)
}
this.煮饭 = function(){
}
}
“我”,想要炒菜,那么就得这样,
var xx = new 厨房;
xx.炒菜('葱姜肉');
就这样,从日常的生活中,理解程序运行的规则;
大到一个项目、一个应用,小到一个需求,都不是一个元素能够完成的。它里面一定有众多的“参与”者,那么它们之间的关系是什么?谁操作谁?谁是谁的前置条件?谁是谁的运行结果?。。。把它们在纸上画出来,这种能力也是要在工作、生活中不断训练自己的。
例如,厨房里,你要炒菜,参与元素有哪些:火、锅、油、菜、抽油烟机......不多写了
1,先打开火;
2,锅放火上;
3,油放锅里;
4,油烧热了,放菜;
5,酌情开抽油烟机。
它们这几个元素中,谁操作谁?谁是谁的前置条件?谁是谁的运行结果?
if( 火 == 燃烧 ){
火(function(){
锅(function(){
if(油温 >= 100){
放菜(...);
}
})
});
} else {
点火()
}
funct.. 锅( callback ){
callback();
}
//...
尝试着用js的思路去解释你生活中的事物,因为你在工作中遇到的所有需求,全都是来源于真实生活。而js的最明显的思路是什么?回调嘛,所以你看上面那段伪代码,全都是回调。
警察破案讲究线索,出门要确定路线,我们写代码也一样,要抓住业务中的那条线。但这条线事实客观上并不存在,怎么办?
要找“点”,每一个功能,每一个需求,每一个条件,它们都是构成线索的点,这些点连在一起就成了线。沿着这条线走下去,从头走到尾,你就理清了一个需求的业务逻辑。
当然了,实际操作中,你还要注意多个业务之间相互的影响、关系,需要你对于前端的全局有一个整体的把握和理解,这叫“大局观”。
最后再说一下,你学会一个东西的真实表现是,面对一个问题的时候,脑子里的思路马上转换为前端开发的思维方式,而不会学了一堆js,然后面对需求手足无措。