欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

為什么說PHP是首選的Web開發(fā)語言? - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識(shí)

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們在追求其視覺表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營銷的便利,運(yùn)營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!

您當(dāng)前位置>首頁 » 新聞資訊 » 網(wǎng)站建設(shè) >

為什么說PHP是首選的Web開發(fā)語言?

發(fā)表時(shí)間:2015-4-15

發(fā)布人:葵宇科技

瀏覽次數(shù):57

為什么說PHP是首選的Web開發(fā)語言?

更好排版:https://zybuluo.com/phper/note/86933


轉(zhuǎn)發(fā)自2gua大神的知乎專欄:http://zhuanlan.zhihu.com/guagua/19904737


不知何時(shí)開始,程序員把一致的調(diào)侃送給了PHP,“尊稱”其為“神語言”,并且PHP總被冠以“代碼凌亂”、“漏洞不少”的不良名稱。在我所接觸的Web開發(fā)技術(shù)如:Rails、ASP.NET MVC、Java Web、Django、Sinatra以及PHP中,PHP應(yīng)該是首選Web開發(fā)語言。請(qǐng)注意,這里的“首選”不是“最好”的意思,而是開發(fā)工具棧學(xué)習(xí)選型過程應(yīng)該優(yōu)先考慮的技術(shù)。

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

1. PHP是為Web而生的,天然與HTML、JavaScript有親近感,也就是原生味兒十足。即使是PHP與HTML代碼混雜,從某種角度而言,也能幫助初學(xué)者直觀地了解Web技術(shù)機(jī)理,壞事有時(shí)候也是好事。另一方面,開源PHP的C風(fēng)格、Unix/Linux范兒讓其在Apache、Nginx等Web應(yīng)用服務(wù)器上表現(xiàn)優(yōu)異??傊?#xff0c;PHP與Web是渾然天成的結(jié)合方式。

2. 要掌握PHP,我建議從備受詬病的“代碼凌亂”編程風(fēng)格 -- 或許是從PHP與HTML混合編程開始,待直觀了解Web開發(fā)技術(shù)之后,再考慮代碼組織和結(jié)構(gòu)的重構(gòu),這樣有助于自己以更加原生的方式掌握Web的秘密。那么,什么是更加原生的方式呢?隨手舉個(gè)例子:典型的404狀態(tài)碼。

用PHP的實(shí)現(xiàn)(404.php、404.html):

 
  1. <?php
  2. header("HTTP/1.1 404 Not Found");
  3. include("404.html");
  4. exit;
  5. ?>
 
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="utf-8">
  5. </head>
  6. <body>
  7. <p>404頁面。</p>
  8. </body>
  9. </html>

再看看如ASP.NET MVC中的實(shí)現(xiàn):

 
  1. public ActionResult Details(int id)
  2. {
  3. return HttpNotFound();
  4. }

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

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

 
  1. render :template => '......', :status => 404

3. 與PHP類似的還有JSP,但JSP往往需要與JEE其他技術(shù)模塊相配合使用,體系足夠龐大,需要有長期準(zhǔn)備。其他如ASP.NET MVC、Rails等框架的抽象度較高,也不建議作為首選。

4. 不得不提Node.js,Node.js是目前很火的技術(shù),號(hào)稱“全?!钡南M?#xff0c;常拿來跟PHP爭論比較:什么并發(fā)、線程、進(jìn)程等等。在這里無意評(píng)論孰優(yōu)孰劣,但至少PHP可以讓你多掌握一門技術(shù),而不止是JavaScript。此外,PHP的大型業(yè)務(wù)的成熟應(yīng)用案例可是比比皆是吖。

5. 那么,是不是該一直堅(jiān)持指哪打哪的“代碼凌亂”方式呢?當(dāng)然不應(yīng)該。PHP提供的OOP特性足夠強(qiáng)大,在技能與理解程度達(dá)到一定高度時(shí),完全可以以O(shè)OP的方式來組織代碼。在PHP領(lǐng)域,各種框架非常多,比如Laravel、CI、FuelPHP、Yii、Symfony、Zend Framework等等,屆時(shí)隨便選一個(gè)都可以進(jìn)行規(guī)范化開發(fā)。“代碼凌亂”關(guān)鍵不在于工具本身,而在于人自己!要知道用Java也能寫出爛代碼。

6. PHP的資料非常豐富。

7. 最后,有一個(gè)稍稍題外話的看法,早前我還覺得在RESTful方式不斷普及下,由于RESTful Web Services使用標(biāo)準(zhǔn)的 HTTP 方法(GET/PUT/POST/DELETE)來抽象Web服務(wù)能力,服務(wù)端的重點(diǎn)將移至MC,而服務(wù)端視圖模版的應(yīng)用會(huì)減少,客戶端的支撐需求會(huì)越來越多。比如各種前端庫、框架將得到快速推進(jìn),越來越多的需求處理會(huì)前置到前端來處理。但現(xiàn)在我感覺這種狀態(tài)考慮得太過理想了,就像數(shù)據(jù)頻繁大量更迭及處理的場景,更適合服務(wù)端(如模版引擎)完成;再具體地,又如大數(shù)據(jù)量的分頁,如果都在瀏覽器中實(shí)現(xiàn),性能就一定會(huì)有很大問題。此外,頻繁Ajax調(diào)用、客戶端緩存機(jī)制的缺失,也將引起種種問題,再進(jìn)一步來看,單頁面應(yīng)用(SPA)也就并非適合每一個(gè)業(yè)務(wù)場景,服務(wù)端視圖模版還是有比較多的適用領(lǐng)域的。

相關(guān)案例查看更多