<ins id="jxy61"><option id="jxy61"><menu id="jxy61"></menu></option></ins>
          1. 煉數成金 門戶 大數據 JavaScript 查看內容

            Node.js 在大前端領域的應用分析

            2020-7-31 13:52| 發布者: 煉數成金_小數| 查看: 67591| 評論: 0|原作者: 前端361|來自: 知乎

            摘要: 關于 node 的使用已經很久了,使用范圍也很廣,似乎有前端的地方就有 node,那么來思考一個問題,node 到底是用來干嘛的呢?本文從五個大的方面對該問題進行了解釋。本文不僅僅可以應用場景的分析,完全可以把它當做 ...
            關于 node 的使用已經很久了,使用范圍也很廣,似乎有前端的地方就有 node,那么來思考一個問題,node 到底是用來干嘛的呢?本文從五個大的方面對該問題進行了解釋。本文不僅僅可以應用場景的分析,完全可以把它當做Node.js高級進階當路線,看看那些你還需要學。

            我們知道 node 的出現,讓前端開發既 ajax 之后,有了全新的面貌,在開發效率,性能等層面都有質的提升。歸納一直是知識提升的重要一環,參考了很多內容,本文對 node 的應用做了一個入門級的總結。讀完本文,希望可以清楚地認識到 node 在大前端中的地位和應用。
            首先看一張圖:
            node帶來了什么:

            從圖中可以看到 node 的應用是非常廣泛的,而最常用的就是工程化,自動化,npm

            node基本概念
            1,不在瀏覽器里運行的Javascript
            2,基于Chrome JavaScript 運行時建立的一個平臺
            3,一個事件驅動I/O服務端JavaScript環境,基于Google的V8引擎
            接下來,詳細看下 Node.js在大前端中的應用。

            廣義上應用
            在非瀏覽器端運行的js,包括前端環境搭建,云構建,服務,中間件,都有node.js 的應用場景
            具體應用
            一、前端工具鏈層面
            二、npm
            三、工程化相關
            四、前后端完全分離
            五、 服務端

            一、前端工具鏈

            babel, webpack, eslint, jest 等的具體使用不展開討論

            二、npm
            1,自有命令
            用來管理 npm 包,執行 node 文件
            2,npm 包

            特點:npm 包整體是對一類有共同應用的代碼抽象,包括了邏輯抽象,組件抽象,函數抽象

            三、工程化相關
            前端環境的建立是 node.js 在前端開發工作中能體現價值的應用之一,node 的出現使得前端開發從刀耕火種的時代進入了科技時代。前端工程化依賴于前面提到的 webpack,gulp,babel,eslint 等,完整的腳手架體系除了客戶端能力,還包括自動構建(比如jenkins),命令行發布的功能

            開發桌面應用
            Node.js 讓使用 js 開發桌面應用成為了可能,electron是當前比較流行的桌面應用開發工具,它 nodejs和chromium的結合起來,讓使用者可以調用 node.js的函數,可以使用幾乎所有的nodejs社區里的module。

            當下web應用非常流行,桌面應用似乎被遺忘,不過桌面應用也有一定的優勢,比如在前端工程化領域,可以使用桌面應用作為統一的GUI集成工具,讓前端工程變得統一化,簡單化。

            前端工程化的意義

            四、前后端完全分離
            1.前端應用脫離服務端代碼,獨立部署在 node.js 提供的服務上
            渲染方式有兩種,一種是采用的常規渲染,在瀏覽器中生成html代碼;
            另一種是采用服務端渲染(ssr),這種渲染方式跟之前 java 生成 html 代碼的方式類似,但是現在的 ssr 和真正的服務端并沒有太多關系,ssr 是在node端渲染的方式

            2,基于大型項目的全棧開發
            在前端獨立部署的基礎上,node 端加入了數據處理,接口代理,終端適配等邏輯代碼,使得前端擴展性,性能大大增強。常見的全?蚣苡衑gg,midway等

            前后端完全分離的必要性
            1,在開發過程中,有些職責劃分不清晰,前后端分離是前端不再依賴于后端,后端可以 專注于model層,前端專注于 view 和 controller
            2,在 web 性能優化中,前端所能做的優化工作有很大的局限性,很多優化要在合后端協調的基礎上完成,node.js 作為中間層,讓前端有足夠的優化決定權
            3,前端可以基于業務,調整前端架構,融合不同技術棧

            前后端完全分離的適用性
            適用于有一定的技術支撐的團隊,不能為了分離而分離
            前端獨立部署擴展

            Node作為服務端

            Node和serverless
            Serverless在2019年于國內開始嶄露頭角,目前還未大規模應用,但Serverless是必然的趨勢。

            其作為一種新型的互聯網架構,直接或間接推動了云計算的發展,從 AWS Lambda 到阿里云函數計算,Serverless 一路高歌,同時基于 Serverless 的輕量計算開始登錄云計算的舞臺。

            Serverless 的核心是 Faas,函數即服務,解決了傳統 BFF資源成本高,運維成本高,開發成本高,難以適應需求變化快等問題和痛點,讓開發者能更專注于業務邏輯,其他的底層資源和運維工作已經全部封裝。

            Node實現serverless
            使用 Serverless 框架搭建 Faas環境,ServerLess 框架是一個使用 Node.js 編寫的 CLI 工具,開發者無需關注底層資源即可部署完整可用的 Serverless 應用架構

            之后開發者只需要根據業務編寫相關的 function,部署到在云計算平臺上即可。

            已經使用serverLess的平臺

            總結

            本文不僅僅可以應用場景的分析,完全可以把它當做Node.js高級進階當路線,看看那些你還需要學,希望對小伙伴們有所幫助。

            聲明:文章收集于網絡,版權歸原作者所有,為傳播信息而發,如有侵權,請聯系小編刪除,謝謝!

            歡迎加入本站公開興趣群
            軟件開發技術群
            興趣范圍包括:Java,C/C++,Python,PHP,Ruby,shell等各種語言開發經驗交流,各種框架使用,外包項目機會,學習、培訓、跳槽等交流
            QQ群:26931708

            Hadoop源代碼研究群
            興趣范圍包括:Hadoop源代碼解讀,改進,優化,分布式系統場景定制,與Hadoop有關的各種開源項目,總之就是玩轉Hadoop
            QQ群:288410967 

            鮮花

            握手

            雷人

            路過

            雞蛋

            相關閱讀

            最新評論

            熱門頻道

            • 大數據

            即將開課

            熱門文章

               

              GMT+8, 2021-4-22 12:33 , Processed in 0.229178 second(s), 24 queries .

              年轻人手机在线观看