自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Node.js在復(fù)雜集成場(chǎng)景下占據(jù)統(tǒng)治地位的五個(gè)理由

譯文
開(kāi)發(fā) 后端
簡(jiǎn)單的集成當(dāng)然不成問(wèn)題,然而如果集成需求較為復(fù)雜,那么需要接入現(xiàn)有應(yīng)用中的第三方產(chǎn)品可能多達(dá)數(shù)十種??紤]到具體定制與業(yè)務(wù)邏輯的復(fù)雜性,不同廠商的API開(kāi)放性與全面性條件可能引發(fā)令人頭痛的難題。

【51CTO.com快譯】毫無(wú)疑問(wèn),軟件解決方案很少在真空環(huán)境下進(jìn)行,這意味著我們將不可避免地要同集成工作打交道。簡(jiǎn)單的集成當(dāng)然不成問(wèn)題,然而如果集成需求較為復(fù)雜,那么需要接入現(xiàn)有應(yīng)用中的第三方產(chǎn)品可能多達(dá)數(shù)十種??紤]到具體定制與業(yè)務(wù)邏輯的復(fù)雜性,不同廠商的API開(kāi)放性與全面性條件可能引發(fā)令人頭痛的難題。

為了完成相關(guān)集成工作,歷史上曾出現(xiàn)了一系列解決方案,包括DOS批處理文件、Linux shell腳本、Perl以及Python等等。但如今,Node.js開(kāi)始廣泛普及,并成為眾多從業(yè)者的主流選項(xiàng)。具體原因,則分為以下五點(diǎn)。

[[188035]]

1. Node.js擁有通用性優(yōu)勢(shì)

憑借著JavaScript的超高普及度,Node.js亦擁有可觀的用戶群體。正因?yàn)镴S的直觀性與風(fēng)格包容能力,Node.js得以輕松適應(yīng)服務(wù)器端開(kāi)發(fā)需求,并享受規(guī)模巨大的JS技術(shù)社區(qū)的有力支持。

此外,在集成領(lǐng)域,廠商本身亦越來(lái)越多地使用著JS及其相關(guān)產(chǎn)品。通過(guò)這種自給自足的對(duì)接方式,外加巨大的JS技能掌握者基礎(chǔ),Node.js表現(xiàn)出***的易用性特征。

另外,Node.js采取運(yùn)行時(shí)內(nèi)編譯的處理方式,意味著其代碼具備可讀性。再有,Node.js的運(yùn)行性能亦相當(dāng)出色。

2. Node.js擁有大量模塊

Node.js之所以如此流行,同樣歸功于廣闊的開(kāi)發(fā)者社區(qū)能夠生不逢時(shí)其代碼以實(shí)現(xiàn)模塊化功能,而后結(jié)合require()聲明進(jìn)行解釋。其基本格式為:

  1. var myName = require(‘external-module’); 

目前已經(jīng)發(fā)布的模塊數(shù)量極為驚人。這意味著大家能夠輕松找到大量適合自身功能需求的現(xiàn)成代碼,并通過(guò)數(shù)行粘合代碼將其引入自身項(xiàng)目。MySQL與MongoDB就是其中的典型范例。

各類廠商亦加入到了這一陣營(yíng)中來(lái)。目前眾多打包器與客戶端皆可通過(guò)Node模塊的方式交付至工具與應(yīng)用程序。Twitter的客戶端“SDK”就是其中一例。

下面我們來(lái)看如何輕松為Moogsoft AIOps系統(tǒng)的用戶發(fā)布一項(xiàng)示例模塊:

  1. var MoogEvent =require(‘node-moog’).MoogEvent; 
  2. myEvent =newMoogEvent(); 
  3. myEvent.description=’My new description’; 

模塊幫助廠商快速公布API及功能,并將其與本地Node.js代碼輕松對(duì)接。

3. JSON具備原生性質(zhì)

JSON,即Javascript Object Notation,是一種輕量級(jí)數(shù)據(jù)交換格式,其擁有眾多集成化優(yōu)勢(shì)。簡(jiǎn)單、易學(xué),且能夠適應(yīng)幾乎任何用例類型。

JSON具備人類可讀性,適用于快速部署與結(jié)果維護(hù)。另外,JSON比XML更易于解釋,并開(kāi)始逐漸取代XML成為客觀層面的數(shù)據(jù)交換格式。目前主流云供應(yīng)商幾乎普遍采用JSON作為默認(rèn)的有效載荷。

更值得一提的是,JSON原生于Node.js之內(nèi)。全部JavaScript值——除原語(yǔ)之外——皆屬于對(duì)象,且JS當(dāng)中各類復(fù)雜或分層對(duì)象皆可以JSON形式描述。這意味著我們僅需幾步即可處理JSON載荷。

示例載荷:

  1. {“title”:”example”,”contents”:”some stuff”} 

可因此處理為:

  1. var message = JSON.parse(payload); 
  2. console.log(message.title);  // Will output “example” 

這種對(duì)外部系統(tǒng)間交換數(shù)據(jù)以代碼內(nèi)方式進(jìn)行處理的能力,無(wú)疑能夠極大加快集成工作的執(zhí)行速度。

4. REST同樣原生存在

雖然REST在客觀層面講不算原生,但其實(shí)際效果卻幾乎與原生無(wú)異。

Node.js能夠原生支持HTTP/HTTPS,因此能夠在RESTful端點(diǎn)上輕松執(zhí)行GET或者POST。即使相關(guān)廠商未提供項(xiàng)目必需的js模塊,其至少能夠提供示例代碼以供用戶復(fù)制及粘貼。

另外,大家亦可利用多種Node模塊在隱藏復(fù)雜底層機(jī)制的同時(shí),實(shí)現(xiàn)全面的REST連接能力。(Node.js的HTTP/HTTPS API實(shí)際上相當(dāng)?shù)讓?,旨在確保不存在任何功能限制。)

為什么REST如此重要?正如JSON已經(jīng)在客觀上成為默認(rèn)數(shù)據(jù)交換格式,RESTful Web服務(wù)同樣快速成為最重要的Web友好協(xié)議——對(duì)于不少?gòu)S商而言,REST已然成為API的同義詞。

再有,Node.js的HTTP/HTTPS模塊還提供服務(wù)器功能,意味著Node.js應(yīng)用程序能夠監(jiān)聽(tīng)并響應(yīng)各類REST方法。

如果大家希望發(fā)揮應(yīng)用程序?qū)敵鯮EST的支持能力并提供復(fù)雜及豐富的Web服務(wù),則Express Node模塊值得一觀——其能夠快速輕松地完成Web服務(wù)器編寫。再有,REST及其機(jī)器數(shù)據(jù)表親WebHook亦適用于構(gòu)建系統(tǒng)間API以及各類命令與工具。

5. 打包

Node.js模塊易于發(fā)布及訪問(wèn)的特性成為其擁有極高人氣的另一個(gè)理由。

在Node.js內(nèi)置軟件包管理器NPM的幫助下,Node模塊可實(shí)現(xiàn)快速發(fā)布與訪問(wèn)。貢獻(xiàn)者創(chuàng)建的package.ison文件中包含各項(xiàng)細(xì)節(jié)與依賴性,并可被推送至NPM公共倉(cāng)庫(kù)中供各類訪問(wèn)者使用。

大家使用以下命令即可訪問(wèn)由我們編寫的模塊:

  1. $ npm install node-moog 

對(duì)于像我這樣的Unix老用戶來(lái)說(shuō),命令行同樣非常重要。而Node.js能夠輕松創(chuàng)建各類命令行工具,同時(shí)快速添加各類參數(shù)并由NPM實(shí)施安裝。

舉例來(lái)說(shuō),我們可以通過(guò)以下命令安裝一款名為myTool的CLI工具:

  1. $ npm install –g myTool 

此命令將對(duì)myTool進(jìn)行全局安裝。這意味著Node.js非常適合創(chuàng)建沙箱打包器、腳本、歸檔以及報(bào)告等方案。

除了之前提到的五項(xiàng)理由,隨著谷歌V8 JavaScript引擎的每一次迭代,Node.js性能亦將同步提升。雖然我同樣尊重Python,然而Node.js已經(jīng)成為我們目前的***選項(xiàng)——不知道大家意下如何?

原文標(biāo)題:5 reasons Node.js rules for complex integrations

原文作者:Richard Whitehead

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:王雪燕 來(lái)源: 51CTO
相關(guān)推薦

2022-12-14 14:40:27

Node.js開(kāi)發(fā)應(yīng)用程序

2022-01-07 08:00:00

Node.js開(kāi)發(fā)Web

2021-12-28 20:04:23

Node.js開(kāi)發(fā)JavaScript

2022-05-09 23:06:34

元宇宙虛擬現(xiàn)實(shí)營(yíng)銷策略

2017-04-10 13:28:32

Node.jsJavaScript

2024-03-18 10:15:00

HTTPNode.jsAPI

2014-03-07 13:43:32

Node.jsNode

2013-11-01 09:34:56

Node.js技術(shù)

2015-03-10 10:59:18

Node.js開(kāi)發(fā)指南基礎(chǔ)介紹

2021-12-01 00:05:03

Js應(yīng)用Ebpf

2020-07-15 08:06:04

Node.js框架開(kāi)發(fā)

2020-02-25 12:27:59

Node.jsWeb開(kāi)發(fā)前端

2014-08-01 14:35:33

Linux開(kāi)源軟件

2014-09-05 10:07:41

程序員

2020-05-29 15:33:28

Node.js框架JavaScript

2021-12-25 22:29:57

Node.js 微任務(wù)處理事件循環(huán)

2012-02-03 09:25:39

Node.js

2024-03-15 09:26:59

2020-07-31 13:35:34

Node.js應(yīng)用分析前端

2024-03-26 10:38:47

模塊CommonJSES
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)