首頁  >  文章  >  後端開發  >  php高級程式設計師該學什麼

php高級程式設計師該學什麼

(*-*)浩
(*-*)浩原創
2019-10-16 09:45:383037瀏覽

高級PHP程式設計師

php高級程式設計師該學什麼

#重點:除了基本的LNMP程序,還能夠在某個方向或領域有深入學習。 (縱深維度發展)  (推薦學習:PHP影片教學

目標:除了能夠完成基本的PHP業務開發,還能夠解決大部分深入複雜的技術問題,並且可以獨立設計完成中大型的系統設計與開發工作;自己能夠獨立hold深入某個技術方向,在這塊比較專業。 (例如在MySQL、Nginx、PHP、Redis等任何一個方向深入研究)

#Linux:

 除了第二階段的能力,在Linux下面除了常規的操作和性能監控跟踪,還能夠使用很多高級複雜的命令完成工作(watch/tcpdump/starce /ldd/ar等);在shell腳本方面,已經能夠編寫比較複雜的shell腳本(超過500行)來協助完成許多包括備份、自動化處理、監控等工作的shell;對awk/sed/perl 等應用程式已經如火純青,能夠隨意操作控制處理文字統計分析各種複雜格式的資料;

對Linux內部機制有一些了解,對核心模組加載,啟動錯誤處理等等有基本的處理;同時對一些其他相關的東西也了解,比如NFS、磁碟管理等等;

Nginx:

Nginx操作的很熟練,能夠對Nginx進行更深入的運維工作,比如監控、性能優化,複雜問題處理等等;看個人興趣, 更多方面可以考慮專注於關於Nginx工作原理部分的深入學習,主要表現在閱讀源碼開始,例如具體的master/worker工作機制,Nginx內部的事件處理,記憶體管理等等;

同時可以學習Nginx擴展的開發,可以自訂一些自己私有的擴展;同時可以對Nginx Lua有一定程度的了解,看看是否可以結合應用出更好模式;這個階段的要求是對Nginx原理的深入理解,可以考慮成為Nginx方向的深入專業者。

MySQL/MongoDB:

 在第二階段的基礎上面,在MySQL應用程式方面,除了先前的基本SQL最佳化,也能夠在完成一些複雜操作,例如大批量資料的匯入導出,線上大批量資料的更改表結構或增刪索引欄位等等高風險操作;

除了安裝配置,已經能夠處理更多複雜的MySQL的問題,例如各種問題的追查,主從同步延遲問題的解決、跨機房同步資料方案、MySQL高可用架構等都有涉及了解;

對MySQL應用層面,對MySQL的核心關鍵技術比較熟悉,例如事務機制(隔離等級、鎖定等)、對觸發器、分割區等技術有一定了解與應用;

對MySQL效能方面,有包含磁碟最佳化(SAS遷移到SSD)、伺服器最佳化(記憶體、伺服器本身配置)、除了其他核心效能最佳化選項(innodb_log_buffer_size/back_log/table_open_cache /thread_cache_size/innodb_lock_wait_timeout等)、連線池軟體選擇應用,對show * (show status/show profile)類別的操作語句有深入了解,能夠完成大字詞部分的效能問題追蹤;

MySQL備份技術的深入熟悉,包括災備還原、對Binlog的深入理解,冷熱備份,多IDC備份等;

在MySQL原理方面,有更多了解,例如對MySQL的工作機制開始閱讀部分源碼,例如對主從同步(複製)技術的源碼學習,或者對某個存儲引擎(MyISAM/Innodb/TokuDB)等等的源碼學習理解,如果條件允許,可以參考CSV引擎開發自己簡單的儲存引擎來保存一些數據,增強對MySQL的理解;

在這個過程,如果自己有興趣,也可以考慮往DBA方向發展。 MongoDB層面,可以考慮比如說在寫少讀多的情況開始在線上應用MongoDB,或者是做一些線上的資料分析處理的操作,具體場景可以按照工作來,不過核心是要更好的深入理解RMDBS和NoSQL的不同場景下面的應用,如果條件或興趣允許,可以開始深入學習MongoDB的工作機制。

以上是php高級程式設計師該學什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn