前端全栈,现在学前端不提全栈好像都不好意思跟人打招呼一样。今天周末就写一篇文章来跟大家交流一下,我心中的前端全栈开发,大概是个什么样子。
关于全栈前端开发,主流的看法基本上就是从前端到后端全部能够一个人搞定。刚开始的时候,这个说法主要是用来称呼那些从后端转到前端的人。
后端转前端的人,在写js业务逻辑时有先天的优势,因为后端java、.net之类的,比js复杂太多,他们写js的话,单就程序来讲难度其实是降低了的。而且他们写js可以从前端页面交互一直写到后端底层,从架构到接口到逻辑,都自己一个人搞定。当然也包括操作数据库。这就是前端全栈开发最开始的来由。
再后来,因为nodejs的出现,使得前端也可以在服务端写一些相对底层的代码。例如操作文件、流、二进制、缓存buffer、搞一下数据库curd之类的操作。这在以前以浏览器做为js宿主环境时,是不可想象的。
nodejs是运行在服务端的开发环境,这在一定程度上保证了它的隐蔽性、安全性,同时node是以js为开发语言的。之前是由后端来做的事情,现在前端开发也可以在node上操作,这时我们说,这个前端开发人员就是全栈了。
所以说,前端全栈开发,主要有以上二种方向,一种是从后向前的全栈;另一种是从前向后的全栈。
<!-- -->
鉴于关于我这个公众号的粉丝儿们,都是以前端开发新人、零基础的人居多,所以从后向前的全栈咱们就不多说了,主要是聊一下从前向后的全栈开发,该怎么学?
一、在脑子里要有全局的概念,
二、上图上的每个技术分支,要有一个学习目标,而不是无限的深究下去。例如,html、css,我能用它做一个合格的静态页面就ok,而不需要用css画一个多拉A梦。
- html、css,能画静态页面就ok;
- es6,能用它写基本的业务逻辑就可以;例如,给你一个任务,让你写一个配送地址tab菜单。你可以在规定时间之内写出来就ok。而不是无限的去牵扯js的各种细节。
这里不是说,不要去仔细的研究Js,而说,并不是所有的细节,你都需要一一掌握。
- nodejs,掌握基本操作,能够创建服务、响应请求、连接DB,就ok,而不要全面彻底的倒向nodeJs的开发,毕竟前端开发对于各种网络应用的开发其实并不擅长。
- MongoDB,能够基本的建库、crud操作,什么find、save、remove之类的命令,能够明白基本的mongoDB的概念,什么库啊、集合啊之类的就可以。暂时先不要深入到mongoDB的深层次操作中。
这样你把几个主要的技术都基本掌握之后,就能够支撑起自己一个基本的前端全栈技术体系的架子了。你要做的,就是在不断的工作、学习之中,去不断的完善和丰富你的技术体系。而这时,你的个人技术栈应该是这样的,
你这样学下来,不过份纠结与深入其中的任何一个,结果自然是哪个也不是特别的精通,但你会有一个最大的收获,“拥有一个基本的全栈技术体系”!这也代表了,你的技术路线与学习方向是正确的,并且没有跑偏。(不会像某些同学自学前端,学完jq之后,就跑去学到d3。问为什么不学vue?答,觉得d3很酷)
可能有的同学会反问说,这样,样样不精通,好吗?
我的回答,对于一个自学的前端新人,你就是样样都深入研究,你能样样都精通吗?肯定是不可能的。自学前端如果样样都想精通,那么只能是一个结果,就是在前端的知识海洋里迷失方向。