在現(xiàn)在的項(xiàng)目開(kāi)發(fā)中,任何一個(gè)大型項(xiàng)目絕對(duì)不是簡(jiǎn)簡(jiǎn)單單的采用一個(gè)種語(yǔ)言和一種框架,因?yàn)槊糠N語(yǔ)言和框架各有優(yōu)勢(shì),與其死守一個(gè),不與取各家之所長(zhǎng),依次得到一個(gè)高性能、搞擴(kuò)展的產(chǎn)品。
對(duì)于一個(gè).NET開(kāi)發(fā)者,尤其是主要從事Web開(kāi)發(fā)的.NET程序員,個(gè)人覺(jué)得有必要學(xué)習(xí)一門(mén)性能優(yōu)越的Web平臺(tái)開(kāi)發(fā)語(yǔ)言。一個(gè)開(kāi)發(fā)者不能簡(jiǎn)簡(jiǎn)單單的只學(xué)習(xí)一門(mén)語(yǔ)言,思維應(yīng)該開(kāi)闊,從各個(gè)方面去看待同樣的一個(gè)問(wèn)題,這樣或許會(huì)得到另一番效果和見(jiàn)解,個(gè)人認(rèn)為應(yīng)該學(xué)習(xí)一下其他的語(yǔ)言,這樣有利于我們對(duì)比語(yǔ)言的優(yōu)勢(shì)和缺點(diǎn),例如java、nodejs、python等等。對(duì)于Nodejs這個(gè)JavaScript平臺(tái),個(gè)人覺(jué)得.NET程序員有必要學(xué)習(xí)一下,因?yàn)閷W(xué)習(xí)NodeJS有助于我們構(gòu)建一個(gè)高性能的Web平臺(tái)。
NodeJS具有事件驅(qū)動(dòng)、非阻塞I/O等特點(diǎn),可以很好的處理I/O操作。Node面向網(wǎng)絡(luò)且擅長(zhǎng)并行I/O,能夠有效地組織起更多的硬件資源。
這篇博客就來(lái)簡(jiǎn)單的介紹一下NodeJS的異步I/O特點(diǎn)。
一.NodeJS概述:
要學(xué)習(xí)一個(gè)語(yǔ)言或者平臺(tái),我們首先應(yīng)該知道其定義,依據(jù)定義來(lái)擴(kuò)展我們的學(xué)習(xí)思路。Node的定義:”一個(gè)大獎(jiǎng)在Chrome JavaScript運(yùn)行時(shí)上的平臺(tái),用于構(gòu)建高速、可伸縮的網(wǎng)絡(luò)程序。NodeJS作為一個(gè)異步事件驅(qū)動(dòng)的JavaScript運(yùn)行時(shí),旨在構(gòu)建可擴(kuò)展的網(wǎng)絡(luò)應(yīng)用程序。“有關(guān)nodejs的背景介紹和安裝方法,這里就沒(méi)有必要介紹了,因?yàn)閷?duì)于nodejs的安裝是比較簡(jiǎn)單,所以在這里贅述就有些顯得浪費(fèi)時(shí)間。
學(xué)習(xí)完Node的定義特點(diǎn),可能很多人都會(huì)好奇這個(gè)平臺(tái)的適用場(chǎng)景是什么,以便在實(shí)際的項(xiàng)目開(kāi)發(fā)中應(yīng)用,不然學(xué)習(xí)這個(gè)就沒(méi)有意義。主要的應(yīng)用場(chǎng)景:前后端編程語(yǔ)言環(huán)境統(tǒng)一;高性能I/O用于實(shí)時(shí)應(yīng)用;并行I/O使得使用者可以更高效地利用分布式環(huán)境;并行I/O有效利用穩(wěn)定接口提升Web渲染能力;云平臺(tái)的支持;游戲開(kāi)發(fā)(這可能是很多開(kāi)發(fā)者在意的,畢竟現(xiàn)在的游戲開(kāi)發(fā)火熱程度已經(jīng)到了無(wú)以附加的地步);工具類(lèi)應(yīng)用,與較多的工具方法,使得開(kāi)發(fā)效率大大的提升。