開篇注釋以下文字並沒有非常多的技術詞匯所以只要對PHP感興趣的人都可以看看
PHPer是草根嗎?
從PHP誕生之日起PHP就開始在Web應用方面為廣大的程序員服務同時作為針對Web開發量身定制的腳本語言PHP一直秉承簡單開源的思想這也使得PHP得以快速的發展並且大力地推動Web的出現與發展但是長期以來PHPer(PHP Programmers)被認為是處於草根階層的程序員被認為是技術含量少層次低的程序員這點在國內尤其突出
記得一個技術主管說過這樣一個事情他給一個程序員分配了PHP的開發任務沒想到那個程序員居然說我是學Java出身的你讓我去寫PHP你這不是在貶低我嗎?這件事情給我印象很深觸動也很大雖然這不能代表大部分程序員的看法但是這麼認為的人應該不少還有人說現在如果是大型的政府項目PHP是肯定不會被列入考慮的范圍之內的
那麼為什麼PHPer會被認為是草根階層是因為它很簡單人人都可以學會所以沒什麼難度嗎?我以前也是這麼認為PHP入門很快處理文件數據遠程連接網絡編程都非常方便官方也有這樣的說法PHP學習的成本很低所以你容易去使用它這個想法也是普遍的甚至大部分的PHPer自己都這樣認為
說到這裡我想大家就會想到我為什麼要寫這些文字因為一年多的PHP推廣工作讓我了解到許許多多的使用PHP的公司的大概情況在這些過程中我慢慢體會到其中的根本原因這裡我說是根本原因雖然是個人的看法但是我覺得事實就是如此
那麼為什麼PHPer會被看成草根階層根本原因是PHPer所作的事情(通過代碼實現)的絕大部分都是表現層的東西這個熟悉PHP的人都知道當然也會有PHP會說他用MVC結構編寫的某某框架具備的如何如何的功能但是這些還是表現層所以只會處理表現層的程序員就被看成草根階層了事實上也是如此因為這種情況下PHP確實很難構造大型的應用
這就找到原因了不是的為什麼PHPer總是在負責表現層的東西呢答案是底層的數據處理(Web應用就是數據存儲和查找)我們一般不去觸及!好那麼說到這裡有些人可能已經想到了那不就是數據庫嗎!對就是數據庫!讓PHPer一直當草根的元凶就是數據庫為什麼?
因為目前流行的web架構中前端是負載均衡系統中間是web服務器後面是數據庫服務器所以大部分PHPer工作在Web服務器層面因為數據庫已經很好地為我們組織數據了所以PHP中沒有太多的算法而且大家潛意識下也覺得不需要更何況會影響性能
這種情況下PHPer就成為了數據庫使用者他總是在操作數據庫而不是在做程序一個最簡單的PHP腳本就是連接數據庫把數據取出來然後用命令輸出到浏覽器整個過程不超過行代碼給人的感覺就是太簡單了沒有任何技術含量為什麼了因為數據處理部分都已經被數據庫做完了尤其是MySQL的使用!MySQL是免費的所以大多數程序員可以自由地使用它另外MySQL的速度夠快了所以做個PHP應用程序非常的簡單這就相當於給你槍以後你覺得沒有必要學習武功一樣當然我不是說槍沒有武功好而是說槍的出現小孩都可以輕松便捷地殺人了
我們再詳細說說為什麼是數據庫!這裡我說一個例子我去過北京一家非常著名的網站當時我們還有一個比較資深的PHP程序員在那說些系統架構的事情我記得當時那個程序員問大家一個數據結構中的算法問題的時候全場沒有一個人能答得出來(包括我)然後那個程序員就開始給大家講些很基礎的數據結構的東西了讓我一下子回想到大學時候學的數據結構課而這些基礎的數據排序查找傳遞的問題在其他高級語言(比如C)是非常普遍的但是在PHP沒有!PHPchinacom的論壇也有個板塊叫PHP的數據結構和算法這個板塊的帖子也是寥寥無幾
仔細回想下目前網絡上大家討論的最多的是兩個方面的問題一個是PHP的類的使用(處理過程的封裝)還有一個是開發框架問題但是我們仔細分析的話發現這些所謂的PHP中比較復雜的概念裡面沒有數據處理!為什麼有數據庫!用一個Adodb或者PHP的PDO就可以搞定了!真的搞定了嗎?不是這些無非是在連接數據庫沒有數據處理!所以PHPer似乎就沒有什麼可以拿出台面上的東西
再說一個具體的代碼問題無級分類這個概念我想大家都不會陌生了吧我見過兩種處理方式第一個是地道的PHPer的處理方式也是目前比較流行的就是用數據庫來處理而且字段很少只需要加個父類的字段並加以判斷就行了而且這個方法很實用效率也高!但是這個不是數據處理的范疇了而是數據庫的查找!
第二個是C程序員用PHP寫出來的他把所有的分類信息都從數據庫取出來然後用數據結構算法進行排列分布然後輸出
[] []
From:http://tw.wingwit.com/Article/program/PHP/201311/21452.html