為什麼大型網站都用php,網站使用的人太多

本文目錄一覽:

為什麼大型網站前端使用 PHP 後台邏輯用 Java

php和java在開源社區的活躍度嚴重超過了其他的語言,使用人數也都是相當之多;活躍的開發工程師們能夠給我幫助,且這倆都能很好的跨平台,不用花費大量的人力物力去維護。php靈活,好學,上手快,容易修改,容易發布,關鍵是熱部署。

Java的優點是穩定可靠、運行效率高(尤其是JIT的出現之後差距更大了)、不容易犯錯(強類型、預編譯、必須攔截異常等等),缺點是開發和發布的效率相對較低。儘管優秀的工程師能在一定程度上改變以上的問題,但通常而言,哪能到處都是高手多如狗的夢之隊?

從MVC的層次結構上說,在一般網站項目的開發周期中,需求變更最頻繁、調整最多的是View,其次是Controller,最後是Model。這非常好理解,沒事幹誰天天改數據結構?每次版本升級控制結構都要改的啦,或多或少而已。

再次是兩者之間的通信,目前RPC技術已經足夠成熟,無論是Web Service/Hessian/RESTful API都能夠讓開發人員專註在功能開發上,而不需要過多的考慮異構平台的差異和通訊的細節。這也就意味著在大公司里同時應用兩種語言的方案並不會引入過多的複雜度和工作量。當然,文檔量的下限倒是因此被拔高了不少,但事實上大部分團隊對此其實都是喜聞樂見的:別每天說文檔重要但沒空了,你不寫其他同事怎麼配合?

靠近用戶的前端,使用PHP能夠更快的完成前端頻繁而瑣碎的更新,自如的應對各種需求的變化。頁面的結構調整、用戶輸入內容的基本驗證、僅只和用戶交互有關的簡單邏輯等都很適合使用PHP來開發,甚至可以通過類似Smarty等模板技術將其頁面的變動遷移到前端團隊。而基本的業務邏輯和數據的更新採用Java開發,可以有效的提高復用度、提升性能和吞吐能力、規避安全問題等。而開發效率稍有降低換來的是可維護性的提升,發布速度慢就更不是問題了,因為通常對於基礎業務邏輯的調整往往都是整體修改,並層層測試確認才能發布的。

所以,大型網站前端採用PHP後端採用Java,既好招人又好維護、系統穩定還性能高、連安全性都大大增加。代碼復用、文檔完備度居然也都改善了。讓你在以上這些好處觸手可及時,對架構師知識譜系在廣度上要求更高一些這事根本就不是個問題。

為什麼不是僅用PHP或是僅用Java?

其實也有很多公司為了保證團隊組織不至於過度複雜,會更傾向於採用單一語言,尤其是中小公司。

單一方案其實一樣可以做良好的隔離,PHP同樣可以提供Service,而性能問題其實很多時候是演算法和架構的問題而不是語言差異的問題。如Velocity或JSTL等也是很優秀的隔離方案。

但這些方案在高壓力下會暴露出很多問題而體現雙語言的優勢,這些在上面其實都提到,詳細說明一些很難得到改變的點:

1. PHP由於其動態腳本語言的特性,包括類、函數、常量在內都需要在每次請求周期中重複執行後才能建立運行環境;為了保證解析速度而犧牲編譯質量;應用了FastCGI但僅僅只是復用進程處理請求減少fork成本而不是像其他語言,初始化完畢後通過FastCGI的介面獲得數據並以對應介面返回數據等幾個原因,基本上已經不可能在性能上追回當初更爛現在開著JIT牌跑車的Java了。

2. 在PHP里是如此的容易犯錯而難以發現,即使你用實質上出自官方的Zend Studio,也無法改變一個事實:要保證你的程序高質量無大錯,得要有充足的經驗、足夠的嚴謹、以及——負責任的QA。淘寶的黃裳就曾經拿IDE這事開過玩笑。而玩笑背後的那個原因「缺乏中間件」最近幾年有不少的改善,主要是不少中間件的支持變得更廣泛了從而讓PHP得益,但發展的根源其實還是在C和Java社區。性能和易犯錯則是語言特性造成的技術難點,也是用來換取靈活、快捷的必要代價,很難去指望有根本的改善。

3. Java的世界裡也有JSTL、Velocity和Freemaker等,但和PHP靈活而強大的動態能力、豐富的函數和類庫、輕鬆的學習成本、多到令人髮指的文檔相比,簡直就是渣,就是渣啊!JSTL改完了要重啟Context啊有木有?Velocity不關緩存也要重啟啊有木有?Velocity開緩存性能低下啊有木有?即使這些都不管,調整下某個數據校驗規則要改Action也要重啟有木有?

4006869068 為什麼大型網站都是用PHP語言編寫?

個人理解主要原因如下:

(1)PHP全開源,開發網站有完整的組合配套.LAMP是很好的低成本解決方案.

(2)目前PHP在全球開發語言中排在前5名,使用者眾多,人才容易招聘.

(3)除了apache,開源的ngnix等高性web伺服器大大提升了PHP的應用.

(4)已經比較成熟,而且效率很高.

為什麼80%的網站都用PHP寫,PHP實用性有多強

簡單的說php的流行和實用性有關係,但不是絕對關係,導致大部分網站使用php的主要原因大概有以下幾個點。

1.php所需要的環境容易搭建,相對於java web,python等,php的環境搭建比較簡單,甚至因為互聯網上出現許多集成環境包,環境搭建已經是傻瓜式了。而其它的語言,一般都比較複雜,個人建站者,技術能力不足的時候,根本就不會搭建環境。

2.php開發起來相對容易,開發過程不需要像jsp之類的,需要引入大量外部擴展,這樣只需要基礎環境就可以愉快的開發了,而且難度也並不高,所以學php的就比較多。

3.按上面的說法,asp也符合需要的要求,但是實際上asp的使用量卻不如php,其實首先在於asp不夠安全,具體我也沒研究,但是總是聽人在說。其次就是asp跨平台很麻煩,而php可以隨意使用在大部分通用系統,這也算是原因的一種。

4.網上大量php的開源項目的出現,也是導致php流行的原因之一,比如各種cms,各種開發框架,大多數免費的。完全促進了php網站的誕生數量,因為有這些,就算你完全不懂編程也可以搭建自己的網站。而asp,jsp之類的,雖然也有開源項目,但是數量上遠遠不如php,而且主要敗在第一條。

最後,php其實實用性沒有想像的強,它只能作為web開發語言,而java,python卻沒有這方面的限制。另外,正因為php網站使用量巨大,也導致越來越多的的黑客學習針對php入侵,這也是個很尷尬的問題。所以簡單的說,php能夠眾多人用的根本原因,是方便,好學,容易玩得轉,這多虧了大部分辛苦鑽研的開發者,而並不是實用。

因為php能做的,很多編程語言都可以,甚至比它更厲害。

為什麼大部分網站都是用php,而不是用java來寫

很多系統應用站點是用java開發的,就網站部分而言,有jsp技術

java開發的很多很多代碼在服務端,即使給你源碼,很多時候讓你配置都困難,普通用戶上手不是很方便。

而PHP開發的程序的源代碼網上有很多都是公開的,他人拿到php開發的程序後都可以進行修改。

開發快速,性能也不錯。

所以就實際應用而言,php更簡單快捷。

就如同我熟悉C++ delphi java

但我如果接項目,一般是盡量用delphi,因為delphi開發快速方便。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/306148.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-02 12:00
下一篇 2025-01-02 12:00

相關推薦

  • Python爬蟲可以爬哪些網站

    Python是被廣泛運用於數據處理和分析領域的編程語言之一。它具有易用性、靈活性和成本效益高等特點,因此越來越多的人開始使用它進行網站爬取。本文將從多個方面詳細闡述,Python爬…

    編程 2025-04-29
  • 網站為什麼會被黑客攻擊?

    黑客攻擊是指利用計算機技術手段,入侵或者破壞計算機信息系統的一種行為。網站被黑客攻擊是常見的安全隱患之一,那麼,為什麼網站會被黑客攻擊呢?本文將從不同角度分析這個問題,並且提出相應…

    編程 2025-04-29
  • 如何用Python訪問網站

    本文將從以下幾個方面介紹如何使用Python訪問網站:網路請求、POST請求、用戶代理、Cookie、代理IP、API請求。 一、網路請求 Python有三種主流的網路請求庫:ur…

    編程 2025-04-29
  • 如何將Python開發的網站變成APP

    要將Python開發的網站變成APP,可以通過Python的Web框架或者APP框架,將網站封裝為APP的形式。常見的方法有: 一、使用Python的Web框架Django Dja…

    編程 2025-04-28
  • 為什麼大家都用網易雲音樂?

    大家都用網易雲音樂,這是因為它憑藉其強大而便捷的功能,以及巨大的歌曲資源庫,成為了廣大音樂愛好者的首選音樂平台。 一、功能強大而便捷 相較於其他的音樂平台,網易雲音樂提供了許多強大…

    編程 2025-04-28
  • 如何在伺服器上運行網站

    想要在伺服器上運行網站,需要按照以下步驟進行配置和部署。 一、選擇伺服器和域名 想要在伺服器上運行網站,首先需要選擇一台雲伺服器或者自己搭建的伺服器。雲伺服器會提供更好的穩定性和可…

    編程 2025-04-28
  • Python網站源碼解析

    本文將從多個方面對Python網站源碼進行詳細解析,包括搭建網站、數據處理、安全性等內容。 一、搭建網站 Python是一種高級編程語言,適用於多種領域。它也可以用於搭建網站。最常…

    編程 2025-04-28
  • eu.ipidea.io——全能編程開發工程師必備網站

    eu.ipidea.io作為一個編程工具聚合平台,提供了包括代碼在線編輯、API查詢和IDE集成等多個方面的功能,大大方便了全能編程開發工程師的工作。 一、在線代碼編輯 eu.ip…

    編程 2025-04-27
  • Python爬蟲攻擊網站

    本文將從多個方面詳細闡述如何使用Python爬蟲攻擊網站。 一、網路爬蟲的基礎知識 網路爬蟲是一種自動獲取網站數據的程序。在Python中,我們可以使用urllib和request…

    編程 2025-04-27
  • 使用Python自動登錄網站並下載文件的方法

    當我們需要從某個網站下載大量文件時,手動登錄並下載這些文件是非常費時費力的。而使用Python編寫一個自動化腳本,則可以輕鬆地完成這個任務。 一、登錄網站並獲取Cookies 在使…

    編程 2025-04-27

發表回復

登錄後才能評論