標籤:

現在前端必須掌握nodejs技術嗎?


我作個類比:

作為一名士兵,你需要掌握榴彈炮的用法嗎?

這麼一看,答案顯然是不一定,但古人教導我們說,技多不壓身,所以你有空學一下肯定是沒壞處的。

那我再提一個問題:

作為一個指揮官,你需要知道榴彈炮的作用嗎?

這個答案是顯而易見的,所以,對於前端團隊leader和架構師來說,知道nodejs的大致原理,能解決什麼問題,帶來什麼好處,適合什麼場景,會對你的技術決策帶來很正面的影響,這些你一定需要去了解清楚。


這是一個偽命題,前端必須掌握Node.js技術?當然不是必須的。但有可能必須掌握PHP、JSP,因為可能是公司需要你掌握它們。所以:

1. 審時度勢,看現實情況;

2. 多學點總是好的,為何要被動學習而不主動學習呢?

可以看看我在「如果不知道怎麼走,就走下去 - 瓜園耕讀 - 知乎專欄」這篇文章中寫的,其中說到:「每個人的區別只在於,你樂意拓展多大的知識面」;還有這篇:「如何做選擇? - 瓜園耕讀 - 知乎專欄」。


-

前端已經進入規模化,工程化的時代了。

而NodeJS在這其中扮演了很重要的角色,尤其是工具和流程層面。

如grunt,bower,yeoman,karma,fis這些都是用node寫的。

如果你不去學, 只會被時代淘汰。

如果上面我說的這幾個名詞,都沒接觸過的話, 確實該好好想一想了。

如果你認為JS只是個玩具, 認為node只用於服務端, 那也該好好想一想了。

技多不壓身。

-


基於:NodeJS 提供了一個﹝讓熟悉 JavaScript 的人可以快速上手並可進行後台系統開發﹞的環境/平台,這樣的設定。

Short answer: 是的

Long answer:

對於現在的前端來說,尤其是多以 JavaScript 為主做 web app 而不是傳統的以 HTML+CSS 為主的網站頁面的前端來說,本身業務需求就需要對 JavaScript 有比較深入的理解和認識。

基於此,其對於 NodeJS 的基本概念應該是已經有一定的了解了的。

其次,作為前端自動化(如項目初始化、「編譯」、測試等)的要求,需要一定程度上了解 Node,尤其是那些可編程式的工具,如Yeoman、Bower、GruntJS、GulpJS、Protractor等。

還有,作為 full stack engineering 的一種,NodeJS 只要求JS,所以使用 Node 可以讓專業的前端(除了前端專業性的基本功,至少還要了解演算法和數據結構等程序設計基礎的),能夠快速轉型成全棧開發。

同時,對於以 JS 為主要開發語言並且有比較深入了解的前端來說,學習 NodeJS 難度並不高,event-driven 應該是本就熟悉的,stream 也類似,其它如閉包、Promise、模塊化等更是如此;而關於網路、文件系統、進程等的概念理解和相關操作,對於計算機、電子、網路等相關專業出身的人來說,應該是已經有基本認識的,有此類背景的前端上手也會很快,而沒有此類背景的,也建議去學習了解一下,畢竟屬於計算機學科基礎知識。

綜上所述,不管是說為了前端自動化,還是前端開發人員為主的全棧式開發,又或者是擴展前端人員知識廣度,都是應該有一定 NodeJS 基礎的。


從技術的角度講,其實對於一個會js的前端(當然會點php或java類的後端語言更好),nodejs的基本語法你已經掌握了。只是你沒有深入,無法進行融匯貫通,也就不會有這方面的「功力」。

從環境的角度講,在一個nodejs做輔助開發(Angular、grunt、seajs等等很多工具)的環境中,如果不會nodejs,怎麼才能進一步提高呢?

鑒於以上兩點,個人認為學nodejs是一個有點上進心的前端必須掌握的技術。


必須,,,

黑玫瑰將再次綻放——樂芙蘭


沒有必須


後端開發,現在要了解前端內容,保持關注。


這裡再次強調一下,我們學習彙編的主要目的,就是通過彙編語言進行編程而深入地理解計算機底層的基本工作原理,達到可以隨心所欲控制計算機的目的。基於這種思考,我們的編程活動,大多是直接對硬體進行的。我們希望直接對硬體編程,卻並不希望用機器碼編程;我們用彙編語言編程,就要用到:編輯器,連接器,調試工具等所有工具,而這些工具都是在操作系統之上運行的程序,所以我們的學習過程勢必要牽扯到操作系統、編譯原理等方面的知識和原理。我們只是利用這些環境、工具來方便我們學習,而不希望這些東西分散了我們的注意力。所以,對於涉及到而又不在我們學習的主要內容之中的東西,我們只做簡單的解釋

——王爽《彙編語言》

nodejs技術指什麼?

1. nodejs本身的語法規範 沒必要

2. nodejs背後的思想 沒必要 (得有java,.net等後台伺服器經驗你才會略懂一二)

3. nodejs上的生態圈,工具鏈 會用就行

當然如果到了技術架構的級別,那麼都要學,不光nodejs,任何方方面面的知識都要涉獵。

JacksonTian/fks這項目里後面都要去學C++了,怎麼可能!

吾生也有涯而知也無涯。工作中要用到什麼,就去學什麼唄。

一個切圖的就甭想那麼多了。


推薦閱讀:

前端構建工具 Gulp / browserify/ webpack / npm ?
npm和bower都有的模塊怎麼選擇?
手機遊戲伺服器端用node.js 還是用go,fibjs之類等比較好?
Node.js 真的不適合大規模開發嗎?

TAG:Nodejs |