-
1 # 碼農視界週刊
-
2 # 網際網路之聲
Node近兩年已經成為前端知識棧必備技能之一。隨便點開招聘網站找個崗位幾乎都會要求會Node,更不用提一些高階崗位了,你會nodejs就掌握更多高薪崗位,難道你還會拒絕高薪嗎。
可能你看過Node是什麼,看過Node的文件,用Node寫過一些小專案。但是如果問你——
你知道在一線網際網路企業裡,Node真正是怎麼用的嗎?是拿來做什麼的?怎麼做?
我相信百分之八十的人都不知道答案,甚至包括一些用Node寫過部落格,小站點的前端程式設計師。這也是大家對於學習很容易出現的問題:我學會了這個框架(技術)的所有API,但是我不知道到商業專案裡怎麼用它。接下來給大家做一個介紹:
Node在一線企業中的運用
1:作為中間層
我們通常說前端和後端,前端負責使用者介面,而後端負責提供資料和業務介面。現在我們在兩者間加入一層,前端並不是直接去請求後端業務介面,而是請求到中間層。
整個流程可以描述為:客戶端直接請求到中間層的Node服務,Node服務分析請求,看需要哪個頁面,再去請求對應資料,拿到資料後和模版結合成使用者看到頁面,再給到客戶端。
那麼有的人可能會覺得,這種模式不是更麻煩了嗎?其實不然,我們來看看中間層的優點:
1. 減輕客戶端記憶體,專案使用者體驗好。不會像mvvm模式的專案把頁面渲染和資料請求都壓在客戶端,而是在服務端完成。
2. SEO性好,不像mvvm模式頁面由js生成,而是在伺服器渲染好html 字元,有利於網頁被搜尋到。
3. 保持了前後端分離的優點和目的,即解放後端,後端可以繼續以介面的形式寫業務程式碼。
4. 前端可以操控的範圍增多,甚至可以做伺服器,資料庫層面的最佳化,比如中間層中常常用nginx,redis來最佳化專案,應對高併發。
中間層模式是一種開發模式上的進步,為什麼這麼好的模式我從來沒有聽說過呢?因為這種模式成本過高,如果沒有一定量級的專案沒必要去採用。
目前很多一線大廠已經在使用了,比如淘寶、Facebook(php寫的中間層)。網際網路的潮流往往都是一線網際網路公司開始普及的,一線網際網路公司開始大規模採用,慢慢的會變成普通公司也開始普及,所以這也是我們想在將來穩住自己工作的必備技能。但是目前中間層的資料十分少,學習起來可以說困難重重。
2:做專案構建工具
這裡說的專案構建工具,我相信大家都用過,我們的webpack,vue-cli都是輸入專案構建工具。那麼大家覺得這一類工具神奇好用方便的同時,有沒有想過這些工具是拿什麼語言寫的?其實它們並不難,這些工具都是用Node來寫的。
很多公司都會開發自己公司的專案構建工具,幫助公司專案做的更標準更方便,一個好的專案構建工具,會極大的加快整個公司的專案開發效率。
這一類的專案構建工具一般都要很多的檔案操作,Node對於i/o流的操作,在目前的主流後端語言中數一數二。所以越來越多的公司選擇用Node來做專案構建工具。
3:做一些小型網站後端
用Node做後端,可能是大多數人認為的Node作用。其實真正在企業之中,很少會讓你去用Node去做後端。 所以一般來說都是做一些小型或者個人站的後端。
如何學習Node
那麼我們如何學習Node呢?這裡給大家推薦一個Node學習路線:
1. 學習基礎伺服器,http協議知識
2. 學習Node的API
3. 嘗試用Node做具體功能
4. 學習express,koa,egg等框架
5. 學習Node如何做前面說的三個實際應用
整個學習路線看起來並不複雜,但1,2,3這三個基礎知識點,學起來也是十分耗神耗時間的。尤其到了後面的三個實際應用,更是難倒了想學習的你,因為資料實在太少。而且這種實戰的東西,沒人帶著走一遍實在是很難掌握住。自己把這套路線走下來,學不學的會不說,即使天資聰穎也要個一年多的時間,耗不起啊。
網易雲課堂聯合資深一線工程師打造的前端進階課程中,會有一個專題專門來講Node,包含Node開發導學、Web開發框架-Koa原始碼分析、egg.js應用實踐、自動化測試、線上伺服器部署與釋出。
-
3 # 安小彥
的,隨著IT行業發展越來越好,現在全棧前端開發也越來越多,所謂全棧,肯定是要學習後臺知識的,Web前端開發到最後就是要走全棧開發的道路了,全棧開發以NodeJS作為服務端語言,基於NodeJS實現的服務端框架有Express,KOA,目前也發展的越來越成熟。既然講到全棧開發,肯定會透過服務端語言操縱資料庫,因此對於資料庫的知識也肯定要掌握的。因為我們前臺介面的資料都是從後臺來的,如果會點後臺程式碼,就知道怎麼跟後臺互動資料是最好的,這樣節約時間,也可以讓前端程式碼更規範。學習的話可以找些學習資料,必要的話可以考慮付費的資料學習,祝好
回覆列表
首先,如果你寫的js程式碼只是在瀏覽器中執行,你有必要簡單瞭解下nodejs;因為現在基本上很多的前端庫或者框架,為了提高執行速度、提高開發效率、相容瀏覽器都會藉助nodejs的能力,對你編寫的js程式碼在做一次處理。
因此,如果你希望自己能在前端技術上有更高的造詣,最起碼要懂一些nodejs的api,特別是 關於如何開發node 模組這塊其次,技術本身就沒有邊界,你知道的越多,對你寫出來的程式碼就會越有幫助;當你遇到問題的時候,解決方案也會比別人多。因此如果希望更多的瞭解伺服器端的知識,nodejs 是作為 前端工程師 入門後端的一個很好的技術
最後,身為一名技術,其實對技術應該充滿熱情,比如為自己,雖然日常的工作的前端開發,但是nodejs,python,oc,java 我自己沒事的時候也會構建環境玩一玩,看看相關的文章。技術直接都是相同的