全棧 JavaScript 程式設計師的崛起

fetalk發表於2016-05-14

 JavaScript 無處不在

  在以前,JavaScript程式設計師就是前端開發者的同義詞,永遠與瀏覽器綁在一起。

  但那已是昨日往事。Node.js的崛起開啟了一個新紀元,從此,JavaScript 程式設計師可能不再是被侷限於瀏覽器的前端開發者了。

  相比其他高階程式語言,作為一名 JavaScript 程式設計師,你可以在更多的平臺上發揮才能。但是現在讓我們將目光放在兩大主流領域上:瀏覽器和服務端。

  為什麼我非要在這兩者中做出選擇呢?

 做為一名全棧 WEB 開發人員需要面對的問題

  有句古話說得好:”什麼都懂但沒有一樣通“, 每次花時間探索新的領域,你都是在浪費足以讓自己成為某一領域專家的時間。

“假如我被困荒島,唯一能夠獲救的方法是做出一套漂亮的使用者介面,我將毫無疑問的死在島上” —— Linus Torvalds,Linux 的創始人

  成為全棧開發者最大的風險就是在前後端都表現平庸,這比只擅長一種而對另一種全然不知更糟。

  在憤世嫉俗的人眼中,全棧開發者是“一幫將bug引入軟體棧每一層的傢伙”。

  原因是開發技術一直在發展。我們面對的問題變得越來越複雜,解決這些問題的技術自然需要發展。幾年前,學習 JavaScript 只需要掌握經典的 ES6就夠了,但今天,如果從零開始,我需要掌握同時 ES3和ES2015(ES6)。瞭解最前沿牛逼的技術不等於說我就可以不顧基礎了。

 全棧記

  每一種開發技術棧都有屬於自己的小世界。

  每一種語言都有自己的 WEB 開發框架。Python 有 Django,Ruby 有 Ruby on Rails。

  還有,每一種技術棧都有自己的包管理器,工具庫和獨特的語言結構,在這些棧背後是一群充滿熱情的人,他們可能是部落格作者、企業開發人員或者是開源軟體貢獻值。

  每一種技術棧都有自己的長處和弱點。

比較不同的技術棧是沒有意義的

  一旦你決定要成為全棧開發者,你將不可避免的在兩種技術棧中徘徊。一種是你深愛的,為之充滿激情。另一種便是 JavaScript。

一些人之所以如此討厭 JavaScript,部分原因是他們沒有選擇的權利,只能被 JavaScript 選擇。

  當 WEB 開發者想寫一些前端程式碼的時候,同時又不希望使用惱人的外掛,JavaScript 就成了唯一的選擇。

  有人嘗試過創造一種語言去取代 JavaScript,但最終編譯出來的 JavaScript 程式碼質量往往不盡人意。作為它們中的一員,我不方便指出(CoffeeScript),被71%的開發人員所畏懼!簡直是要超越 wordpress 的節奏。

  無論如何,JavaScript 統治著瀏覽器, 是瀏覽器唯一願說的語言。

  有不少非常聰明的男性和女性嘗試讓瀏覽器說不同的語言,結果是不少非常聰明的男性和女性都失敗了。

  食古不化的瀏覽器。

 JavaScript 的優勢

  讓我們換一種角度來看事物。

  如果說你深愛的,為之充滿激情的技術棧就是 JavaScript 棧呢?

如果是你擁有 JavaScript,而不是它擁有你

  如果你選擇 Node.js 作為後端開發框架, 你將獲得其他技術棧開發者夢寐以求的一些優勢。

  選擇 Node.js, 你就選擇了統一而不是分散你的技術棧,你選擇至始至終地使用 JavaScript。

  你不用再去尋找 Ruby 或者 Python中的Lodash工具庫,直接使用Lodash就是了。當然,你可能說pip install和bundle install用著還挺順手,但最後你還是得解決 JavaScript 的依賴關係。

  但如果你選擇 Node.js,你可以使用npm install安裝所有的東西,無論是在客戶端還是服務端。

NPM install all the things

  程式碼重用率那叫一個高,如果你發現自己正在實現一個左側字元填充功能,你只需要寫一次就行了,在一種語言中,而不是兩種。

  如果你跟隨 Universal JavaScript的指令碼,你可以寫出一個可以同時在客戶端和服務端跑的 web 應用。

  如你所見,選擇全棧 JavaScript 的好處是巨大的。很多時候,當你在編寫前端程式碼時,你會發現一些知識同樣適用於後端,反之亦然。

  儘管全棧 JavaScript 開發者的日子要比其他全棧開發者好過得多,但你仍需要掌握前後端領域的專業知識。Node.js 和瀏覽器都說 JavaScript 一門語言,但編寫執行在瀏覽器中的前端程式碼和跑在伺服器上的後端程式碼還是有很大不同。

  那麼,作為一名全棧 JavaScript 開發者,是不是就必須不斷地工作在前後端?

 70/30原則

  有人說並沒有所謂的全棧 WEB 開發者,你要麼是面向前端的,要麼是面向後端的,必須做出選擇。

  我對此表示理解

  一名在前後端分別精確投入50%的開發者就像是謎一樣的生物,傳說中的小妖精。

  你在想著小妖精能實現你所有的願望並給你一壺金子,結果發現小妖精根本不存在。你只是喝醉了,在和一個穿著綠色外套的侏儒說話。

真相是全棧開發者,要麼是面向前端的,要麼是面向後端的

  明白自己屬於哪一種對你只會有好處。意識到自己是更偏前端的全棧開發者並不妨礙你同時擅長後端技術,只不過你會自然的投入更多精力去打磨前端能力。

  所以我推薦 70/30 原則

如果需要花一年的時間實現一些功能,同時你可以選擇實現哪些功能,將70%的時間用在自己傾向的技術棧領域,剩下的30%投入到其他開發工作中。

  你供職的公司可能不鼓勵全棧開發,如果在公司只能做後端開發,為什麼不自己做一個前端的個人專案呢?沒有什麼東西是一成不變的,今年還是傾向後端的開發者明年就可能傾向前端。我想說的是,給自己一個準確的定位,合理安排時間。如果你是一位傾向前端的全棧開發者,將重心放在打磨自己的前端開發能力上,同時留30%給後端,確保不被落下。

  事實上,你完全可以成為一名前後端都牛逼的全棧開發者,只要你願意。

 做一名全棧 JavaScript 開發者的樂趣

  在近期 Stackoverflow 的一次調查中,絕大部分的開發者都把自己定義為全棧WEB開發者。同時,有85.3%的開發者多少懂一點 JavaScript。

  是什麼原因讓全棧開發者變得如此流行?市場選擇,不願意在前端和後端之中做出選擇,還是全棧開發者那不可否認的性感魅力?

  我想答案其實很簡單

全棧開發樂趣多

  作為一名開發者,最棒的事之一就是一人獨立操辦前後端帶來的滿足感

  從你建立的使用者介面發出資料,在用自己建立的 API 接收,然後儲存或者處理這些資料。看著其他人使用你建立的功能,從前端到後端,是一種難以描述的美妙體驗。你不禁會想“我創造了它,在這之前這是不可能的,但現在卻因為我成為了可能”。

 屬於全棧 JavaScript 開發者的新篇章

  JavaScript 的生態系統一直在發展,從最初的瀏覽器到後來的服務端,今天我們甚至走得更遠。移動應用、Bot Frameworks、物聯網、3D 遊戲甚至是虛擬現實都可以採用 JavaScript進行開發。

  作為全棧 JavaScript 開發者,我們得保證至少精通一個領域。同時,軟體開發的大門始終是敞開的,你可以對各種流行技術和前沿科技進行探索,且不用擔心忽略了自己的 JavaScript 技能。作為全棧開發者的一個最大好處就是能持續地學習新事物,將其內化並掌握。

  JavaScript 就是你的畫布,把它變漂亮吧!

  原文地址:http://thefullstack.xyz/full-stack-javascript-developer/

相關文章