“全棧”這個詞這幾天徹徹底底登上了風口浪尖,這個詞從來沒像現在這樣“黑”過,程式設計師群體人人自危,閉口不敢提及自己曾經引以為傲的“全棧”屬性。因本文作者近期在知乎Live新開了一個全棧的話題,感覺是時候站出來說點什麼了,免得沒人敢上車。
長長的前言
笑來老師向來擅長雞湯,這大家都習以為常了,但從來沒有想到過他會把雞湯這把火燒到一個如此小眾的領域,6W2個月,全棧速成班,真可謂是一石激起千層浪。程式設計師這個群體看起來也不那麼“感恩”,教育本是一件大德,卻被你們這樣罵來罵去,多有傷風化,不過就像有的人說的一樣:我有6W,我還做毛程式設計師啊,聽起來也確有道理,其中奧妙,真是難以言說。
我一直不敢稱自己為全棧,雖然對多個領域都有涉及,但是全棧這個詞實在是過於含糊不清了,你到底是怎麼個全棧,好難描述清楚哦~~很多人只是會兩門語言,就覺得是全棧了,有人說要會三門,哦,還有人會10門,那算不算全棧呢?然後,“會”這個詞到底是如何衡量呢?在程式設計師的世界裡,這可是很重要的事情,一定要把這個事情搞清楚啊,要不,他都是全棧了,我算不算全棧呢,要麼“是”,要麼“不是”。如果大家都“是”了,我還“不是”,那就很掉價了。
還有個很好玩的現象,諸如說 Node 界的知名網紅“老雷”吧,他說自己只會寫 Nodejs,可是總是有人以為他是全棧!這特麼就奇怪了,這是為什麼!這個世界腫麼了?我自己都不敢說我是全棧,別人非要給我安個全棧的標籤!老雷說:也許只是因為我太屌了,所以大家總以為我是全棧吧,不過問個問題,會切圖的服務端算全棧麼?
好了,回到今天的標題。
為什麼標題要寫《全棧》和《前端》呢?隱約中,感覺“全棧”這個名詞就是一個前端發明的。現在提及全棧,腦子裡第一個浮現的形容詞是“一個會後端的前端”,別告訴我你不是這樣想的。前端近幾年在爭取自己勢力範圍這件事情上的確做了很多努力,諸如 Nodejs,React Native 這種技術層出不窮,每個類似的技術的誕生都會引起業界的一陣狂歡(zihai),於是一些同學,就感覺 js 可以統治一切了,雖然還沒有改變世界,但是隱約間感覺自己已經套上了“全棧”的頭銜。
wait!為什麼聽起來隱約是在貶低我大前端!
開個玩笑啦。寫這篇文章其實主要是跟大家探討幾個問題:
1. 什麼算全棧?
我覺得給全棧一個嚴格的定義並不簡單,所以也沒有必要去解決這個問題了,另外也不必急著給自己冠“全棧”之名,一個人,到底真槍實料掌握了多少技能,不是一個頭銜能夠決定的,而是看在真實生活中,你利用這些技能做出了什麼事情發揮了多少價值。所以,從這個角度來說,一個“真正”的全棧,應該真正紮實的掌握多門技能,並且能夠將其應用至真實場景中解決問題。
全棧的目標,不應該是以掌握了多少語言為基準,就拿前後端全棧來說,一個開發者,可以用 jQuery 寫前端頁面,也可以用 Express 寫後端的 Nodejs,那就能算全棧了嗎?也許算吧,但是你最好不要去跟別人強調這個事情。畢竟 jQuery 只是一堆方法集合,查查文件就能寫的東西,而 Express 只是一個基礎的 web 服務低階框架,遠沒有達到服務端開發整個領域的重點。
我覺得一個標準的全棧,一定要對每個方向有深入的研究和實踐經驗,在前端方面,上可切圖,下可熟練掌握各種mvvm和周邊技術棧,做的了技術方案,玩得轉通用元件;在後端方面,前可寫的了Restful,後可設計健壯的資料庫方案,hold的了大型專案邏輯關係,搞的定大型分散式服務。當然還遠不止這些,每個領域需要探索的都還有很多,所以,千萬不要跟別人說你會幾門語言,那都是小兒科,每門語言你都不如別人精通,那也沒什麼值得自豪的。
2. 全棧的分類
我覺得全棧大體可以分分類:
- 前後端全棧,前端,服務端跨界能手。
- 前端客戶端全棧,一般叫做“跨端”小能手,至少掌握前端和客戶端一門技術的開發。
- 三端全棧,前後端客戶端全棧,一個人可以撐起一家市值百億的公司的開發。
- 一個人可以做出一家市值百億的公司的全棧,從市場/運營/營銷/產品/設計/前端/客戶端/服務端/運維/CEO兼任所有CXO的角色。我一直覺得我就是這種人才,可是從來不敢跟你們說,怕被你們噴死。
請自我對號入座,如果你恰好跟我一樣是最後一種,請保持低調,不要讓人知道你是一位大隱隱於世的高人。
3. 一些關於全棧的告誡
- 切勿貪多冒進。
- 切勿淺嘗輒止。
- 切勿守著 JS 語言本身不放,雖然 JS * 語言有很多跨端的同構了,但是一定要對各個端的理念深入瞭解才能做好全棧!
全棧並不比單棧開發高明很多,所以切勿隨便選擇這條道路,先做精再做廣,多端可以在你遇到瓶頸的時候給你多一個選擇,但是切勿覺得全棧就是最牛逼的非要走這條路不可,我招人的時候還會特意標註:不要全棧,其實也不是說我真的不喜歡全棧,而是我希望給年輕人指一條明路,認清事實,不要盲從。
如果你讀到這裡還沒離開,看來是一個可塑之才,上車吧少年:小芋頭君 的 Live -- 全棧工程師養成指南