其實不是說一定要學習node,而是為了職場更好的發展,尤其是為了學習更高階的程式思維,學習node很有必要。
以下是對學習node必要性的具體闡述【推薦:node.js影片教學】
1.node.js最根本的能力是讓js能夠脫離瀏覽器運行,學好node,可以讓自己不再是一個「純前端」
2.學習nodejs是進行前端工程化的基礎(NodeJS Stream)
3.學好node,可以寫服務端API,實現獨立開發專案
4.作為中間層(引申問題:什麼是中間層?)
中間層(BFF)也叫做應用層,在架構中處於服務層(Java)和客戶端之間,主要發揮的作用:
現在為什麼說很多時候前端也需要寫自己的api?
1.經典的雙層結構:前端+服務端
2.三層結構:前端+後端+服務端(現在的中大型專案所採用的結構)
三層結構的服務端只負責操作資料庫,管理數據,把數據回給後端,基本上就是純粹的數據,不包含數據業務後端就是所謂的中間層,如果前端來開發,那麼優先選擇nodejs,因為對於前端來說學習成本最低。
如果對自己的職場定位是做一輩子的純前端,那麼不需要學習nodejs,但是事實上做一輩子純前端很難,一般到了35歲,所具備的能力還只是“搬磚”,那麼在職場上的價值會越來越低。
CTO往往是由服務端工程師擔任
理由:
1.需要設計整個公司的技術架構
2.需要從全局考慮問題
3.需要掌控公司最重要的資產:數據(誰掌握數據,誰才有話語權)
學好node並不是說就可以去做CTO,但至少可以大大的提高我們前端的職場地位。
從技術上,運用自己的能力獨立完成一個專案、產品,是一件很有成就感的事。
就算排除掉前面的所有理由,作為一名純前端,學習node也有很大的好處,可以培養我們的程式思維,擴展我們考慮問題的角度。
NodeJs的優缺點及適用場景
NodeJs的兩大特性:事件驅動,非阻塞I/O
所以NodeJs的最大的兩個優點
1.處理高併發,相比較於其他後端語言,每個連接發射(emit)一個在NodeJS引擎進程中運行的事(Event),放進事件隊列當中,而不是為每個連接生成一個新的OS線程(並為其分配一些配套記憶體)
2.I/O密集型應用
因為JavaScript單執行緒的特點, NodeJs不適合CPU密集型應用;CPU密集型應用程式為Node帶來的挑戰主要是:由於JavaScript單執行緒的原因,如果有長時間運行的運算(如大循環),將會導致CPU時間片無法釋放,使得後續I/O無法發起;
解決方案:分解大型運算任務為多個小任務,使得運算能夠適時釋放,不阻塞I/O呼叫的啟動;
NodeJs 的適用場景:
RESTful API
這是NodeJS最理想的應用場景,可以處理數萬個連接,本身沒有太多的邏輯,只需要請求API,組織資料進行返回即可。它本質上只是從某個資料庫中尋找一些值並將它們組成一個回應。由於回應是少量文本,入站請求也是少量的文本,因此流量不高,一台機器甚至可以處理最繁忙的公司的API需求。
統一Web應用的UI層目前MVC的架構,在某種意義上來說,Web開發有兩個UI層,一個是在瀏覽器裡面我們最終看到的,另一個在server端,負責產生和拼接頁面。
大量Ajax請求的應用例如個人化應用,每個用戶看到的頁面都不一樣,快取失效,需要在頁面加載的時候發起Ajax請求,NodeJS能響應大量的並發請求總而言之,NodeJS適合運用在高並發、 I/O密集、少量業務邏輯的場景
以上就是學習Nodejs的目的是什麼?的詳細內容,更多請關注php中文網其它相關文章!