'大公司為什麼一定會用Node'

數據庫 技術 數據結構 PHP Java 人生第一份工作 滬漂程序員的生活史 2019-09-12
"

經過這幾年的發展,前端普遍進入了技術深水區,只會Web頁面開發已經難以滿足企業需求,Node逐漸成為了剛性技能。下面將從4個角度分析為什麼一定要用Node?

"

經過這幾年的發展,前端普遍進入了技術深水區,只會Web頁面開發已經難以滿足企業需求,Node逐漸成為了剛性技能。下面將從4個角度分析為什麼一定要用Node?

大公司為什麼一定會用Node

先了解什麼是中間層

在翻看很多技術文章時,大家都提到“中間層”,在很多大型企業中,Node確實承擔了“中間層”的角色,那麼,Node為什麼被廣泛的應用在“中間層”呢?

要回答這個問題,先來陳述下什麼是中間層。

通常我們把Web領域分為客戶端和服務端,也就是前端和後端,這裡的後端就包含了網關,靜態資源,接口,緩存,數據庫等。而中間層呢,就是在後端這裡再抽離一層出來,在業務上處理和客戶端銜接更緊密的部分,比如頁面渲染(SSR),數據聚合,接口轉發等等。

以SSR來說,在服務端將頁面渲染好,可以加快用戶的首屏加載速度,避免請求時白屏,還有利於網站做SEO,他的好處是比較好理解的。那麼對於數據的聚合,接口轉發來說,這樣做有什麼意義呢?

用Node的4點意義

一、業務驅動

Node有個突出的優勢,他的開發者可以是前端。

前端對於頁面所需要的數據有更好的理解,每個頁面要用到哪些接口,每個接口要用到哪些字段前端是最清楚的。再加上實際業務開發中,前端頁面需求經常會發生變化,需要修改字段或者數據結構,所以對接頁面的這部分接口由前端直接開發非常合適,可以顯著的減少溝通成本。

二、架構需要

面向用戶的接口由Node中間層負責以後,真正的服務端可以專注於提供基於領域模型的對內接口,做微服務。

比如可以基於Goods模型,提供所有商品相關的接口,基於Users模型,提供所有用戶相關,當一個接口需要商品+用戶信息時,由Node分別查詢組裝。從整體業務代碼維護角度來說,變得更容易,不會因為業務發展使得每個接口都異常繁雜。

三、性能滿足

如果僅僅是架構層面的需求,需要有一箇中間層來沉澱業務,那用Java,PHP也可以做到,為什麼說Node更適合做呢?

因為Node天生異步!

眾所周知,js是一門單線程語言,所以Node在實現的時候,需要藉助libuv來實現異步。

"

經過這幾年的發展,前端普遍進入了技術深水區,只會Web頁面開發已經難以滿足企業需求,Node逐漸成為了剛性技能。下面將從4個角度分析為什麼一定要用Node?

大公司為什麼一定會用Node

先了解什麼是中間層

在翻看很多技術文章時,大家都提到“中間層”,在很多大型企業中,Node確實承擔了“中間層”的角色,那麼,Node為什麼被廣泛的應用在“中間層”呢?

要回答這個問題,先來陳述下什麼是中間層。

通常我們把Web領域分為客戶端和服務端,也就是前端和後端,這裡的後端就包含了網關,靜態資源,接口,緩存,數據庫等。而中間層呢,就是在後端這裡再抽離一層出來,在業務上處理和客戶端銜接更緊密的部分,比如頁面渲染(SSR),數據聚合,接口轉發等等。

以SSR來說,在服務端將頁面渲染好,可以加快用戶的首屏加載速度,避免請求時白屏,還有利於網站做SEO,他的好處是比較好理解的。那麼對於數據的聚合,接口轉發來說,這樣做有什麼意義呢?

用Node的4點意義

一、業務驅動

Node有個突出的優勢,他的開發者可以是前端。

前端對於頁面所需要的數據有更好的理解,每個頁面要用到哪些接口,每個接口要用到哪些字段前端是最清楚的。再加上實際業務開發中,前端頁面需求經常會發生變化,需要修改字段或者數據結構,所以對接頁面的這部分接口由前端直接開發非常合適,可以顯著的減少溝通成本。

二、架構需要

面向用戶的接口由Node中間層負責以後,真正的服務端可以專注於提供基於領域模型的對內接口,做微服務。

比如可以基於Goods模型,提供所有商品相關的接口,基於Users模型,提供所有用戶相關,當一個接口需要商品+用戶信息時,由Node分別查詢組裝。從整體業務代碼維護角度來說,變得更容易,不會因為業務發展使得每個接口都異常繁雜。

三、性能滿足

如果僅僅是架構層面的需求,需要有一箇中間層來沉澱業務,那用Java,PHP也可以做到,為什麼說Node更適合做呢?

因為Node天生異步!

眾所周知,js是一門單線程語言,所以Node在實現的時候,需要藉助libuv來實現異步。

大公司為什麼一定會用Node

"

經過這幾年的發展,前端普遍進入了技術深水區,只會Web頁面開發已經難以滿足企業需求,Node逐漸成為了剛性技能。下面將從4個角度分析為什麼一定要用Node?

大公司為什麼一定會用Node

先了解什麼是中間層

在翻看很多技術文章時,大家都提到“中間層”,在很多大型企業中,Node確實承擔了“中間層”的角色,那麼,Node為什麼被廣泛的應用在“中間層”呢?

要回答這個問題,先來陳述下什麼是中間層。

通常我們把Web領域分為客戶端和服務端,也就是前端和後端,這裡的後端就包含了網關,靜態資源,接口,緩存,數據庫等。而中間層呢,就是在後端這裡再抽離一層出來,在業務上處理和客戶端銜接更緊密的部分,比如頁面渲染(SSR),數據聚合,接口轉發等等。

以SSR來說,在服務端將頁面渲染好,可以加快用戶的首屏加載速度,避免請求時白屏,還有利於網站做SEO,他的好處是比較好理解的。那麼對於數據的聚合,接口轉發來說,這樣做有什麼意義呢?

用Node的4點意義

一、業務驅動

Node有個突出的優勢,他的開發者可以是前端。

前端對於頁面所需要的數據有更好的理解,每個頁面要用到哪些接口,每個接口要用到哪些字段前端是最清楚的。再加上實際業務開發中,前端頁面需求經常會發生變化,需要修改字段或者數據結構,所以對接頁面的這部分接口由前端直接開發非常合適,可以顯著的減少溝通成本。

二、架構需要

面向用戶的接口由Node中間層負責以後,真正的服務端可以專注於提供基於領域模型的對內接口,做微服務。

比如可以基於Goods模型,提供所有商品相關的接口,基於Users模型,提供所有用戶相關,當一個接口需要商品+用戶信息時,由Node分別查詢組裝。從整體業務代碼維護角度來說,變得更容易,不會因為業務發展使得每個接口都異常繁雜。

三、性能滿足

如果僅僅是架構層面的需求,需要有一箇中間層來沉澱業務,那用Java,PHP也可以做到,為什麼說Node更適合做呢?

因為Node天生異步!

眾所周知,js是一門單線程語言,所以Node在實現的時候,需要藉助libuv來實現異步。

大公司為什麼一定會用Node

大公司為什麼一定會用Node

如圖所示,libuv為Node提供了線程池,事件池,異步I/O等能力。正是因為其中網絡I/O的異步能力,可以讓Node做接口聚合時,能夠更高效的異步併發處理。

四、成本較低

Node使用js開發,只需要學習簡單的api,前端開發者就可以無障礙使用,學習成本很低。

而且,Node具有活躍的社區和豐富的模塊池,擁有很多現成的功能實現,框架方面,也有成熟的koa,express等基本框架和egg等二次封裝框架,可根據需求選擇上手也比較方便。

總結

總結起來,node對於性能優化方面還是有不錯的效果的,雖然在不能純粹的作為後端語言來使用,但作為前端服務層或者中間層還是綽綽有餘的,大夥可以自己斟酌。

"

相關推薦

推薦中...