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