如何選擇合適的后端
前沿技術(shù)?/ 最新技術(shù)
由于微信公眾號(hào)近期改變了推送規(guī)則,如果你想第一時(shí)間看到我的文章就置頂+星標(biāo)公眾號(hào)。

Web技術(shù)發(fā)展如此之快,以至于我們現(xiàn)在擁有大量的現(xiàn)代工具和框架。無(wú)論是前端,后端還是數(shù)據(jù)庫(kù)。許多開(kāi)發(fā)人員都有一個(gè)大問(wèn)題:我應(yīng)該從哪個(gè)技術(shù)堆棧開(kāi)始?
有時(shí)我們會(huì)選擇我們之前用過(guò)的語(yǔ)言或我們熟悉的語(yǔ)言。作為人類(lèi)的天性,我們總是堅(jiān)持自己舒適的方式,這就是事情開(kāi)始出錯(cuò)的地方。這可能包括選擇一個(gè)過(guò)度的框架,或者更糟糕的是,我們?cè)陧?xiàng)目過(guò)程中從現(xiàn)有的技術(shù)堆棧轉(zhuǎn)向,最終用不同的語(yǔ)言重寫(xiě)代碼。
因此,在開(kāi)始新項(xiàng)目之前選擇正確的技術(shù)棧非常重要。通過(guò)這篇文章,我將幫助你進(jìn)行思考過(guò)程,以便你可以選擇最佳的技術(shù)棧。
1. 什么是后端?
簡(jiǎn)而言之,后端是在服務(wù)器端運(yùn)行的代碼,負(fù)責(zé)處理和管理存儲(chǔ),數(shù)據(jù)庫(kù)和其他資源。后端也稱(chēng)為軟件的數(shù)據(jù)訪問(wèn)層。
2. Node.js
Node.js使用異步編程!意思是,它是非阻塞的。換句話說(shuō),它不會(huì)等待資源完成作業(yè)。它立即準(zhǔn)備好接受下一個(gè)請(qǐng)求,并在完成后給出回調(diào)。Node.js像火箭一樣運(yùn)行,并且具有很高的可擴(kuò)展性。
何時(shí)使用 Node.js?
當(dāng)你的應(yīng)用程序是高度事件驅(qū)動(dòng)的并執(zhí)行大量 I/O 操作時(shí)。此外,當(dāng)你必須從后端本身進(jìn)行各種API調(diào)用時(shí)。在此方案中,你可以利用其非阻塞功能。
何時(shí)不用 Node.js?
當(dāng)你的算法或作業(yè)占用大量 CPU 周期時(shí)。由于 Node.js 像客戶端 js 一樣在單個(gè)線程上運(yùn)行,因此你的應(yīng)用程序?qū)τ?CPU 密集型作業(yè)的效率非常低。
3. Java — Spring Boot
Spring是一個(gè)功能強(qiáng)大,輕量級(jí)且最受歡迎的框架,它使Java使用起來(lái)更快,更容易,更安全。Spring Boot 可幫助你構(gòu)建用于生產(chǎn)環(huán)境的基于Spring 的應(yīng)用程序。它滿足了每個(gè)人對(duì)現(xiàn)代Web應(yīng)用程序的80%的需求。它對(duì)于以最小的工作量創(chuàng)建獨(dú)立的生產(chǎn)級(jí)應(yīng)用程序非常有用。
何時(shí)使用 Spring Boot?
當(dāng)你的主要關(guān)注點(diǎn)是安全性時(shí),也許你想編寫(xiě)銀行或金融應(yīng)用程序。如果你不能在安全性方面妥協(xié),Spring Boot將是最佳選擇。由于 Java 支持開(kāi)箱即用的多線程處理,因此它成為構(gòu)建復(fù)雜且高度并發(fā)的 Web 應(yīng)用程序的絕佳選擇。
什么時(shí)候不用Spring Boot?
雖然Spring Boot架沒(méi)有限制,它可以滿足你的所有需求。但是有時(shí)不需要大量計(jì)算的瑣碎應(yīng)用程序,Spring Boot作為后端將是一個(gè)大殺器。對(duì)Spring Boot說(shuō)不的唯一一點(diǎn)是它有點(diǎn)復(fù)雜,需要大量的專(zhuān)業(yè)知識(shí)。
4.PHP — Laravel
PHP是一位老朋友,他讓我認(rèn)識(shí)了Web開(kāi)發(fā)。
Laravel是一個(gè)開(kāi)源的PHP框架。它遵循 MVC(模型-視圖-控制器)體系結(jié)構(gòu)。Laravel使生活更輕松,因?yàn)樗哂性S多開(kāi)發(fā)人員友好的功能,其中之一是查詢生成器或ORM(對(duì)象關(guān)系映射)。在Laravel之前,PHP似乎正在消亡,但現(xiàn)在Laravel是PHP最有競(jìng)爭(zhēng)力的框架之一。
何時(shí)使用Laravel?
當(dāng)上市時(shí)間是關(guān)鍵時(shí),Laravel就是最佳選擇。因?yàn)樗哂性S多突出的功能,與其他框架相比,使Web開(kāi)發(fā)非???。此外,Laravel可以托管在共享主機(jī)上,因此使其成為所有主機(jī)中最便宜的,因此當(dāng)時(shí)間和成本是關(guān)鍵時(shí),你應(yīng)該使用Laravel。
什么時(shí)候不用Laravel?
與Spring和Node相比,PHP并不被認(rèn)為是安全的.js,但是,Laravel可以防止一些基本攻擊,例如SQL注入和跨站點(diǎn)腳本攻擊,并為其添加了額外的安全層。但是,對(duì)于必須安全性的應(yīng)用程序,從不建議使用PHP。
5. Python — Django
Django是一個(gè)快速,安全和可擴(kuò)展的高級(jí)Python Web框架。Django鼓勵(lì)快速和干凈的應(yīng)用程序開(kāi)發(fā)。它處理了Web開(kāi)發(fā)的大部分麻煩,因此您可以專(zhuān)注于編寫(xiě)應(yīng)用程序,而無(wú)需重新發(fā)明輪子。
什么時(shí)候使用Django?
由于Django基于python,它支持強(qiáng)大的機(jī)器學(xué)習(xí)庫(kù),如PyTorch,NumPy等。其計(jì)算和統(tǒng)計(jì)功能使其成為機(jī)器學(xué)習(xí)應(yīng)用的理想平臺(tái)。
什么時(shí)候不用Django?
Django不適合只有少數(shù)功能和要求的小型項(xiàng)目。因?yàn)樗且粋€(gè)“包含電池”的框架,所以它有很多小項(xiàng)目不需要的樣板代碼,因此會(huì)消耗不必要的服務(wù)器處理時(shí)間和帶寬。


