如何成爲專業的PHP開發者

如何才能成爲一名專業的PHP開發者?資深Web開發者Bruno Skvorc其博客上分享了一些心得php

php

當閱讀各類和PHP相關的博客、Quora問題、Google+社區、資訊和雜誌的時候,Bruno Skvorc注意到討論的問題出現了兩極分化的現象。例如「我如何鏈接到一個MySQL數據庫?」,或者是「在不增長服務器的前提下,我如何使得郵件系統可以每小時發送超過一百萬份電子郵件?」html

Bruno Skvorc根據對PHP的使用能力將應用者分爲四類:初級、中級、專業和精英html5

兩極

在PHP語言中,初級用戶會用一些變量、includes、表單處理,等等。還會學一些簡單的邏輯結構。藉助教程他們能用PHP發郵件,甚至他們可能接觸到一些面向對象編程的例子,固然他們不必定理解背後的原理。他們使用WordPress,修改一些CSS類。他們憑着這些知識去申請工做,而後很不幸地被拒了。jquery

PHP專業用戶能讓不少項目煥發生機。他們使用衆多框架開發商業應用,高效地使用各類不一樣的數據庫,參加各類研討會,學習各類設計模式,很輕鬆地開發出一個完整的項目——從流程設計到最後運行。他們早已再也不使用過程式編程範式了。git

精英程序員就是傳說中通過10000+小時磨練的專業人士,本身編寫擴展來擴充本身部署的PHP的功能,只要粗略地瀏覽一下源文件就能抓出bug,對代碼佈局極爲講究,只承認極爲複雜的項目,在別人還沒察覺以前就找到解決問題的創造性的替代方案。他們還會寫一些暢銷的關於PHP語言的書籍,在大量研討會上發言,甚至建立一個屬於本身的PHP分支或者一兩個很是成功的框架。程序員

那麼,那些中級用戶在哪裏?github

缺失的一環

一個程序員如何從初級升到專業級甚至更高?若是一我的只會基礎的編程知識,他如何提高本身的技能,捨棄糟糕的實踐,使用高級的方式實踐呢?初學者常常問Bruno Skvorc這個問題。要想成爲一個專業的程序員,首先要成爲一箇中級PHP程序員。mongodb

接下來的列表指出了流暢地使用PHP須要注意的一些方面:數據庫

放棄意大利麪式代碼

不少人認爲使用類就意味着是在編寫面向對象的代碼,而使用函數就意味着是在編寫過程式代碼。大錯特錯!讓咱們複習一下普遍意義上的定義:過程式代碼就是不使用類和對象的代碼,面向對象的代碼就是儘量多地使用類和對象。編程

Bruno Skvorc的建議是徹底放棄過程式代碼。儘量多地採用面向對象風格——編寫類,封裝邏輯,考慮真實世界的術語。考慮到可複用性,過程式代碼相對於基於類的代碼的性能優點微不足道。適當的OOP代碼可讓將來的開發者接手你的項目。一般人們會這麼反駁:「可是,WordPress但是過程式的!」老實說(也許很差聽),若是WordPress的開發者是PHP開發者的話,那Instagram的開發者可就是攝影師了。這並不意味着WP沒什麼用——對於博客、簡單的網站和一天項目而言,WP很棒。用WP能很快地賺些小錢,對不太懂技術的用戶而言也很好用。可是精通WP毫不意味着你是一個專業的PHP開發者——那就是一堆意大利麪同樣的代碼,那些代碼可無法教會你合理的設計原則。

從小事作起。思考現實世界的概念,嘗試用面向對象的代碼表達它們。學習一些基本的教程,再慢慢向高級方向發展。練習面向對象編程直到你真正理解類。在此以前,不要急着去學習各類框架,以及 MVC 之類的抽象術語。

鑽研現有項目

無論你是在哪裏看到的源代碼,都要仔細鑽研。例如,在Github裏查找PHP項目,克隆下來,部署在本身的機器上,嘗試加以修改。一個文件接着一個文件,一行代碼接着一行代碼,直到你真正理解它們的意義。

學習搭建的PHP環境

搭建PHP環境也是一項寶貴的技能。這不只容許你調整優化本身的配置,還可讓你熟悉如何經過源碼構建插件。

別用Windows開發——若是你的主要桌面是Windows,你須要安裝一個虛擬機軟件,而後運行一個Linux虛擬機——Windows的大小寫敏感,行結尾,和大多數服務器環境不一樣的怪異之處,都會給你形成麻煩。因此最好在一個和服務器類似的環境下開發。

虛擬機也有利於實驗——若是出現了問題,你能夠從新開始或者回滾一下。你也能夠盡情實驗,而不用擔憂把一切搞砸。掌握工具的使用方法是很重要的,但有一個好的工做平臺也一樣重要。

用你本身搭建的環境作實驗也可讓你熟悉不一樣的服務器——該用Nginx仍是Apache,或者使用Appserver,等等。

儘早應用最佳實踐

在編寫本身代碼的時候,要確保詳細註釋完美縮進、仔細架構。在構建一個類、項目和庫以後,使用知名的的文檔工具(PHPDocumentorApiGen)來提取文檔,並在此基礎上加以改進。

一個好的IDE是很寶貴的,熟悉一個跨平臺的編輯器有利於你在架設新環境後立刻進入代碼,而不是把時間浪費在設置鍵盤快捷鍵和主題上。確保你將IDE配置文件保存在雲端,(例如Google Drive),這樣即便你新安裝了系統,你也能夠很方便地導入它們。Bruno Skvorc推薦PHPStormNetbeans這兩個跨平臺的IDE,後者是免費的。

早一點適應最佳實踐可以幫助你在項目進程裏保持一致,更有助於別人流利地閱讀你的代碼。找到你的風格並堅持下去——這對你本身和別人都有好處。儘量嚴格遵循PSR標準(PSR-0PSR-1PSR-2PSR-3)。標準可不是徒有虛名。大部分人遵循這些標準,喜好這些標準,由於它們增長了每一個人的代碼的可複用性和可讀性。

對於初學者來講,PHP之道是一個很是有用的資源,提供及時的指引。經過此書,你能夠熟悉最新的最佳實踐,面向對象的基本概念,安全,部署,代碼標準,等等。

嘗試不一樣的框架後作出選擇

好久以來,PHP是一個具有最多框架的編程語言(JavaScript最近已經遇上了)。很難說這究竟是意味着社區的分裂仍是語言的流行。但事實是,選擇一款框架是一個很糾結的事情,尤爲是在剛開始的時候。

試用了大多數框架以後,Bruno Skvorc推薦穩定優質的Phalcon框架。其實Phalcon是用C語言編寫的,能夠看成PHP擴展安裝,所以比現存的框架都要快。不管如何,嘗試使用不一樣的框架絕對是頗有必要的。

當你嘗試不一樣框架的時候,你每次都能學到解決常見問題的新方式。每一個框架都有本身的特性和坑,可是最重要的是,你能學到別人(主要是框架開發者)的思路。你將接觸新的用法和方式,用全部你能找到的框架重構你的項目是一個很是好的練習。這將幫助你有效地衡量某個特定框架的效率:開發的速度和性能。

閱讀

千萬不要忽略別人給你的提示和小建議。儘量多地閱讀。訂閱好的博客,閱讀網站上的教程,在StackOverflow上面閱覽問答,訂閱郵件列表,關注Google+上的優質資源。可是要避免PHP基礎教程類的書本,它們很快就會過期。相反,要關注網上有用的、最新的代碼片斷和教程。即便是已經接觸過的主題也能夠再讀一遍,經常能從別人的觀點裏領悟出新的想法。

若是沒有工做,那就發明一些出來

有事情可作。永遠別對本身說:「我沒有一個項目。」更別對本身說:「我很無聊。」若是你找不到什麼項目作,那就開一個新的。你是否是由於每天使用的工具缺少某個功能而沮喪?作一個更好的替代品!沒有新產品的創意?那就重複已有的創意——嘗試重建一個基本的facebook,從新建立一些你已知的項目來練手。

最重要的是永遠別停——若是你停下了,就不會有驚人的一萬小時了!持續地工做,維持本身的興趣,持續投入。作一個簡單的地址薄應用。而後用別的框架重構一下。而後再換個數據庫(好比將 MariaDB 換成 Mongo)。保持忙碌!

找一個夥伴或者指導者

和人合做學習起來更容易。尋找一個和你同樣有激情的夥伴。也許你是少數好運氣的人,能找到一個能和你分享極客興趣的夥伴。也許你在學校裏,能找到一個想開始學習也須要夥伴的同伴。你甚至能夠找一個指導者,接受一些專業指導。

永遠不要低估陪伴的力量!

結論

當你專一於實踐上面所提到各類方法的時候,你就在成爲PHP專業開發者的路上。堅持原則,永不放棄(即便周圍的人放棄了),持續練習。

原文 ecoming a PHP Professional: The Missing Link

編譯 SegmentFault

相關文章
相關標籤/搜索