成為一名優秀的PHP程序員,該如何做呢?應該具有什麼樣的技能,才算得上PHP程序員?你的技術又是在什麼水平級別上?本文將列出一些作為一名PHP程序員應該了解的事情。
MySQL能力
在開發上的應用基於幾個能力體現:
(1)了解:知道用PHP連接數據庫;懂得寫一些簡單的SQL;建一些簡單的索引;懂得用工具簡單操作一下數據庫(增刪改庫表結構數據等等)。
(2)熟悉:懂得在開發應用上設計數據庫,建立一些有效的索引,用explain分析SQL性能,壓力測試等等。
(3)很熟悉:深入了解數據庫索引、存儲引擎原理以及運行機制,能有效地構建高性能可擴展的數據庫結構/架構,有效地優化數據庫性能配置並加以調試,分析數據庫運行狀態。
(4)精通:簡單地說具備以上所有能力的同時,有多年高負載分布式環境下的優化管理經驗。
據觀察以及交往經驗,70%的PHPer處在了解階段,25%處於熟悉階段,>4%很熟悉,精通的人基本就不是PHPer了。
◆70%這個群體最容易忽視MySQL,以為MySQL只是簡單的存儲媒介,沒有優化意識,認為加個內存、CPU就能解決問題。
典型事件:join、order by、group by等語句性能一塌糊塗,數據庫根本沒有設計(僅限於拆成一個主表,N個附表等),搞不清字段類型及作用,碰到大表的復雜查詢就沒轍。
◆20%這個群體的人只是MySQL運行機制理解不透徹,對影響MySQL性能的關健因素把握不明確,不熟練。
典型事件:熟讀手冊,但說不清索引原理,不知道二叉樹、HASH等算法對於數據庫的作用
◆4%的群體已經基本可以勝任DBA的職能。
OOP能力
(1)了解:了解變量的作用域、類型,及其意義,了解繼承機制等,懂得復用、封裝概念。
(2)熟悉:熟練應用接口、抽象等技術混合開發程序,並理解其中含義,一般研究過Java。
(3)很熟悉:有過OOP架構設計經驗,熟悉設計模式、UML,熟悉PHP對象運行機制,內容管理等。
(4)精通:應該是架構師級別了,不限於PHP。
經常我們會碰到一些自稱熟悉OOP卻連public、private、protected、static都解釋不清的人,是肯定沒有經歷過正規的OOP項目。
大型網站經驗
(1)了解:熟悉PHP開發下的緩存應用(Memcache、APC等);接觸過LVS、SQUID應用;有一定的Session處理方案;熟悉負載均衡;熟悉PHP數據連接池應用;了解PHP編程性能優化。
(2)熟悉:掌握分布式緩存及緩存性能優化、熟悉存儲系統、文件系統、數據庫,開發可擴展平台。能結合負載均衡合理布置流量,對PHP運行性能進行監控與分析。
(3)非常熟悉:具備系統分析師能力,已經超出PHPer環節;
(4)精通。
DOM開發能力
應用能力
以上只是個人拙見,僅希望能夠以此拋磚引玉,希望大牛加以補充或更正。