JavaScript 無處不在
在以前,JavaScript 程序員就是前端開發(fā)者的同義詞,永遠與瀏覽器綁在一起。
但那已是昨日往事。Node.js 的崛起開啟了一個新紀元,從此,JavaScript 程序員可能不再是被局限于瀏覽器的前端開發(fā)者了。
相比其他高級程序語言,作為一名 JavaScript 程序員,你可以在更多的平臺上發(fā)揮才能。但是現(xiàn)在讓我們將目光放在兩大主流領(lǐng)域上:瀏覽器和服務(wù)端。
為什么我非要在這兩者中做出選擇呢?
做為一名全棧 WEB 開發(fā)人員需要面對的問題
有句古話說得好:”什么都懂但沒有一樣通“, 每次花時間探索新的領(lǐng)域,你都是在浪費足以讓自己成為某一領(lǐng)域?qū)<业臅r間。
“假如我被困荒島,唯一能夠獲救的方法是做出一套漂亮的用戶界面,我將毫無疑問的死在島上” —— Linus Torvalds,Linux 的創(chuàng)始人
成為全棧開發(fā)者最大的風(fēng)險就是在前后端都表現(xiàn)平庸,這比只擅長一種而對另一種全然不知更糟。
在憤世嫉俗的人眼中,全棧開發(fā)者是“一幫將 bug 引入軟件棧每一層的家伙”。
原因是開發(fā)技術(shù)一直在發(fā)展。我們面對的問題變得越來越復(fù)雜,解決這些問題的技術(shù)自然需要發(fā)展。幾年前,學(xué)習(xí) JavaScript 只需要掌握經(jīng)典的 ES6 就夠了,但今天,如果從零開始,我需要掌握同時 ES3 和 ES2015(ES6)。了解最前沿牛逼的技術(shù)不等于說我就可以不顧基礎(chǔ)了。
每一種開發(fā)技術(shù)棧都有屬于自己的小世界。
每一種語言都有自己的 WEB 開發(fā)框架。Python 有 Django,Ruby 有 Ruby on Rails。
還有,每一種技術(shù)棧都有自己的包管理器,工具庫和獨特的語言結(jié)構(gòu),在這些棧背后是一群充滿熱情的人,他們可能是博客作者、企業(yè)開發(fā)人員或者是開源軟件貢獻值。
每一種技術(shù)棧都有自己的長處和弱點。
比較不同的技術(shù)棧是沒有意義的
一旦你決定要成為全棧開發(fā)者,你將不可避免的在兩種技術(shù)棧中徘徊。一種是你深愛的,為之充滿激情。另一種便是 JavaScript。
一些人之所以如此討厭 JavaScript,部分原因是他們沒有選擇的權(quán)利,只能被 JavaScript 選擇。
當 WEB 開發(fā)者想寫一些前端代碼的時候,同時又不希望使用惱人的插件,JavaScript 就成了唯一的選擇。
有人嘗試過創(chuàng)造一種語言去取代 JavaScript,但最終編譯出來的 JavaScript 代碼質(zhì)量往往不盡人意。作為它們中的一員,我不方便指出(CoffeeScript),被 71% 的開發(fā)人員所畏懼!簡直是要超越 wordpress 的節(jié)奏。
無論如何,JavaScript 統(tǒng)治著瀏覽器, 是瀏覽器唯一愿說的語言。
有不少非常聰明的男性和女性嘗試讓瀏覽器說不同的語言,結(jié)果是不少非常聰明的男性和女性都失敗了。
食古不化的瀏覽器。
JavaScript 的優(yōu)勢
讓我們換一種角度來看事物。
如果說你深愛的,為之充滿激情的技術(shù)棧就是 JavaScript 棧呢?
如果是你擁有 JavaScript,而不是它擁有你
如果你選擇 Node.js 作為后端開發(fā)框架, 你將獲得其他技術(shù)棧開發(fā)者夢寐以求的一些優(yōu)勢。
選擇 Node.js, 你就選擇了統(tǒng)一而不是分散你的技術(shù)棧,你選擇至始至終地使用 JavaScript。
你不用再去尋找 Ruby 或者 Python 中的 Lodash 工具庫,直接使用 Lodash 就是了。當然,你可能說pip install和bundle install用著還挺順手,但最后你還是得解決 JavaScript 的依賴關(guān)系。
但如果你選擇 Node.js,你可以使用npm install安裝所有的東西,無論是在客戶端還是服務(wù)端。
代碼重用率那叫一個高,如果你發(fā)現(xiàn)自己正在實現(xiàn)一個左側(cè)字符填充功能,你只需要寫一次就行了,在一種語言中,而不是兩種。
如果你跟隨 Universal JavaScript 的腳本,你可以寫出一個可以同時在客戶端和服務(wù)端跑的 web 應(yīng)用。
如你所見,選擇全棧 JavaScript 的好處是巨大的。很多時候,當你在編寫前端代碼時,你會發(fā)現(xiàn)一些知識同樣適用于后端,反之亦然。
盡管全棧 JavaScript 開發(fā)者的日子要比其他全棧開發(fā)者好過得多,但你仍需要掌握前后端領(lǐng)域的專業(yè)知識。Node.js 和瀏覽器都說 JavaScript 一門語言,但編寫運行在瀏覽器中的前端代碼和跑在服務(wù)器上的后端代碼還是有很大不同。
那么,作為一名全棧 JavaScript 開發(fā)者,是不是就必須不斷地工作在前后端?
70/30 原則
有人說并沒有所謂的全棧 WEB 開發(fā)者,你要么是面向前端的,要么是面向后端的,必須做出選擇。
我對此表示理解
一名在前后端分別精確投入 50% 的開發(fā)者就像是謎一樣的生物,傳說中的小妖精。
你在想著小妖精能實現(xiàn)你所有的愿望并給你一壺金子,結(jié)果發(fā)現(xiàn)小妖精根本不存在。你只是喝醉了,在和一個穿著綠色外套的侏儒說話。
真相是全棧開發(fā)者,要么是面向前端的,要么是面向后端的
明白自己屬于哪一種對你只會有好處。意識到自己是更偏前端的全棧開發(fā)者并不妨礙你同時擅長后端技術(shù),只不過你會自然的投入更多精力去打磨前端能力。
所以我推薦 70/30 原則
如果需要花一年的時間實現(xiàn)一些功能,同時你可以選擇實現(xiàn)哪些功能,將 70% 的時間用在自己傾向的技術(shù)棧領(lǐng)域,剩下的 30% 投入到其他開發(fā)工作中。
你供職的公司可能不鼓勵全棧開發(fā),如果在公司只能做后端開發(fā),為什么不自己做一個前端的個人項目呢?沒有什么東西是一成不變的,今年還是傾向后 端的開發(fā)者明年就可能傾向前端。我想說的是,給自己一個準確的定位,合理安排時間。如果你是一位傾向前端的全棧開發(fā)者,將重心放在打磨自己的前端開發(fā)能力 上,同時留 30% 給后端,確保不被落下。
事實上,你完全可以成為一名前后端都牛逼的全棧開發(fā)者,只要你愿意。
免費學(xué)習(xí)課堂
- 免費推廣知識
- 競價推廣知識
- 新媒體營銷知識
- 網(wǎng)站運營知識
- 網(wǎng)站設(shè)計知識
- 網(wǎng)站建設(shè)知識
- Web前端知識
- 軟文營銷知識
- 網(wǎng)站策劃知識
- 整合營銷
推薦文章
全棧JavaScript程序員的崛起
來源:北京匯仁智杰科技有限公司 時間:2016-05-19 點擊: 次
推薦文章
- 織夢dedecms漏洞修復(fù)大全含任意文件2016-09-05
- 整頓微信公眾號過度營銷 對嚴重違2016-01-26
- SEO優(yōu)化過程要避免什么?2016-01-26
- 網(wǎng)站空間被掛馬的原因原因及解決2016-01-26
- 2016企業(yè)該如何運用互聯(lián)網(wǎng)進行營銷2016-01-26
- WEB前端項目開發(fā)中需注意的細節(jié)2016-01-26
- 低價網(wǎng)站建設(shè)的危害有哪些?2016-01-15
- 如何詳細的分析你網(wǎng)站的競爭對手2015-06-10
- 網(wǎng)站設(shè)計中四個常犯的錯誤2015-01-22
- 如何搭配網(wǎng)站設(shè)計中的色彩?2015-01-22