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

架構(gòu)選型之Nodejs與Java

開發(fā) 后端
身邊越來越多的同事談?wù)揘odejs,談其異步IO、事件回調(diào)、前后臺統(tǒng)一一門語言,創(chuàng)業(yè)的朋友的第一個創(chuàng)業(yè)項(xiàng)目也選擇了Nodejs,期望能夠使用一種語言節(jié)省成本快速完成需求開發(fā)。

 前言:

身邊越來越多的同事談?wù)揘odejs,談其異步IO、事件回調(diào)、前后臺統(tǒng)一一門語言,創(chuàng)業(yè)的朋友的第一個創(chuàng)業(yè)項(xiàng)目也選擇了Nodejs,期望能夠使用一種語言節(jié)省成本快速完成需求開發(fā)。與其他項(xiàng)目組的同事聊項(xiàng)目選型Java時被他們嘲笑了一把,怎么這么不與時俱進(jìn)怎么還在用Java。而且發(fā)現(xiàn),越來越多的前端同事通過Nodejs輕松上手后端功能開發(fā),作為后端開發(fā)工程師倍感壓力。

[[275354]]

借新項(xiàng)目的機(jī)會系統(tǒng)了解了下Nodejs的知識體系,本文對了解到的Nodejs技術(shù)作了總結(jié),同時將其與Java的相關(guān)技術(shù)進(jìn)行了總結(jié)對比,為其他考慮兩種語言選型的架構(gòu)師提供選型的決策依據(jù)。為了避免爭議,本文避免對選型語言的推薦,也不對未來的發(fā)展趨勢做出預(yù)測。

語言背景分析:

簡單對兩門語言進(jìn)行“拼爹”對比,發(fā)現(xiàn)有技術(shù)深度的事情還是博士比較擅長,計(jì)算機(jī)專業(yè)的技術(shù)又未必是計(jì)算機(jī)專業(yè)的人貢獻(xiàn):

架構(gòu)選型之Nodejs與Java

語言及SDK分析:

Nodejs選擇javascript語法導(dǎo)致了其靈活、面向過程、單進(jìn)程單線程執(zhí)行的基本特性。然而得意其語言的靈活性,一些面向?qū)ο蟮奶卣饕部梢酝ㄟ^邏輯代碼實(shí)現(xiàn),但受阻于ECMAScript的發(fā)展速度,整體上Nodejs向企業(yè)級應(yīng)用語法轉(zhuǎn)型還暫時較慢。Nodejs主打的異步IO事件回調(diào)使其更適合服務(wù)器的編程,其單進(jìn)程單線程的特質(zhì)使得開發(fā)變得簡單。得意與社區(qū)的活躍語言處于高速發(fā)展、SDK不斷地發(fā)展穩(wěn)定豐富。

相比之下,Java是面向?qū)ο蟮木邆淞嗣嫦驅(qū)ο蟮娜刻卣?,?jīng)歷了20年的發(fā)展沉淀越發(fā)的強(qiáng)大、穩(wěn)健。與Nodejs相比Java是個在各個領(lǐng)域作精作深的技術(shù)巨人,然而也正因如此,學(xué)習(xí)Java的成本要比Nodejs高很大一個臺階,每一個小的技術(shù)方面都能找到很厚的一本書來。面對異步IO事件回調(diào)的新技術(shù)Java也在其新的SDK中提供支持與時俱進(jìn),相關(guān)Java的開源項(xiàng)目也及時跟進(jìn)。

架構(gòu)選型之Nodejs與Java

三方開源框架選型:

語言選型后面即框架選型,好的框架可以去除很多不必要的重復(fù)工作使項(xiàng)目輕松獲取強(qiáng)大的功能。當(dāng)然三方開源框架的引入也帶來的相應(yīng)的學(xué)習(xí)成本,同樣的,Nodejs框架由于發(fā)展時間相對較短學(xué)習(xí)成本相對較低,開發(fā)人員更容易了解到更多底層的實(shí)現(xiàn)源碼,但相對的部分框架容易出現(xiàn)穩(wěn)定性兼容性問題,加之NPM開發(fā)人員水平不一而又沒有很好的審核機(jī)制,選擇一些模塊(尤其是C/C++模塊)時需要慎重。Java三方開源框架大都已被大量企業(yè)大量使用、成熟穩(wěn)定,提供強(qiáng)大能力的同時作了很好的封裝分層,開發(fā)人員付出較高的學(xué)習(xí)成本后更多的是“傻瓜“式的使用。就WEB開發(fā)體系而言,兩者都可以找到很多可服用引入的開源框架。

架構(gòu)選型之Nodejs與Java

產(chǎn)品化分析:

就產(chǎn)品化而言,Nodejs雖然在各個方面都有建設(shè),但相對Java還有很多需要繼續(xù)完善發(fā)展的地方,如系統(tǒng)監(jiān)控和性能分析領(lǐng)域還不如Java體系那么完善,受限于單進(jìn)程單線程模式穩(wěn)定性部署方面還不如Java那么靈活,靈活的腳本語言加上Nodejs發(fā)展時間相對較短使得系統(tǒng)的安全性還需要經(jīng)受更多的考驗(yàn)。同時,前后端代碼都可以使用到j(luò)s并同時保存在一個開發(fā)分支時,單純的依賴目錄去區(qū)分前后端代碼,容易造成前后端代碼的混淆,相對不夠清晰。但相信爭議和問題都是暫時的,高速發(fā)展的Nodejs會逐步完善完美。

架構(gòu)選型之Nodejs與Java

執(zhí)行引擎分析:

在瀏覽器方面V8引擎大名鼎鼎贊不絕口,這也是Nodejs選型V8這個最快的Javascript執(zhí)行引擎的原因。然而另一方面,V8引擎專門針對瀏覽器的設(shè)計(jì)也嚴(yán)重限制了Nodejs在服務(wù)器領(lǐng)域的大有作為,仿佛帶著手鏈腳鏈在高速奔跑。因V8引擎的創(chuàng)始人和技術(shù)都是來自Java虛擬機(jī),使用了部分Java虛擬機(jī)技術(shù)適配瀏覽器業(yè)務(wù)實(shí)現(xiàn),所有相比之下Java虛擬機(jī)更加的成熟完善,也必然相對的復(fù)雜沉重。

架構(gòu)選型之Nodejs與Java

其他一些對比:

其他一些簡單對比如下:

架構(gòu)選型之Nodejs與Java

結(jié)束:

Nodejs的異步IO、事件回調(diào)雖是殺手锏能力,但其他程序開發(fā)語言也都有相應(yīng)的跟進(jìn)支持,但Node成功將前后端統(tǒng)一一門語言開發(fā),這絕對是無人能及,吸引了大批的開發(fā)者加入。得益但又受限于V8引擎,其發(fā)展還帶著包袱,但Nodejs還年輕還處在高速發(fā)展中,相信隨著IO.js與Node.js合并、越來越多的開發(fā)者進(jìn)行共建,Node會越來越穩(wěn)定成熟。

相比之下Java是編程領(lǐng)域的巨人,20年的發(fā)展,越發(fā)的成熟穩(wěn)定,形成完善的體系完善的生態(tài),Android的流程再次將這門語言推到了巔峰,架構(gòu)選型永遠(yuǎn)是個重點(diǎn)選項(xiàng)。

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2023-07-06 00:41:03

SQLNoSQL數(shù)據(jù)庫

2016-11-15 14:18:09

神策分析大數(shù)據(jù)數(shù)據(jù)分析

2023-08-27 16:13:50

架構(gòu)微服務(wù)器

2021-01-18 05:20:52

數(shù)倉hive架構(gòu)

2017-06-22 11:03:58

大數(shù)據(jù)大數(shù)據(jù)平臺架構(gòu)技術(shù)

2022-06-14 08:02:35

關(guān)系模型數(shù)據(jù)模型文檔模型

2012-02-13 16:00:35

內(nèi)網(wǎng)安全技術(shù)選型安全產(chǎn)品

2024-06-07 13:42:41

2020-09-15 09:55:13

架構(gòu)師架構(gòu)選型

2023-09-15 14:37:55

2022-05-23 10:02:39

軟件選型

2019-12-12 10:58:37

Docker容器引擎

2021-01-18 05:11:14

通信Nodejs進(jìn)程

2016-10-13 10:49:57

云平臺選型信息安全

2013-04-18 11:01:10

手機(jī)游戲手機(jī)游戲引擎技術(shù)選型

2022-11-22 08:42:38

數(shù)據(jù)庫

2020-01-15 07:43:45

架構(gòu)redis開發(fā)

2022-08-19 14:06:56

前端架構(gòu)技術(shù)

2024-07-25 08:52:13

2023-11-13 08:37:33

消息中間件分布式架構(gòu)
點(diǎn)贊
收藏

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