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

為什么說PHP是個(gè)集中營(yíng)

開發(fā) 后端 前端
本文是從 Why PHP Was a Ghetto 這篇文章翻譯而來。有一天我跟在DUMBO的一個(gè)非常棒的創(chuàng)業(yè)公司的老板聊天,談到為什么非PHP界的開發(fā)人員普遍輕視PHP和PHP相關(guān)社區(qū)。他提出了一個(gè)觀點(diǎn)讓我印象很深,很大程度上是因?yàn)橐郧皬膩頉]有聽到過這樣的說法。

51CTO推薦專題:優(yōu)秀的PHP開發(fā)者是怎樣煉成的?

如果你不知道大多數(shù)的程序員都會(huì)對(duì)PHP發(fā)什么樣的牢騷,那么,這些牢騷差不多會(huì)像這樣:

◆ 語(yǔ)法丑陋

◆ 缺乏其它語(yǔ)言都有的一些必要的特征(在5.3版本之前,沒有命名空間,閉包)

◆ 不一致的函數(shù)命名、使用慣例,以及其它一些怪異的東西

◆ 過程和面向?qū)ο蟮碾s混

◆ 基本上80-90%的PHP項(xiàng)目都爛如一堆狗屎

但他所說的PHP的問題卻是另外一個(gè)問題。他并沒有說這種語(yǔ)言有問題——他認(rèn)為這種語(yǔ)言被一種常見的文化現(xiàn)象包圍著,是一種通常由語(yǔ)言的創(chuàng)造者造就的文化傳統(tǒng),現(xiàn)在看來這對(duì)一些糟糕的編程實(shí)踐方法起到了鼓勵(lì)作用。也就是它使PHP代碼變的劣質(zhì)和不可維護(hù)。

這種一個(gè)語(yǔ)言或框架上體現(xiàn)出創(chuàng)始人的哲學(xué)思想并被相關(guān)社區(qū)推崇的現(xiàn)象是的確存在的。他拿出來Ruby和其創(chuàng)始人Matz作為例子。Matz想要的是一種易讀易寫、能提高程序員工作效率的語(yǔ)言。沒看見Ruby開發(fā)人員們言之必稱快速開發(fā)以及這種語(yǔ)言的優(yōu)雅?

接著就是DHH 和他的Rails框架。還有Guido和他的Python語(yǔ)言。于是我在想:Rasmus對(duì)于PHP呢?

Rasmus Lerdorf給人的印象非常的有趣。他創(chuàng)建了最初版的PHP語(yǔ)言,而且一直在改進(jìn)這種語(yǔ)言,他在PHP社區(qū)里被當(dāng)作神一樣崇拜,他在PHP的任何方面都享有最大的權(quán)威。他被眾多的會(huì)議邀請(qǐng)去做演講,同時(shí)被大網(wǎng)絡(luò)公司所雇用,他獲得了所有人的尊敬——盡管有這樣一種事實(shí):他成了大多數(shù)的非PHP程序員所鄙視的PHP上的眾多問題的形象代表。

Rasmus倡導(dǎo)避免使用框架,而把PHP更多的當(dāng)作一種模板語(yǔ)言。對(duì)他來說,這種做法能產(chǎn)生直接的運(yùn)行效率和可擴(kuò)展性(程序負(fù)載可知)。而對(duì)于其他的所有人來說,這種做法導(dǎo)致了大量的亂燉似的過程式代碼,大量的無法維護(hù)的項(xiàng)目。自從1995年P(guān)HP誕生至今大概10年左右的時(shí)間里,所有的PHP項(xiàng)目都是按照這種指導(dǎo)寫成的。

與此同時(shí)另外一個(gè)問題突然的出現(xiàn)了:在PHP5.0之前,PHP的初期,PHP獲得了大量的新手的追隨。這種語(yǔ)言的入門門檻出奇的低,任何人都可以下載自解壓的×AMP Windows程序安裝包、在2兩分鐘內(nèi)用上這種語(yǔ)言。除此之外,那時(shí)在Web開發(fā)方式上對(duì)MVC模式的共識(shí)并沒有真正的出現(xiàn)。這樣一來你可以想象,一群新手和一個(gè)缺乏好的開發(fā)實(shí)踐方法的語(yǔ)言組合到一起能創(chuàng)造出什么?一堆無法維護(hù)的垃圾。而且整個(gè)大環(huán)境都是這樣。

不要誤解我的話——優(yōu)秀的PHP開發(fā)者還是不少的,即使是當(dāng)時(shí)。但是,就像我說的,粗制濫造的菜鳥作品到處都是。當(dāng)牛仔式無羈的PHP程序員在沒有指導(dǎo)原則的情況下聚集到一起開發(fā)程序,于是像PHPbb、 PHPNuke以及很多的粗糙的.php3程序包就出現(xiàn)了。但是你能單純的責(zé)怪PHP開發(fā)人員嗎?不能!其它的Web語(yǔ)言巨人,ASP和Perl,同樣惡名遠(yuǎn)揚(yáng),同樣宣傳著一種亂燉式的開發(fā)方式。

所以這就是為什么PHP會(huì)得到這樣的罵名。是因?yàn)樗臍v史流傳。大多數(shù)已經(jīng)轉(zhuǎn)向Python,Ruby和Java的PHP開發(fā)人員并沒有在MVC概念興起時(shí)回頭去重新思考這種語(yǔ)言。此外,更有一些像”Ruby公子“Zed Shaw抱怨一些程序員的思想”受PHP毒害“這樣的露骨的諷刺,像這樣的言論在RubyInside上很盛行。

PHP是個(gè)集中營(yíng)

但像Zend和CodeIgniter這樣的框架的出現(xiàn)把這種語(yǔ)言推向了正確的開發(fā)方向上。事實(shí)上,它把PHP推向了與Rasmus所希望看到的相反的方向上了。查看一下Zend和CodeIgniter框架,你會(huì)發(fā)現(xiàn)它們是為數(shù)不多的文檔寫的很好,代碼寫的很好的程序。

大多數(shù)學(xué)習(xí)了Ruby的開發(fā)人員同時(shí)都要學(xué)習(xí)Rails和MVC知識(shí);PHP在此之前已經(jīng)被使用了整整10年。對(duì)于那些新手來說,可惡的Ruby沒有給他們這段時(shí)間讓他們自由發(fā)揮。Rails有現(xiàn)成的標(biāo)準(zhǔn)指導(dǎo),它的入門門檻相對(duì)高很多,通常會(huì)把一些缺少經(jīng)驗(yàn)的開發(fā)人員擋在門外。

事實(shí)上,PHP應(yīng)用程序是可以向其它種語(yǔ)言那樣寫的很好,而且還會(huì)具有一定的運(yùn)行速度上的優(yōu)勢(shì)。PHP世界里的MVC風(fēng)格的開發(fā)方法興起只是在近幾年才出現(xiàn)的現(xiàn)象。不得不承認(rèn),我們應(yīng)該感謝Rails帶來的這種變化。

那么,PHP如今是個(gè)什么樣呢?

◆ 各種標(biāo)準(zhǔn)(非統(tǒng)一,但大多數(shù)項(xiàng)目使用MVC,很少有垃圾般的過程式程序)

◆ 很低的入門門檻

◆ 速度和可擴(kuò)展性(在各種腳本語(yǔ)言里PHP應(yīng)該是最好的)

◆ 有一個(gè)好的單元測(cè)試框架

◆ 有最好的各國(guó)語(yǔ)言翻譯的文檔

除此之外,互聯(lián)網(wǎng)上大多數(shù)有影響的網(wǎng)站都使用PHP作為它們后臺(tái)的語(yǔ)言或工具,諸如Facebook,Digg,維基百科,Wordpress,Drupal等等。我相信,對(duì)PHP有一個(gè)深入的掌握會(huì)使一個(gè)程序員打開更多的未知領(lǐng)域的大門。

如果你不贊同上面所說的,請(qǐng)留下評(píng)論,或email給我——我想聽聽你為什么不這么認(rèn)為。

事實(shí)上,我并不是一個(gè)PHP迷,我對(duì)語(yǔ)言沒有感覺。我使用PHP大多是因?yàn)?mdash;—你猜到了——有人愿意付錢給我。所以一切歸咎于此:

如果你希望在軟件設(shè)計(jì)上做出明智的決定,PHP是你開發(fā)Web應(yīng)用程序的最佳選擇。

順便說一下,如果你確信要使用PHP來開發(fā)下一個(gè)Web應(yīng)用,請(qǐng)?jiān)囈辉嘋odeIgniter。它是一個(gè)輕量級(jí)的,普通的,超級(jí)快的PHP框架。對(duì)于CodeIgniter,我是個(gè)粉絲。

原文鏈接:http://www.aqee.net/2011/05/05/why-php-was-a-ghetto/

【編輯推薦】

  1. PHP框架 Yii 1.1.7 發(fā)布 附下載
  2. 有圖有真相 PHP代碼源被黑了
  3. PHP開發(fā)者常犯的10個(gè)MySQL錯(cuò)誤
  4. 10個(gè)免費(fèi)的PHP腳本資源下載網(wǎng)站推薦
  5. 25個(gè)不錯(cuò)PHP的游戲編程腳本代碼分享
責(zé)任編輯:陳貽新 來源: 外刊IT評(píng)論
相關(guān)推薦

2017-09-04 16:09:49

2017-09-07 11:17:57

2021-06-24 12:46:40

數(shù)據(jù)管理模型

2011-03-24 10:05:02

IE9

2019-01-12 20:32:15

網(wǎng)易MCtalk泛娛樂

2021-11-26 22:14:55

PHP編程語(yǔ)言開發(fā)

2020-07-03 14:05:26

Serverless云服務(wù)商

2022-03-14 08:33:09

TypeScriptJavaScript前端

2019-09-23 13:10:02

容器進(jìn)程

2021-11-29 18:27:12

Web Wasmjs

2011-10-27 13:37:51

網(wǎng)頁(yè)設(shè)計(jì)

2011-09-20 15:51:42

NoSQL

2023-05-05 16:26:33

2025-04-07 08:30:00

緩存Java開發(fā)

2012-02-08 10:02:53

Web

2019-09-23 13:37:09

Anthos谷歌Kubernetes

2021-02-21 13:52:44

程序開發(fā)互聯(lián)網(wǎng)

2024-08-26 08:36:53

2018-01-23 11:48:17

Vue.js前端開發(fā)

2018-12-27 15:13:12

云計(jì)算運(yùn)維管理
點(diǎn)贊
收藏

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