為什麼說PHP是首選的Web開發語言?

來源:互聯網
上載者:User
為什麼說PHP是首選的Web開發語言?

2016.01.08 22:59:56

不知何時開始,程式員把一致的調侃送給了PHP,“尊稱”其為“神語言”,並且PHP總被冠以“代碼淩亂”、“漏洞不少”的不良名稱。在我所接觸的Web開發技術如:Rails、 ASP.NET MVC、Java Web、Django、Sinatra以及PHP中,PHP應該是首選Web開發語言。 請注意,這裡的“首選”不是“最好”的意思,而是開發工具棧學習選型過程應該優先考慮的技術。

為什麼這麼說呢?理由一下子在腦袋裡冒出了好多條,姑且梳理下吧:

  1. PHP是為Web而生的,天然與HTML、JavaScript有親近感,也就是原生味兒十足。即使是PHP與HTML代碼混雜,從某種角度而言,也能協助初學者直觀地瞭解Web技術機理,壞事有時候也是好事。另一方面,開源PHP的C風格、Unix/Linux範兒讓其在Apache、Nginx等Web應用伺服器上表現優異。 總之,PHP與Web是渾然天成的結合方式。
  2. 要掌握PHP,我建議從備受詬病的“代碼淩亂”編程風格 -- 或許是從PHP與HTML混合編程開始,待直觀瞭解Web開發技術之後,再考慮程式碼群組織和結構的重構,這樣有助於自己以更加原生的方式掌握Web的秘密。那麼,什麼是更加原生的方式呢?隨手舉個例子:典型的404狀態代碼。

    用PHP的實現:

    404.php

     

    404.html

            

    404頁面。

    再看看如 ASP.NET MVC中的實現:

    public ActionResult Details(int id){    return HttpNotFound();}

    雖然封裝得很好,但是,跟PHP方式比較就知道, ASP.NET MVC中的實現確實比較抽象不夠直觀,而且是在控制器裡直接定義和跳轉的。 在PHP中,顯而易見,一下就明白了代碼中header的含義:HTTP-Version、Status-Code、Reason-Phrase。

    順帶說說Rails中的處理方式,抽象程度也很高:

    render :template => '......', :status => 404
  3. 與PHP類似的還有JSP,但JSP往往需要與JEE其他技術模組相配合使用,體系足夠龐大,需要有長期準備。其他如 ASP.NET MVC、Rails等架構的抽象度較高,也不建議作為首選。

  4. 不得不提Node.js,Node.js是目前很火的技術,號稱“全棧”的希望所在,常拿來跟PHP爭論比較:什麼並發、線程、進程等等。在這裡無意評論孰優孰劣,但至少PHP可以讓你多掌握一門技術,而不止是JavaScript。此外,PHP的大型業務的成熟應用案例可是比比皆是吖。

  5. 那麼,是不是該一直堅持指哪打哪的“代碼淩亂”方式呢?當然不應該。PHP提供的OOP特性足夠強大,在技能與理解程度達到一定高度時,完全可以以OOP的方式來組織代碼。在PHP領域,各種架構非常多,比如Laravel、CI、FuelPHP、Yii、Symfony、Zend Framework等等,屆時隨便選一個都可以進行正常化開發。 “代碼淩亂”關鍵不在於工具本身,而在於人自己!要知道用Java也能寫出爛代碼。

  6. PHP的資料非常豐富。

  7. 最後,有一個稍稍題外話的看法,早前我還覺得在RESTful方式不斷普及下,由於RESTful Web Services使用標準的 HTTP 方法(GET/PUT/POST/DELETE)來抽象Web服務能力,服務端的重點將移至MC,而服務端視圖模版的應用會減少,用戶端的支撐需求會越來越多。比如各種前端庫、架構將得到快速推進,越來越多的需求處理會前置到前端來處理。但現在我感覺這種狀態考慮得太過理想了,就像資料頻繁大量更迭及處理的情境,更適合服務端(如模版引擎)完成;再具體地,又如大資料量的分頁,如果都在瀏覽器中實現,效能就一定會有很大問題。此外,頻繁Ajax調用、用戶端緩衝機制的缺失,也將引起種種問題,再進一步來看,單頁面應用(SPA)也就並非適合每一個業務情境, 服務端視圖模版還是有比較多的適用領域的。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.