对全栈工程师有以下几个方面的技术要求:
PC、H5、Nodejs、小程序、移动端,掌握大前端所有技术栈;能够实现类Element-ui组件库,设计Vue组件;掌握Vue/React源码,MVVM库原理;了解Koa2源码,定制MVC开发框架;前端监控、性能优化、安全;自动化测试、发布、运维。
全栈工程师也需要有全局性思维、也可以降低沟通成本。
全栈中的栈与计算机数据结构中的堆栈不是同一个概念,后者是指先入后出的串行数据结构。
全栈工程师,也叫全端工程师(同时具备前端和后台能力),英文Full Stack developer。是指掌握多种技能,并能利用多种技能独立完成产品的人。【价值】
一、全局性思维
现代项目的开发,需要掌握多种技术。互联网项目,需要用到后端开发、前端开发、界面设计、产品设计、数据库、各种移动客户端、三屏兼容、restFul API设计和OAuth等等,比较前卫的项目,还会用到Single Page Application、Web Socket、HTML5/CSS3这些技术以及像第三方开发像微信公众号微博应用等等。
Web前端也远远不是从前的切个图用个jQuery上个AJAX兼容各种浏览器那么简单了。现代的Web前端,需要用到模块化开发、多屏兼容、MVC,各种复杂的交互与优化,甚至你需要用到Node.js来协助前端的开发。
所以说一个现代化的项目,是一个非常复杂的构成,需要一个人来掌控全局,它不需要是各种技术的资深专家,但它需要熟悉到各种技术。对于一个团队特别是互联网企业来说,有一个全局性思维的人非常非常重要。
二、沟通成本
项目越大,沟通成本越高,项目中的人力是1+1<2的,人越多效率越低。因为沟通是需要成本的,不同技术的人各说各话,前端和后端是一定会掐架的。每个人都会为自己的利益而战,毫不为已的人是不存在的。
而全栈工程师的沟通成本几乎为零,因为各种技术都懂,胸有成竹,自己就全做了。即使是在团队协作中,与不同技术人员的沟通也会容易得多,让一个后端和一个前端去沟通,那完全是鸡同鸭讲,更不用说设计师与后端了。但如果有一个人懂产品懂设计懂前端懂后端,那沟通的结果显然不一样,因为他们讲的,彼此都能听得懂。
三、创业公司
对于创业公司来说,全栈工程师的价值是非常大的,创业公司不可能像大公司一样,各方面的人才都有。所以需要一个多面手,各种活都能一肩挑,独挡多面的万金油。对于创业公司,不可能说DBA前端后端客户端各种人才全都备齐了,很多工作请人又不饱和,不请人又没法做,外包又不放心质量,所以全栈工程师是省钱的一妙招。虽然说全栈工程师工资会比一般的工程师会高很多,但综合下来,成本会低很多。
全栈开发者本身是音译过来的,叫做Full Stack Developer,本意指的应该是“全能开发者”,通俗点说就是自己能搞定一套系统(C/S,B/S,App等)目前所指的全栈开发者/全栈工程师,通常指的是Web开发中的前后端都会的开发者。即自己能搞定前端部分(HTML+CSS+Javascript等),又能结合后端部分(如PHP+MySQL等),同时还能自己管理好服务器(LAMP/LNMP+网站优化等)
全栈开发者的优缺点:
1、优点
① 技术面全面:请注意用词是技术面,即了解的多,但是并非全部精通。广度和深度是一个一直被讨论的话题,都有好处,也都有缺点。所以仁者见仁智者见智。
② 涉猎广泛:便于做产品设计、团队管理等
③ 节省成本,反倒薪资高:社会上绝大部分企业是中小企业,而中小企业肯定都愿意去节省成本,如果有一个全栈开发者能够搞定设计工程师+前端工程师+后端工程师+运维工程师,那么公司肯定也愿意多花点钱给一个人
2、缺点
① 广而不专:所以在精细化和深度设计上肯定是存在短板的
② 精力有限:网上有人用词叫做“样样行”==“样样怂”,一个人到底是没有那么多精力去钻研各个方面的,而且自我的调度也存在一些问题。
3、总结
这个社会现状就是活到老学到老,而且艺多不压身。今天的铁饭碗明天说不定一文不值,在能看到未来的行业里,做专;在自己不清楚未来如何时,做多。多一些学习,多一些专业,也是给明天的自己多一分保障。