您現(xiàn)在的位置是:首頁(yè) >綜合 > 2021-05-15 10:08:28 來(lái)源:
Node.js改變應(yīng)用程序開(kāi)發(fā)規(guī)則的5種方式
Node.js的采用受到減少應(yīng)用程序上市時(shí)間的需求的推動(dòng)。更高的靈活性和更低的勞動(dòng)力成本導(dǎo)致更快的發(fā)展,因此公司可以應(yīng)對(duì)當(dāng)今瞬息萬(wàn)變的商業(yè)環(huán)境。Node.js使用JavaScript,這是當(dāng)今最流行的編程語(yǔ)言之一,這意味著Node很容易接觸到大量的開(kāi)發(fā)人員。
應(yīng)用程序開(kāi)發(fā)規(guī)則正在發(fā)生變化。這是如何做:
1.模塊化設(shè)計(jì)
考慮一下PayPal的經(jīng)驗(yàn),它參與了一個(gè)新應(yīng)用程序的并行開(kāi)發(fā),其中一個(gè)團(tuán)隊(duì)使用Java而另一個(gè)團(tuán)隊(duì)使用Node.js.
據(jù)杰夫·哈勒爾, 工程總監(jiān)和首席架構(gòu)師貝,Node.js的內(nèi)置應(yīng)用程序需要更少的代碼33%%的線路,處理每秒請(qǐng)求數(shù)的兩倍,并縮短響應(yīng)時(shí)間的35%%相比,Java版本。
Node團(tuán)隊(duì)在兩個(gè)月內(nèi)完成了他們的項(xiàng)目,而Java團(tuán)隊(duì)在八個(gè)月后仍然試圖完成。此外,Node團(tuán)隊(duì)由兩名開(kāi)發(fā)人員組成,而Java團(tuán)隊(duì)編號(hào)為20。
PayPal使用Node.js來(lái)實(shí)現(xiàn)由龐大代碼庫(kù)負(fù)擔(dān)的單片應(yīng)用程序環(huán)境的現(xiàn)代化。它首先使用Node.js重新設(shè)計(jì)現(xiàn)有的Java服務(wù)。通過(guò)這樣做,PayPal直接解決了其業(yè)務(wù)所帶來(lái)的僵化,并使其能夠繼續(xù)快速創(chuàng)新并繼續(xù)使服務(wù)適應(yīng)其需求。
Java應(yīng)用程序開(kāi)發(fā)框架鼓勵(lì)構(gòu)建大型單片應(yīng)用程序。雖然這是15年前的既定最佳實(shí)踐,但今天,模塊化,面向服務(wù)的體系結(jié)構(gòu)被認(rèn)為是處理復(fù)雜業(yè)務(wù)環(huán)境中復(fù)雜軟件的更好方法。
PayPal使用Node.js將模塊化推進(jìn)其軟件開(kāi)發(fā)過(guò)程。Node.js鼓勵(lì)模塊化設(shè)計(jì),并通過(guò)其生態(tài)系統(tǒng)和工具實(shí)現(xiàn)。PayPal早期做出的一個(gè)關(guān)鍵決策是在Node.js中建立一個(gè)內(nèi)部包注冊(cè)表,以便在內(nèi)部管理代碼并使團(tuán)隊(duì)更有效地進(jìn)行協(xié)作。
由于每個(gè)模塊都提供可以跨團(tuán)隊(duì)和跨應(yīng)用程序輕松共享的特定功能,因此Node.js可以加快應(yīng)用程序開(kāi)發(fā)速度并實(shí)現(xiàn)更好的團(tuán)隊(duì)協(xié)作。
2.生態(tài)系統(tǒng)
Node.js代碼的模塊化設(shè)計(jì)創(chuàng)建了一個(gè)豐富的生態(tài)系統(tǒng),您可以在開(kāi)發(fā)應(yīng)用程序時(shí)進(jìn)行構(gòu)建。
Node.js生態(tài)系統(tǒng)結(jié)合了低級(jí)系統(tǒng)程序員和前端JavaScript開(kāi)發(fā)人員的工作,以實(shí)現(xiàn)服務(wù)器端開(kāi)發(fā)。
Node.js生態(tài)系統(tǒng)中有許多依賴項(xiàng),可以更容易地進(jìn)行調(diào)整,合并和共享。
Node.js代碼的包注冊(cè)表npm是有史以來(lái)最大的包生態(tài)系統(tǒng)。據(jù)modulecounts.com報(bào)道,有近300,000個(gè)包裹 - 每天增加300多個(gè)新包裹,是其他生態(tài)系統(tǒng)的三倍。
3.合作
通過(guò)模塊化設(shè)計(jì)和如此龐大的生態(tài)系統(tǒng),Node.js開(kāi)發(fā)人員可以享受更多的協(xié)作。Java傾向于使用面向?qū)ο缶幊虅?chuàng)建大型單片系統(tǒng)和深度聯(lián)盟,這使得共享離散功能組件變得困難。代碼在Java中共享時(shí),通常采用大型庫(kù)的形式。Node.js使用更小,更集中的組件使構(gòu)建應(yīng)用程序變得更容易,更快,團(tuán)隊(duì)在整個(gè)公司范圍內(nèi)可以協(xié)作生成。這些組件具有特定功能,可以更輕松地在團(tuán)隊(duì)和應(yīng)用程序之間共享。
通用JavaScript - AKA同構(gòu)JavaScript - 是跨前端和后端Node.js代碼共享JavaScript代碼的實(shí)踐。這創(chuàng)建了新的協(xié)作方式,并允許團(tuán)隊(duì)更有效地利用時(shí)間和精力。
4.上市時(shí)間
要了解Node項(xiàng)目如何將開(kāi)發(fā)人員,運(yùn)營(yíng)團(tuán)隊(duì)和管理人員聚集在一起以縮短新應(yīng)用的上市時(shí)間,您可以參考上面的PayPal示例。更少的代碼行,模塊化設(shè)計(jì)和跨組織協(xié)作都有助于縮短產(chǎn)品上市時(shí)間。
在雅虎,Reid Burke 在Node Summit上分享了Node.js如何通過(guò)利用模塊化設(shè)計(jì)與小模塊和內(nèi)部注冊(cè)表來(lái)更有效地協(xié)作,使開(kāi)發(fā)團(tuán)隊(duì)能夠在短短30天內(nèi)發(fā)布全功能,生產(chǎn)就緒的Node.js應(yīng)用程序。
JavaScript的動(dòng)態(tài)特性使PayPal,Yahoo和Netflix的團(tuán)隊(duì)能夠更快地進(jìn)行迭代,并更快地向市場(chǎng)提供解決方案。這意味著團(tuán)隊(duì)可以開(kāi)發(fā),測(cè)試,構(gòu)建和部署新服務(wù)和新用戶體驗(yàn),以跟上客戶需求。
5.運(yùn)營(yíng)成本
由于Node.js可以更輕松地創(chuàng)建軟件應(yīng)用程序,因此它還可以更加經(jīng)濟(jì)高效地運(yùn)行它們。
部署Node應(yīng)用程序的公司報(bào)告稱,他們通常需要的計(jì)算能力要低得多,而Node.js在IT環(huán)境中的占用空間要遠(yuǎn)遠(yuǎn)小于使用Java構(gòu)建的系統(tǒng)。典型的Java安裝將位于具有32個(gè)內(nèi)核和64GB RAM的服務(wù)器上。在同一硬件上,最多可以運(yùn)行32個(gè)Node.js應(yīng)用程序?qū)嵗?/p>
Node.js可輕松映射到現(xiàn)代云環(huán)境,使運(yùn)營(yíng)團(tuán)隊(duì)在計(jì)算資源和服務(wù)器之間實(shí)現(xiàn)近乎一對(duì)一的關(guān)系。相比之下,Java服務(wù)器通常嚴(yán)重過(guò)度配置以補(bǔ)償資源使用的高度差異。
Node幫助Netflix在云計(jì)算的現(xiàn)有節(jié)省基礎(chǔ)上發(fā)展。與Java相比,該公司現(xiàn)在僅在Node上使用四分之一的Amazon EC2云實(shí)例。更好的是,它為相同數(shù)量的用戶提供服務(wù),但提供了更低的延遲率。
“我們通過(guò)Node改善了性能并降低了基礎(chǔ)架構(gòu)成本,” Netflix的Node.js平臺(tái)架構(gòu)師Yunong Xiao表示 。
由于Node.js團(tuán)隊(duì)可以更快地構(gòu)建應(yīng)用程序,因此可以降低總?cè)斯こ杀尽T谥暗腜ayPal示例中,該公司只有兩個(gè)Node應(yīng)用程序開(kāi)發(fā)人員,而在Java上只有20個(gè)。因此,每個(gè)Node項(xiàng)目不僅需要更少的開(kāi)發(fā)人員,項(xiàng)目的完成速度也比Java快。
節(jié)點(diǎn)社區(qū)
對(duì)于那些剛接觸Node的人來(lái)說(shuō),了解它得到了供應(yīng)商中立的Node.js基金會(huì)以及專注于商業(yè)Node.js產(chǎn)品和NodeSource等支持的公司的強(qiáng)大社區(qū)支持。NodeSource產(chǎn)品組合包括N | Solid,用于生產(chǎn)環(huán)境的實(shí)時(shí)檢測(cè),無(wú)需更改應(yīng)用程序代碼,從而為大規(guī)模構(gòu)建Node.js應(yīng)用程序的團(tuán)隊(duì)提供更好的洞察力和生產(chǎn)力。
NodeSource - 與Joyent和StrongLoop一起 - 對(duì)Node.js來(lái)說(shuō),Red Hat對(duì)Linux,Cloudera和HortonWorks對(duì)Hadoop是什么,而Datastax對(duì)于Cassandra。這些供應(yīng)商幫助確保公司獲得解決問(wèn)題所需的產(chǎn)品和支持,并使Node.js計(jì)劃取得成功。