精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Web開發比較:Spring Boot與Express.js

新聞 前端
JavaScript的服務器端開發比Java更好嗎?它可能只取決于正在開發的應用程序。我現在可以聽到來自Java開發人員的發聲。

JavaScript的服務器端開發比Java更好嗎?它可能只取決于正在開發的應用程序。我現在可以聽到來自Java開發人員的發聲。

從Java開發人員的角度來看,使用Spring Boot生態系統和JavaScript與Express進行Web開發的簡單比較。

[[257762]]

本文的目標

這是一個不太技術性的比較(您可以在其他地方找到更具體的技術比較)。我只想概述當您是一名Java開發人員時,如何在Node.js中開發Web應用程序。

所以請記住,這篇文章充滿了個人意見。

在開始之前,我概述了一些前提:

1. 我是一名使用Java語言的軟件開發人員。我已經開發了基于Java的軟件大約15年了。

2. 我目前正在學習JavaScript開發(自2007年以來我一直在編寫前端JavaScript,但服務器端JavaScript已成為它自己的野獸)。

我想要比較什么

我想強調一下開發基于Node / Express堆棧的應用程序與基于Spring Boot的應用程序相比時所感受到的一些差異。

為什么我要比較這些

TL; DR:在完成一個簽約項目之后,我決定測試另一個生態系統來檢查它是否可以避免一些Java最受批評的點。

我***一個客戶是一家正在創建加密交換的公司(是的,在當今市場上很常見,但對于一家意大利公司來說并不常見)。他們讓我加入他們的團隊(三個不同的開發團隊)并幫助他們建立自己的平臺。我主要開發用于授權和身份驗證的微服務,核心事務處理,以及客戶的KYC微服務和不同微服務之間共享的代碼庫等其他東西。

這是一個大而有趣的項目。

但在與其他團隊和人員的討論中,我經常聽到對基于Java的Web開發的批評,轉而支持Python或Go。其他語言似乎沒有遭受Java的一些批評是:

  1. Java很冗長。
  2. Java中的一切都是界面混亂的。
  3. Java應用程序的內存消耗是壓倒性的。
  4. 磁盤空間消耗也可能是壓倒性的。
  5. 發展需要很多時間。

在編寫數百個基于Docker的微服務時應該考慮使用3.和4.我認為這個規模問題可能是無稽之談,因為如果你有數百個微服務運行,你的組織可能是相當有利可圖的,你可以買得起“昂貴” “實例支持內存貪婪的Java應用程序。

我必須誠實,有時我認為,在2019年,上述所有五點都是合理的批評,所以我想嘗試自籌資金項目來測試其他一些技術。

由于我需要進行Web開發而不一定是基于微服務的項目,在快速(非常快速地)看GO之后,我決定反對這種語言。我認為它是一種很棒的語言(從我讀到的內容)但它不適合我當前的項目。

所以我看了Python并開始使用Python,但我需要編寫一些JavaScript代碼,因為我將使用Puppeteer作為PricePaladin(一種價格跟蹤和監控工具)的基本組件, 并在審查了非常好的 語言比較之后 我決定使用Node.js.

對照

語言

如果您是Java開發人員,您會發現JavaScript并不難學。當你處理回調時,你肯定會凍結。你會發現Promises,并且在一天結束時,你將使用async-await語法糖,使一切恢復正常。

也就是說,JavaScript聽起來有點奇怪,但今天的JavaScript絕對沒問題(正如我之前所說,它不是2015年的JavaScript)。它簡單,功能強大且簡潔。

我留下關于動態打字的所有觀察結果,在我看來,這并不是什么大不了的事。

Node.js是單線程的

好的,對于Java開發人員來說,這是最“令人震驚”的事情之一。但片刻之后震驚消失了。您應該考慮一切都在一個線程上運行(在任何Java Web應用程序上,您有多個線程),并且回調函數(異步函數)在執行它們時排隊并執行,但所有代碼都在單個線程上運行(Node.js的速度和低內存消耗的關鍵)。從Java開發人員的角度來看,這意味著:

1. 不要運行CPU時間密集型代碼,否則在執行新的排隊功能之前,所有內容都將等待CPU空閑。

2. 如果出現問題并且Node.js崩潰,那么 一切都會 崩潰:在Web應用程序服務多個并發請求的情況下,所有請求都會崩潰。您沒有Java Web應用程序的隔離。

JS相當于Spring Boot Ecosystem:Express.js,Passport.js,Sequelize

如果我們僅限于與MVC Web應用程序部分的比較,Spring Boot絕對是非常棒的:輕巧,快速,完整且極其可配置。從這個角度來看,與Express.js提供的相比,Java開發人員并沒有任何重大缺陷。

Express.js也提供相同的潛力。根據個人品味,可以更好地理解或不是路由:不是在Java注釋級別定義,而是在路由文件級別定義。

更一般地說,Spring Boot表示將代碼組織到包(模型,服務,控制器)中的非常精確的方法,而在Express.js上下文中則沒有這樣的指導。盡管如此,可以重新應用類似的代碼結構,并且通常有一些項目的代碼結構與Spring Boot項目類似。

對于身份驗證部分,Spring Security是“***工具”......但如果用于某些特別復雜的情況,它也是“馴服的野獸”。JavaScript對應的是Passport.js,它非常強大,但結構和成熟度較低。然而,您感覺它能夠處理與Spring Security相同的情況和條件。在任何情況下,該框架也廣泛支持開發通用認證機制,例如JWT認證或其他常見的auth機制。Spring Security的成熟度尚未與Passport.js相匹配,但我認為Spring Security提供的80%的功能也是在Passport.js中實現的,有時候更簡單。

從我的觀點來看,Java中的ORM一直是Java應用程序的致命弱點。Java標準大致是Hibernate(盡管有各種各樣的選擇,無論多么廣泛,如Jooq和MyBatis),而對于與關系數據庫相關的JS世界,***的庫是Sequelize。

Hibernate與Sequelize

TL; DR:Hibernate仍然是最完整,最成熟,最通用的解決方案,但成本非常高!Sequelize可能會覆蓋90%的用例。

我不討厭Hibernate,但我肯定不喜歡它。它過于設計,緩慢而復雜。它就像一頭大象。但是,它可以對任何受支持的數據庫執行任何操作。相反,Sequelize小而簡單但無法管理所有用例。

我通過使用Sequelize發現的一些事情:

1. 你會有一個不那么難,但絕對不是那么容易的時間嘗試使用蛇案件的桌子的領域。您可以逐個手動指定它們(但這太過分了),或者您可以使用一些黑客將名稱轉換為蛇案例。這是一個簡單的解決方案,但它的缺點在于它會破壞遷移命令行工具。無論如何,用于引入命名約定定義的靈活性的所有請求都被丟棄并被忽略是不可接受的。

2. 它不完全支持復合鍵。正如這里明確指出的那樣 ,“雖然可以在Sequelize中創建復合主鍵,但Sequelize當前不支持復合外鍵,因此無法引用具有復合主鍵的模型/表。”從我的角度來看,這是不成熟的。

3. 由于時區解釋,你必須做一些很好的技巧來管理日期字段(這真是出乎意料)。

4. 將實例添加到兩個實體(例如Book和Author)之間相關的字段時,會立即保存實體。這并不是什么大不了的事,但表明Sequelize遠不如Hibernate復雜,后者有內部機制來決定何時刷新數據。

在Sequelize中也有一些我喜歡的東西,比如在運行時創建查詢的容易性(這是輕而易舉的,你可以在運行時編寫一個JSON對象并將其傳遞給查詢引擎)。嘗試在創建JPQL查詢時執行此操作,或者考慮使用某些條件進行復雜化的過程。老實說,在嘗試通過某些字段在運行時動態過濾查詢時使用Hibernate和Spring Data JPA是一件很痛苦的事情,而在Sequelize中這很容易(應該用任何框架/語言)。

Sequelize在Hibernate方面閃耀的另一個方面是,當你遇到一些困難的情況并且需要進行本機查詢時:它們都允許你執行本機查詢,但老實說,將結果轉換為模型更簡單Sequelize比Spring Data JPA / Hibernate。

而且我不是在談論啟動時間:介紹Hibernate會增加啟動時間,而Sequelize則非常直接。

作為***的考慮,很明顯:

1. Sequelize比Hibernate成熟得多,

2. Hibernate能夠做任何事情,而Sequelize僅覆蓋90%的用例。

3. Sequelize不那么抽象,而且更容易使用。

4. 這可能是一個很大的優勢,特別是當您擁有數據庫模式,不必適應遺留數據庫,并且您不打算有一天遷移數據庫引擎時(說實話,我只看到一個案例)數據庫遷移在我的生活中,當兩家銀行決定合并時,因此決定只保留一個IT系統并將廢棄的代碼重寫到另一個平臺。有數千個存儲過程需要重寫,所以代碼可移植性,在我看來,在談論ORM時,是一個無用的功能。)

***的考慮因素

我目前正在使用描述的JavaScript堆棧,目前我對它非常滿意。 PricePaladin(一種價格跟蹤和監控工具) 是使用上面提到的堆棧構建的,由于其內存占用少,目前已部署到廉價的服務器上。

使用JavaScript可以為您帶來更高級的簡單性。它是腳本和標準Web開發的理想選擇,但我不會將它用于復雜項目(小型專用和隔離的微服務除外),也不會將它用于數字應用程序或數字計數的應用程序(如Java和Java的加密交換)它的 BigDecimal類非常適合該范圍)。

最終,我在開發服務器端JavaScript時的一般感覺是,與基于Java的等效應用程序相比,一切都更簡單,更簡單,盡管我強烈認為缺乏穩定性和成熟度。用Java提供的庫(只有當特定項目需要某些庫時才缺乏實際,否則沒有區別)。

另一種看法是JavaScript開發周期快了約20%。通過這種方式,我的意思是,由于更復雜的代碼和過度設計的Java應用程序結構遵循經典指南和重建代碼所花費的時間,因此您在Java中開發相同功能的時間比在JavaScript中花費的時間多得多。

因此,在應用程序不提供計算或阻塞處理的情況下,并且關注經典的小型Web應用程序的開發,我幾乎肯定會選擇使用所描述的JavaScript堆棧進行開發,而在其他情況下,我會將應用程序基于從長遠來看,我認為Spring Boot堆棧提供了更強的可維護性。

責任編輯:張燕妮 來源: 頭條科技
相關推薦

2013-06-14 09:27:51

Express.jsJavaScript

2017-04-24 08:31:26

Node.jsExpress.jsHTTP

2024-09-11 23:00:41

2017-08-02 14:44:06

Spring Boot開發注解

2012-02-08 13:49:53

Node.js

2025-03-05 00:02:00

Next.jsExpress.jAPI 路由

2024-01-16 12:48:00

Express.jsNode.jsHTTP 服務器

2021-01-14 10:48:34

Docker CompNode.js開發

2025-09-29 01:25:00

GoGinWeb 服務

2011-01-19 15:51:41

PHPjavaweb

2021-06-15 09:00:00

Web技術開發

2018-05-04 15:27:22

Spring Boo Web開發

2021-03-07 09:12:54

GolangNode.js.后端

2024-01-05 07:38:55

2017-10-17 15:14:33

Spring BooThymeleafWeb

2023-11-02 18:01:24

SpringMVC配置

2024-05-09 09:01:03

2025-07-02 10:06:32

2023-03-27 15:07:27

PythonWeb 開發編程語言

2020-03-24 14:55:48

Spring Boot多模塊Java
點贊
收藏

51CTO技術棧公眾號

国产一区二区精品在线| 久久激情视频久久| 欧美精品无码一区二区三区| 久热av在线| 麻豆精品国产91久久久久久| 久久精品国产99国产精品澳门| aaaaa黄色片| 三妻四妾的电影电视剧在线观看| 欧美国产日本视频| 91久久偷偷做嫩草影院| 青青青国产在线| 99视频精品全国免费| 亚洲成人激情在线观看| 亚洲欧美久久久久| a'aaa级片在线观看| 国产网红主播福利一区二区| 亚洲永久免费观看| 中文字幕免费观看| 国产精品v一区二区三区| 亚洲人成在线观看网站高清| 九九九久久久久久久| 肉色欧美久久久久久久免费看| 亚洲欧美一区二区久久| 欧美主播一区二区三区美女 久久精品人| 在线免费av片| 先锋a资源在线看亚洲| 另类天堂视频在线观看| 久久只有这里有精品| 97se亚洲| 在线播放91灌醉迷j高跟美女| 久久精品国产精品亚洲色婷婷| 在线观看午夜av| 中国av一区二区三区| 久久99精品国产99久久| 亚洲成人中文字幕在线| 久久99久久精品欧美| 国产91色在线播放| 欧美三日本三级少妇99| 国产综合网站| 欧美精品制服第一页| 日韩在线一卡二卡| 日韩电影免费在线观看| 日韩成人久久久| 亚洲制服在线观看| 伊人亚洲精品| 欧美日韩成人高清| 天天操天天摸天天爽| 蜜桃视频www网站在线观看| 一区二区三区蜜桃| 青青视频免费在线观看| caopon在线免费视频| 中文字幕一区二区三区不卡| 亚洲高清在线播放| av在线第一页| 国产精品免费网站在线观看| 午夜一区二区三区| 92国产在线视频| 国产精品欧美一级免费| 亚洲高清资源综合久久精品| 9色在线观看| 国产精品高潮呻吟久久| 一区二区欧美日韩| 嫩草香蕉在线91一二三区| 中文一区二区在线观看| 亚洲一区二区三区在线观看视频| 99九九99九九九99九他书对| 久久精品www| 亚洲视频高清| 海角国产乱辈乱精品视频| 久久久久久蜜桃| 国语自产精品视频在线看8查询8| 久久久久久91| 国产黄色片免费看| 免费国产自线拍一欧美视频| 日本亚洲欧美成人| 中文字字幕在线中文乱码| 久久国内精品自在自线400部| 国产噜噜噜噜久久久久久久久| 国产一区二区三区在线观看| 国产精品 日产精品 欧美精品| 91黄色国产视频| 日韩中文字幕免费观看| 久久免费视频一区| 亚洲一二三区精品| 色呦呦视频在线观看| 精品免费在线观看| 男人插女人下面免费视频| 欧美极品在线| 亚洲白虎美女被爆操| 在线不卡av电影| 久久精品久久久| 91精品国产色综合久久不卡98口| 男人天堂视频在线| 精品一区二区三区免费毛片爱 | 免费视频成人| 精品国产网站在线观看| caopeng视频| 欧美91大片| 日本成人精品在线| 国产女18毛片多18精品| 99久久99久久综合| 一区二区三区欧美在线| 51精品在线| 欧美三级电影在线看| 最新日本中文字幕| 四虎成人av| 欧美在线免费看| 国产成人精品无码高潮| 国产欧美精品在线观看| 日韩极品视频在线观看 | 国产一区红桃视频| 无码国产精品高潮久久99| 中文字幕在线不卡一区| 国产原创中文在线观看| 国产美女视频一区二区| 亚洲人av在线影院| 麻豆视频在线观看| 毛片基地黄久久久久久天堂| 久久久久久久久久久久久9999| 老司机精品影院| 91久久精品网| 欧美xxxxx精品| 欧美日韩国产成人精品| 国产在线精品播放| 国产福利电影在线| 精品国产91久久久久久| 善良的小姨在线| 91视频久久| 国产精品久久久久久久av电影 | 国产精品久免费的黄网站| 国产盗摄女厕一区二区三区| 在线免费观看成人| 国产亚洲人成a在线v网站| 亚洲欧美一区二区三区久久 | 国产三级视频在线看| 天天色天天爱天天射综合| 日韩大尺度视频| 女生裸体视频一区二区三区| 国产欧美一区二区三区久久 | 国产成人一二片| 久久99国产综合精品女同| 在线观看国产黄| 中文乱码免费一区二区| www.日本一区| 欧美亚洲激情| 国产精品丝袜久久久久久不卡| 成人免费在线电影| 色综合激情久久| 精品人妻互换一区二区三区| 夜夜嗨一区二区| 久久精品国产综合精品| h片在线观看视频免费| 精品国产123| 国产无遮无挡120秒| k8久久久一区二区三区 | 免费看污久久久| 蜜臀国产一区| 亚洲人成免费电影| 中文字幕欧美人妻精品一区蜜臀| 国产女人18毛片水真多成人如厕| 欧美日韩在线成人| 欧美色爱综合| 国产欧美精品一区二区三区介绍| 久久亚洲天堂| 精品国产一区二区三区忘忧草 | 亚洲欧洲一区| 国产综合欧美在线看| 2020日本在线视频中文字幕| 亚洲精品色婷婷福利天堂| 无码人妻丰满熟妇精品区| 日本一区二区三区视频视频| 蜜臀一区二区三区精品免费视频 | 亚洲国产精品无码观看久久| 国产精品对白| 国产不卡一区二区在线播放| 91在线看片| 日韩一级免费观看| 中文字幕在线观看视频网站| 久久精品人人做| www激情五月| 亚洲国产三级| 亚洲人成网站在线观看播放| 国产亚洲高清在线观看| 国内精品久久久| 国产高清视频在线观看| 欧美一区二区在线不卡| 日本在线小视频| 国产农村妇女精品| 又黄又爽又色的视频| 99在线观看免费视频精品观看| 日韩欧美99| 在这里有精品| 国产精品黄色av| 欧美videosex性欧美黑吊| 国产视频精品xxxx| 91精品人妻一区二区三区果冻| 亚洲午夜一区二区三区| 能直接看的av| www.爱久久.com| 九九九九九伊人| 国产精品一页| 日本成人在线不卡| 九九亚洲视频| 国产精品久久亚洲7777| 日韩经典一区| 午夜精品久久久久久久男人的天堂| 国产露出视频在线观看| 日韩精品一区二区三区在线播放| 无码人妻av免费一区二区三区 | 制服丝袜av成人在线看| 久久国产免费观看| 中文字幕不卡一区| 中文在线永久免费观看| 精品一二三四在线| 日本成年人网址| 狠狠入ady亚洲精品| 亚洲欧美日韩另类精品一区二区三区| 美女av一区| 99高清视频有精品视频| 黑人一区二区三区| 91成人在线观看国产| 久久五月精品中文字幕| 日韩视频―中文字幕| 国产黄色免费在线观看| 国产视频精品免费播放| 老牛影视av牛牛影视av| 欧美一二区视频| 97超碰人人模人人人爽人人爱| 日本精品免费观看高清观看| 天天操天天摸天天干| 亚洲午夜免费电影| 久久久久久天堂| 99在线热播精品免费| jjzzjjzz欧美69巨大| 高清在线观看日韩| 日本少妇xxx| 国产一区二区精品久久| 超碰人人草人人| 久久精品国产精品亚洲综合| 一级在线免费视频| 三级成人在线视频| 欧美极品欧美精品欧美图片| 国产欧美日韩一区二区三区在线| 高清欧美精品xxxxx| 激情久久久久久久| 韩日视频在线观看| 国产精品v亚洲精品v日韩精品| 亚洲三级 欧美三级| 亚洲 高清 成人 动漫| 国产精品精品| 中文字幕人成一区| 久久久五月天| 伊人久久在线观看| 国产一区亚洲| 国产高清av在线播放| 国产精品红桃| 精品无码国模私拍视频| 国产欧美一区二区色老头| 欧美大片在线播放| 欧美亚洲视频| 亚洲黄色小视频在线观看| 美国十次了思思久久精品导航| 在线观看岛国av| 国产乱码精品1区2区3区| 性xxxxxxxxx| av福利精品导航| 九色porny自拍视频| 国产女人aaa级久久久级| 国产又粗又猛又爽又黄的视频小说| 国产精品白丝在线| 青草草在线视频| 亚洲国产综合视频在线观看| 五月激情六月丁香| 欧日韩精品视频| 国产三级伦理片| 亚洲第一页中文字幕| 欧美女优在线观看| 丝袜一区二区三区| 在线免费观看a视频| 91精品国产九九九久久久亚洲| 三上悠亚亚洲一区| 国产在线视频欧美| 久本草在线中文字幕亚洲| 欧美在线3区| 亚洲精品tv久久久久久久久久| 欧美在线一区视频| 日韩电影一区二区三区| 又黄又爽又色的视频| 91美女片黄在线观看91美女| 在线视频这里只有精品| 亚洲二区在线观看| 中文字幕+乱码+中文字幕明步| 欧美变态口味重另类| 国产女人在线视频| 久久99视频免费| 欧美大胆性生话| 波多野结衣精品久久| 精品国产123区| 国产精品自拍合集| 日本麻豆一区二区三区视频| 亚洲成人激情小说| 国产网红主播福利一区二区| 青青草手机在线视频| 欧美亚洲丝袜传媒另类| 日韩中文字幕观看| 日韩一区视频在线| 少妇视频一区| 成人午夜电影免费在线观看| 欧美极品中文字幕| 欧美精品卡一卡二| 精品一区二区av| 四虎国产精品成人免费入口| 亚洲综合色婷婷| 亚洲无码久久久久| 亚洲欧美变态国产另类| 国产黄色大片在线观看| 国产精品综合久久久| 亚洲品质自拍| 69sex久久精品国产麻豆| 久久99国产乱子伦精品免费| 97超碰在线资源| 午夜av区久久| 亚洲黄色一级大片| 日韩小视频网址| 久久久久伊人| 日本一区视频在线观看| 国产精品毛片在线看| 最好看的中文字幕| 亚洲男人都懂的| 一级全黄少妇性色生活片| 在线观看国产欧美| sis001欧美| 久久久久久精| 亚洲一区二区毛片| 亚洲男女在线观看| 亚洲国产一区二区在线播放| a级片在线视频| 日韩中文字幕国产精品| 中韩乱幕日产无线码一区| 欧美日韩精品久久久免费观看| 国产偷自视频区视频一区二区| 午夜不卡久久精品无码免费| 亚洲国产精品人人做人人爽| 亚洲av无码乱码国产精品久久 | 高清国产在线一区| 亚洲精品国产偷自在线观看| 性欧美在线视频| 亚洲图片激情小说| 国产精品伦一区二区三区| 色悠悠久久久久| 欧美成人高清视频在线观看| 亚洲精品影院| 久久国产剧场电影| 亚洲精品久久久久久国| 91精品麻豆日日躁夜夜躁| a在线免费观看| 亚洲最大av在线| 今天的高清视频免费播放成人| 性xxxxxxxxx| 亚洲成av人片一区二区三区| 女人18毛片水真多18精品| 欧美一级视频一区二区| 国产精品一区二区av交换| 一区二区三区韩国| 国产精品电影一区二区三区| 国产乱码一区二区| 欧美黑人一级爽快片淫片高清| 岛国av一区| 亚洲色成人一区二区三区小说| 久久亚洲精品国产精品紫薇| 这里只有精品国产| 久久亚洲精品小早川怜子66| y111111国产精品久久久| 啊啊啊一区二区| 国产精品人妖ts系列视频| 国产免费视频一区二区三区| 欧美第一黄网免费网站| 天堂日韩电影| 另类小说第一页| 一区二区三区不卡在线观看 | 精品中文字幕久久久久久| 台湾佬中文娱乐久久久| 一区二区三区视频| 国产a区久久久| 一级做a爰片久久毛片| 久久久国产成人精品| 国产精品15p| 2025韩国理伦片在线观看| 一区二区三区色| 理论在线观看| 97av影视网在线观看| 性8sex亚洲区入口| 天天爽天天爽天天爽| 亚洲第一级黄色片| 成人国产精选| 99在线免费视频观看| 欧美高清一级片在线观看| 亚洲爆乳无码一区二区三区| 国产精品久久久久久久久久久不卡 | 欧美一区二区三区免费|