<tbody id="86a2i"></tbody>


<dd id="86a2i"></dd>
<progress id="86a2i"><track id="86a2i"></track></progress>

<dd id="86a2i"></dd>
<em id="86a2i"><ruby id="86a2i"><u id="86a2i"></u></ruby></em>

    <dd id="86a2i"></dd>
    laolv4519

    最近幾年一直使用Node.js作為后端服務平臺,通過Koa2框架中間件快速搭建Web服務,但是使用JavaScript開發大型后端服務時會使程序變得難以維護,繼而使用TypeScript語言開發,使編譯、調試、檢查和代碼管理變得更加容易。

    下圖是使用Koa2框架搭建后端服務的思維導圖:

    ?

    ?

    ?

    ?

    ?


    ?

    ?

    一、Node.js

    介紹:一個開源的、跨平臺的JavaScript運行時環境。類似于C#的.NetFramewok,Java的JRE。

    優點:

    1. 超強的并發能力;

    2. 單線程的高性能并行非阻礙I/O,基于事件驅動;

    3. 前后端開發語言一致,開發效率高;

    4. 微服務和SeverLess開發更具優勢;

    不足:

    1. 不適合計算密集型應用;

    2. 不適合大內存應用;

    3. 不適合大量同步應用。?

    使用場景:

    1. 開發Web服務Api,比如RESTful API;

    2. 服務器渲染頁面,提升速度;

    3. 后端的 Web服務,例如跨域、服務器端的請求。?

    應用方向:

    1. ?善于 I/O,天生異步的特點讓其非常擅長進行任務調度和處理并發 I/O,但不善于計算;

    2. 業務方向:網站開發、即時通信、小程序開發、跨平臺開發等;

    3. Node.js 過于追求性能而導致健壯性有所不足,所以不適用于銀行、證券等方向,但適合創業公司這種小體量、追求性能的公司;

    4. 大型企業在客戶端和服務器端直接加設Node.js,適合用Node.js做的就盡量用成本低回報高的Node.js來做。

    ?


    ?

    ?

    二、Koa2

    介紹:基于 Node.js 平臺的下一代 web 開發框架。由 Express 原班人馬打造的,致力于成為一個更小、更富有表現力、更健壯的 Web 框架。使用 Koa 編寫 Web 應用,可以免除重復繁瑣的回調函數嵌套, 并極大地提升錯誤處理的效率。Koa 不在內核方法中綁定任何中間件, 它僅僅提供了一個輕量優雅的函數庫,使得編寫 Web 應用變得得心應手,最大的特點就是可以避免異步嵌套。利用ES7的async/await特性,極大的解決了我們在做Node.js開發的時候異步給我們帶來的煩惱。

    優點和不足:非常簡單,而且極度自由,這種理念是優點也是缺點。

    ?


    ?

    ?

    三、未來展望

    1. 實時應用:實時應用是大勢所趨,并且將保持在排行榜前列。這些應用需要一個強大且健壯的后端。即時通信、視頻通話和在線游戲,以及許多其他相似的應用是完美的案例;

    2. 物聯網:Node.js提供一個特性豐富的運行環境,允許開發者使用面向數據和及時能力,以及微服務,當你在為自己的客戶構建 IoT(物聯網)應用時,你可以相信 Node.js 能夠幫助到你;

    3. SeverLess:每個人都喜歡既能省錢還能提高開發者的生產力和效率的方案,而將 Node.js 用于無服務架構正好是一個絕妙的解決方案。維護成本幾乎為零,而且并不需要公司擔心其應用的性能;

    4. GraphQL:GraphQL 是 RESTful API 的一個成功的選項。GraphQL 使程序員可以精確地說明它需要的信息。它可以有效地從不同的渠道收集大量信息。GraphQL 每年都在發展,是另一種 Node.js 趨勢;

    5. 微服務:基于Node.js的優點,其更適合搭建微服務平臺。

    ?


    ?

    ? ? ? ?

    ? ? ? ? ??更多精彩,請關注公眾號,互相學習,共同進步!

    ?

    相關文章:

    免费一级a片在线播放视频|亚洲娇小性XXXX色|曰本无码毛片道毛片视频清|亚洲一级a片视频免费观看
    <tbody id="86a2i"></tbody>

    
    
    <dd id="86a2i"></dd>
    <progress id="86a2i"><track id="86a2i"></track></progress>

    <dd id="86a2i"></dd>
    <em id="86a2i"><ruby id="86a2i"><u id="86a2i"></u></ruby></em>

      <dd id="86a2i"></dd>