1、全棧開發(fā)工程師的概念
全棧工程師,也叫全端工程師(同時具備前端和后臺能力),英文Full Stack developer。是指掌握多種技能,并能利用多種技能獨立完成產(chǎn)品的人。形象的打個比方來說:全棧工程師就是一個能獨立蓋一幢10層小洋樓的人,而普通工程師,則是可以和一群人蓋一幢摩天大樓的人。
二八定律又名80/20定律、帕列托法則(定律)也叫巴萊特定律,放在哪里都適用。全棧工程師就是能夠了解100的技能,但精通其中的20%,并用這常用的20%技能,去實現(xiàn)80%的特效。
也有人說全棧工程師怎么感覺和站長差不多。是有點像,但性質(zhì)不同。一名站長確實需要掌握多種技能,但站長會寫代碼的很少,他們通常是用一些建站軟件來建站。而全棧開發(fā)工程師需要掌握的知識包括:后端開發(fā)、前端開發(fā)、界面設(shè)計、產(chǎn)品設(shè)計、數(shù)據(jù)庫、各種移動客戶端、三屏兼容、restFul API設(shè)計和OAuth等等,比較前衛(wèi)的項目,還需要掌握Single Page Application、Web Socket、HTML5/CSS3這些技術(shù)以及像第三方開發(fā)像微信公眾號微博應(yīng)用等等。
2、全棧開發(fā)工程師的價值
全棧開發(fā)師的厲害之處并不是他掌握很多知識,可以一個人干多份工作。而是說他在處理問題的時候擁有全局性思維。
現(xiàn)在科技日新月異,web前端不再是從前切個圖用個jQuery上個AJAX兼容各種瀏覽器那么簡單。現(xiàn)代的Web前端,你需要用到模塊化開發(fā)、多屏兼容、MVC,各種復(fù)雜的交互與優(yōu)化,甚至你需要用到Node.js來協(xié)助前端的開發(fā)。
所以說一個現(xiàn)代化的項目,是一個非常復(fù)雜的構(gòu)成,我們需要一個人來掌控全局,他不需要是各種技術(shù)的資深專家,但他需要熟悉到各種技術(shù)。對于一個團隊特別是互聯(lián)網(wǎng)企業(yè)來說,有一個全局性思維的人顯得尤其重要,這個時候也就彰顯了全棧開發(fā)工程師的價值。
全棧開發(fā)師經(jīng)手的項目不但會注意到網(wǎng)頁優(yōu)化,而且會考慮到API來兼容各種客戶端,更會考慮到三屏兼容的問題。不會說項目中完全使用AJAX而不顧SEO,也不會為了功能性而忽略訪問速度,他會很好的把握其中平衡,因為他知道各個板塊的權(quán)重和實現(xiàn)成本。
3、Web全棧開發(fā)是一種趨勢
現(xiàn)代項目的開發(fā),很少說只用到一兩種技術(shù)的,特別是移動互聯(lián)網(wǎng)大潮下。隨便一個互聯(lián)網(wǎng)項目中用到的技術(shù),就會需要用到后端開發(fā)、前端開發(fā)、界面設(shè) 計、產(chǎn)品設(shè)計、數(shù)據(jù)庫、各種移動客戶端等方面的知識。
項目越大,溝通成本越高,做過項目管理的人都知道,項目中的人力是1+1<2的,人越多效率越低。因為溝通是需要成本的,不同技術(shù)的人各說各話,前端和后端是一定會掐架的。每個人都會為自己的利益而戰(zhàn),毫不為已的人是不存在的。
而全棧工程師的成本幾乎為零,因為各種技術(shù)都懂,胸有成竹,一不小心自己就全做了。即使是在團隊協(xié)作中,與不同技術(shù)人員的溝通也會容易得多,你讓一個后端和一個前端去溝通,那完全是雞同鴨講,更不用說設(shè)計師與后端了。但如果有一個人懂產(chǎn)品懂設(shè)計懂前端懂后端,那溝通的結(jié)果顯然不一樣,因為他們講的, 彼此都能聽得懂。
所以企業(yè)越來越需要一個懂得全棧開發(fā)的人物來把控大局,這是趨勢,更是必然。物以稀為貴,趁著全棧人才還不是蜂擁而至,趕快學(xué)習(xí)才是正確道路。