如今工做幾年的php開發者都會有這樣的迷茫,php開發多了,無外乎「增刪改查調接口」,感受天天的工做都是重複性的勞動,一點新意也沒有,感受技術上沒有多大的長進了。真的是這樣嗎?php
實際上開發者除了把本身當成php程序員,更應該關注php之外的東西,將本身定位於能熟練使用php搭建系統的工程師。我認爲高級php工程師能夠往幾個方向去發展:前端
1.深度方向mysql
一個工程師要往高階發展,必須同時強化幾個技術能力:程序員
設計能力:懂得如何利用分層、面向對象、設計模式等設計組織代碼。web
編碼能力:熟悉php語法特性,知道怎麼用一兩行代碼代替初級開發者十幾上百行代碼。sql
工程能力:學會如何快速構建工程,學會如何構建可讀、可擴展性的工程,學會如何避免埋坑給後人,學會如何與人協做維護工程,學會如何保證工程質量,學會如何權衡利弊,學會如何在困難面前妥協。設計模式
抽象能力:初級開發者一般會等到邏輯重複時再抽象封裝(甚至怕拖進度或者懶惰而放棄),而高級開發者一般一開始寫出的邏輯就爲了之後的重用,而且深知一開始多付出的思考設計時間最終都會由於複用獲得回報。不少開發框架就是一步步抽象/埋坑/優化而來的。瀏覽器
架構能力:一個業務系統如何劃分模塊,模塊之間如何協做通訊,每一個模塊的技術選型如何作,系統細節如何規避問題等等。緩存
優化能力:學會如何評估、分析、提高系統性能。優化途徑不少,產品功能優化、業務邏輯優化、基礎技術優化、操做系統底層硬件的優化等等。安全
2.廣度方向
php開發基本上離不開操做系統、存儲、緩存、網絡、webserver等等配套設施,所以這也是高階必備技能。一旦業務系統出問題了,必需要能快速定位解決(不必定本身解決,但要知道找到哪一個負責人來解決)。
好比存儲mysql,高級開發者會懂得利用索引、利用分表分庫提升查詢性能,懂得負載均衡和災備提升性能提升可靠性(雖然是DBA的工做,但瞭解了有助於出問題時排查)。
好比緩存,高級開發者懂得如何有效且最大限度利用緩存系統提升應用性能。
好比http,初級開發者每每只懂得http網絡請求就只一去一回兩個包,高級開發者會去深究網絡七層模型、會深究http請求的各個環節(DNS、三次握手等等)。
好比web前端,學習如何依靠瀏覽器緩存、CDN緩存、壓縮代碼、合併文件等等提升前端性能,學習如何進行前端安全攻防。
其實做爲一個程序員,真正的價值在於他的機會,而不少機會必定會留給有實力的人,不要認爲本身懷才不遇,不要怨天尤人!