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

被“嫌棄”的PHP:未來仍光明

開發(fā)
即使面臨各種新技術(shù)的挑戰(zhàn),PHP 的未來仍然光明。多年來,在 Web 開發(fā)社區(qū)內(nèi)部形成了一種厭惡 PHP 的氣氛。

現(xiàn)如今,厭惡 PHP 和贊美新技術(shù)(如 Node)幾乎成了一種奇想。特別是在年輕的社區(qū),PHP 被認(rèn)為是一只“恐龍”。

PHP 是一門偉大的編程語言。

它并不完美,有利有弊,但總的來說,如果你從事 Web 開發(fā)工作,你最好試著去理解它,而不是跟風(fēng)去厭惡它……

你甚至可以從中學(xué)到一些東西!

我們來看看 PHP 和 Node 之間的區(qū)別,這些區(qū)別讓很多人留在了 PHP 平臺,也讓其他人轉(zhuǎn)向了不同的編程語言!

社區(qū)

PHP 社區(qū)比 Node 社區(qū)大。

NPM/Node 社區(qū)也很大,但缺乏能夠真正維護(hù)好和做好 Node 包的人。

很多模塊被棄用或不再更新。最糟糕的是,大多數(shù)模塊依賴了其他大量的模塊,這意味著如果你使用的模塊依賴了一個包含漏洞的舊模塊,你可能不知情,或者需要花很多時間自己去更新所有的東西。

這很重要,因為不管一門編程語言或一個框架有多好,如果沒有人維護(hù),或者如果沒有關(guān)于它的討論、PR或者開源項目,它最終就會消亡。

PHP 生態(tài)系統(tǒng)為你提供了大量的庫:JWT 身份驗證、生成 Excel 電子表格和 PDF、緩存管理、ORM 框架……這些庫被廣泛使用,具有很好的安全性,且提供了良好的文檔。

Symfony 框架也提供了一些官方文檔,比如 LexikJWTAuthentication!

事實上,大約 80% 的 Web 應(yīng)用使用 PHP 開發(fā)。

框架

Symfony 和 Laravel 這兩個主要的 PHP 框架現(xiàn)在是 Web 的一個巨大組成部分。Laravel 在美國很受歡迎,Symfony 在歐洲很受歡迎,如果我們把 WordPress 去掉,這兩個框架占了 PHP 生態(tài)系統(tǒng)的 90% 以上。

這些框架比大多數(shù) Node 的框架都要老,并且比現(xiàn)在的 Node 框架擁有更廣泛的包和文檔生態(tài)系統(tǒng)。

在使用 Symfony 過程中遇到了問題?版本 3?版本 4?這都不是事!大量的 StackOverflow 帖子、Medium 文章、官方文檔可供你參考。

Symfony 和 Laravel 也提供了一些“基本的項目結(jié)構(gòu)”,你當(dāng)然可以不用它,你可以按照你想要的方式構(gòu)建你的項目,但這些基本模式通常適用于多種類型的應(yīng)用。

在大多數(shù)情況下,我們可以通過配置對它們進(jìn)行調(diào)整,以滿足我們的各種需求。由于這些框架已經(jīng)推出了好幾年,你可能想到的大多數(shù)有用的特性都已經(jīng)有了,因為在你之前的那些開發(fā)人員也有與你同樣的需求。

我們以 Express 為例,它是 Node 最著名的框架,主要用于編寫 API,它并沒有提供強制的結(jié)構(gòu)。這意味著一個沒有經(jīng)驗的開發(fā)人員更有可能構(gòu)建出一些不符合標(biāo)準(zhǔn)的東西,而 PHP 框架在這方面的風(fēng)險要小得多。

性能

Node 的速度很快,在某些情況下比 PHP 更快,但 PHP 也不是太糟糕。

PHP 8.1 借助 OPCache 和 JIT 編譯獲得更快的執(zhí)行速度。

Node 在速度方面利用了它的異步特性,但它是單線程的。PHP 利用了在多個線程上運行的優(yōu)勢,而且是同步的。

事實上,現(xiàn)在服務(wù)器的價格一般都不會很高,伸縮一個 Web 應(yīng)用從未像今天這樣容易。對于小型 Web 應(yīng)用來說,鑒于如今的計算能力,性能不再是一個值得花太多時間去爭論的點。

然而,對于大規(guī)模的應(yīng)用程序,價格可能是一個關(guān)注點。

這就是為什么把常用的 PHP-FPM/Nginx 棧換成 Swoole 會是一個不錯的選擇。

我曾經(jīng)看到過一些 PHP 應(yīng)用程序?qū)?Swoole 作為底層的 HTTP 服務(wù)器,在性能上擊敗了 Node!

此外,使用消息隊列是平衡應(yīng)用程序工作負(fù)載的一個很好的方法,這可以很容易地使用 PHP 和 Node 來實現(xiàn)。

易用性

雖然 Node/Express 經(jīng)常被用來編寫 API,并與使用 React/Angular/Vue 等框架構(gòu)建的前端通信,但大多數(shù) PHP 框架都采用了 MVC 模式。

MVC 即模型視圖控制器。一張圖片勝過長篇大論:如果你不了解 MVC,這里有一張圖可以幫你快速理解 MVC 模式。

圖片

構(gòu)建一個前后端分離的應(yīng)用程序通常比使用支持前后端技術(shù)棧的框架要慢。事實上,許多后端開發(fā)人員知道如何編寫出色的 HTML/CSS,但不熟悉 React 或其他框架的概念或語法。

結(jié)論

PHP 和 Node 各有優(yōu)點和缺點。

如果你需要穩(wěn)定性、可靠性和長期支持,我建議使用 PHP。

這些框架成熟且安全,在我看來是首選。

不過,對于需要高吞吐量和實時數(shù)據(jù)處理的 API 來說,Node 是一個不錯的選擇。另外,有一些項目不能用 PHP 來完成,比如 Discord 機器人(盡管可能可以用 PHP 來實現(xiàn),但已經(jīng)有一個官方的 JavaScript 庫……)

有時候,用另一種編程語言來開發(fā)應(yīng)用程序也是不錯的,我們可以從中發(fā)現(xiàn)一些新的概念或做事的方式,然后將它們應(yīng)用到其他編程語言中。

責(zé)任編輯:趙寧寧 來源: 前端之巔
相關(guān)推薦

2021-06-28 16:15:57

人工智能AI

2015-05-29 17:25:00

2011-08-05 09:11:56

2021-06-10 10:03:19

數(shù)據(jù)中心IT設(shè)備

2013-11-29 09:31:30

移動支付移動安全

2019-07-29 11:25:57

2011-02-18 08:42:02

QtAndroidFOSS

2021-10-08 06:42:59

程序員社會性缺陷

2013-03-14 10:31:07

FTTBVectoring技術(shù)

2012-03-01 10:50:11

Windows 8微軟

2011-04-14 09:29:41

Unix商標(biāo)Novell

2014-11-03 10:14:22

2014-09-29 10:09:41

算法數(shù)字化

2022-02-09 10:17:28

VR技術(shù)AR人工智能

2021-05-26 09:48:12

人工智能AI深度學(xué)習(xí)

2023-02-10 13:57:41

2020-08-13 17:15:16

經(jīng)濟(jì)學(xué)機器學(xué)習(xí)人工智能

2020-06-23 14:52:04

Python無用分號語言

2022-03-10 14:14:12

比特幣以太坊去中心化

2015-04-07 13:34:32

php語言發(fā)展趨勢
點贊
收藏

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