成為一名PHP專家其實(shí)并不難——PHP專家之路
本文作者Bruno Skvorc是一名資深的Web開發(fā)者。在這篇文章里主要是講述成為一名專業(yè)的PHP專家所要經(jīng)歷的過程,以及在這個(gè)過程里要如何學(xué)習(xí)掌握技巧和對(duì)工具的舍取。
當(dāng)閱讀各種和PHP相關(guān)的博客、Quora問題、Google+社區(qū)、資訊和雜志的時(shí)候,經(jīng)常會(huì)注意到在技術(shù)上出現(xiàn)兩極分化的現(xiàn)象。問題均圍繞在“我如何連接到一個(gè)MySQL數(shù)據(jù)庫(kù)?”,或者是“我如何使得郵件系統(tǒng)能夠每小時(shí)發(fā)送超過一百萬份電子郵件,在不引入一個(gè)新的服務(wù)器的前提下?”這樣的范圍內(nèi)。
通過分析研究,可以根據(jù)對(duì)PHP的使用能力將應(yīng)用者分為四類:初級(jí)、中級(jí)、專業(yè)和精英。
在極端情況下
使用PHP語(yǔ)言,初級(jí)者會(huì)學(xué)一些變量、include()包含文件、表單處理。還會(huì)學(xué)一些邏輯架構(gòu),就連發(fā)送一份郵件也要借助教程,即使是點(diǎn)擊面向?qū)ο缶幊痰陌咐臅r(shí)候也不一定真正理解它的運(yùn)行原理。
PHP專家每天都會(huì)花很多時(shí)間將PHP應(yīng)用于各個(gè)項(xiàng)目中,比如商業(yè)應(yīng)用或者各種需要數(shù)據(jù)庫(kù)和PHP相結(jié)合的應(yīng)用。此外,這些專家還會(huì)參加各種研討會(huì),學(xué)習(xí)設(shè)計(jì)各種各樣的模型,并且很容易就開發(fā)出一個(gè)完整的項(xiàng)目——從圖表設(shè)計(jì)到最后執(zhí)行。關(guān)鍵一點(diǎn)是他們?cè)缫巡辉倬心嘤诔绦蚴降拇a編程了。
精英程序員就是傳說中經(jīng)過10000+小時(shí)技術(shù)磨練的專業(yè)PHP人士,他們通過自己編寫擴(kuò)展來擴(kuò)充PHP的開發(fā)功能,更牛的是,他們只要粗略的瀏覽一下源文件就能找出bug,對(duì)代碼布局可以說是相當(dāng)?shù)募?xì)致。他們能夠創(chuàng)造出最復(fù)雜的項(xiàng)目,在別人還沒發(fā)現(xiàn)問題之前,他們就已經(jīng)找出可替代的完美方案了。除此之外,他們還會(huì)寫一些比較受歡迎的PHP語(yǔ)言類的書籍,參加各式研討會(huì),創(chuàng)建一個(gè)非常成功的框架也是不在話下的。
關(guān)鍵環(huán)節(jié)
一個(gè)程序員如何從初級(jí)者轉(zhuǎn)變到專業(yè)者或者更厲害的角色呢?如果一個(gè)人只會(huì)基礎(chǔ)的編程知識(shí),那基本上是不可能有所提升的,更別說去運(yùn)用一些更先進(jìn)的技術(shù)方法了。要想成為一個(gè)專業(yè)的PHP程序員,首先要做的就是成為一個(gè)中級(jí)PHP程序員。
接下來的這個(gè)列表就是初級(jí)者需要經(jīng)歷的過程——熟練使用PHP的過程。
放棄意大利面式代碼
很多人認(rèn)為使用類就意味著是在編寫面向?qū)ο蟮拇a,而使用函數(shù)就意味著是在編寫過程式代碼。其實(shí)這是大錯(cuò)特錯(cuò)了,先來假設(shè)一下廣泛的vanilla定義:過程式代碼就是不需要使用類和目標(biāo)的代碼,OOP代碼就是盡可能多的使用類和目標(biāo)的代碼。
這里的建議是完全放棄過程式代碼,盡可能多的使用面向?qū)ο蟮木幋a風(fēng)格——編寫類,封裝邏輯,考慮真實(shí)的術(shù)語(yǔ)。建立在類代碼基礎(chǔ)上的過程式代碼的性能優(yōu)勢(shì),在和重實(shí)用性的OOP代碼相比是微不足道的,適當(dāng)?shù)腛OP代碼可以讓未來的開發(fā)者繼承你的項(xiàng)目。
仔細(xì)分析現(xiàn)有項(xiàng)目
不管你是在哪里看到的源代碼,都要仔細(xì)鉆研。例如,在Github里查找PHP項(xiàng)目,復(fù)制下來,部署在自己的設(shè)備上,試著結(jié)合自己的代碼來運(yùn)行這一項(xiàng)目。一個(gè)文件接著一個(gè)文件,一行代碼接著一行代碼,直到你真正理解每個(gè)代碼的意義。
創(chuàng)建自己的PHP環(huán)境
創(chuàng)建自己的PHP環(huán)境也是一種很珍貴的技能。這不僅能讓你熟悉PHP的安裝設(shè)置,還可以讓你熟悉如何通過修改源碼來實(shí)現(xiàn)功能擴(kuò)展。
虛擬機(jī)和虛擬化軟件也可以幫你做實(shí)驗(yàn)——如果出現(xiàn)了錯(cuò)誤,你可以擦掉重新開始或者做一個(gè)回滾。也可以盡可能多的在字面上進(jìn)行測(cè)試實(shí)驗(yàn),而不用擔(dān)心弄的太亂。掌握工具的使用方法是很重要的,但有一個(gè)好的工作臺(tái)也是同等的重要。
用你自己創(chuàng)建出來的設(shè)置做實(shí)驗(yàn)亦可讓你熟悉不同的服務(wù)器——例如什么時(shí)候要用Nginx或Apache,或者是使用Appserver等等。
盡早應(yīng)用最佳實(shí)踐
在編寫自己代碼的時(shí)候,要確保對(duì)自己的文檔塊嚴(yán)格注釋、完美縮進(jìn)、仔細(xì)完成架構(gòu)。在構(gòu)建一個(gè)類,項(xiàng)目或類庫(kù)之后,使用性能優(yōu)良的文檔工具(PHPDocumentor,ApiGen)來提取文檔塊,并在這個(gè)文檔塊上進(jìn)行改進(jìn)。
早一點(diǎn)適應(yīng)最佳實(shí)踐能夠幫助你在項(xiàng)目進(jìn)程里保持一致,更有助于別人流利的閱讀你的代碼。找到你的風(fēng)格并堅(jiān)持下去——這對(duì)你自己和別人都有好處。
嘗試不同的框架
有很長(zhǎng)一段時(shí)間,PHP是一個(gè)具備最多框架的編程語(yǔ)言,不管這一說法在技術(shù)社區(qū)和語(yǔ)言界的影響力如何,但事實(shí)是,選擇一款框架是一個(gè)很糾結(jié)的事情,尤其是在剛開始的時(shí)候。
經(jīng)過對(duì)大多數(shù)框架的長(zhǎng)時(shí)間試用,這里衷心推薦Phalcon作為主力框架,主要源于其在穩(wěn)健性和質(zhì)量方面的優(yōu)秀表現(xiàn),事實(shí)上Phalcon是用C語(yǔ)言編寫的,而且可以當(dāng)作是PHP擴(kuò)展框架安裝。無論如何,嘗試使用不同的框架絕對(duì)是很有必要的。
大量閱讀資料
千萬不要低估了別人給你的暗示和小建議(無論是在書上還是在工作中),盡可能多的閱讀各方面的編程知識(shí)。閱讀博客、教程、在StackOverflow上面閱覽問答、訂閱資訊雜志等等。但是要避免基礎(chǔ)的PHP教程書籍,最好是專注于網(wǎng)上有用的、最新代碼的個(gè)別片段和教程。即使是已經(jīng)讀過的內(nèi)容也可以再讀幾遍,一定能從別人的觀點(diǎn)里領(lǐng)悟出新的想法。
結(jié)論
除此之外,在無事可做的時(shí)候,不妨自己創(chuàng)建一個(gè)項(xiàng)目:覺得日常使用的App功能太少了,自己創(chuàng)建一些輔助功能,或者嘗試著重建一個(gè)基礎(chǔ)的Facebook。千萬不要放松,保持自己的創(chuàng)造力。另外,你還可以找一個(gè)同伴/導(dǎo)師,相互學(xué)習(xí)的進(jìn)步速度總比閉門造車的速度快很多。
當(dāng)你真的專注于實(shí)踐上面所提到各種方法的時(shí)候,你也許就在成為PHP專家的路上。
相關(guān)文章:
1. ajax請(qǐng)求添加自定義header參數(shù)代碼2. ASP基礎(chǔ)知識(shí)VBScript基本元素講解3. Python requests庫(kù)參數(shù)提交的注意事項(xiàng)總結(jié)4. IntelliJ IDEA導(dǎo)入jar包的方法5. Gitlab CI-CD自動(dòng)化部署SpringBoot項(xiàng)目的方法步驟6. Kotlin + Flow 實(shí)現(xiàn)Android 應(yīng)用初始化任務(wù)啟動(dòng)庫(kù)7. 利用CSS3新特性創(chuàng)建透明邊框三角8. python爬蟲學(xué)習(xí)筆記之pyquery模塊基本用法詳解9. ASP中解決“對(duì)象關(guān)閉時(shí),不允許操作。”的詭異問題……10. python操作mysql、excel、pdf的示例
