1. Linux
在Linux下面除了常規的操作和效能監控跟蹤,還能夠使用很多高階複雜的命令完成工作(watch/tcpdump/starce /ldd/ar等);
在shell指令碼方面,已經能夠編寫比較複雜的shell指令碼(超過500行)來協助完成很多包括備份、自動化處理、監控等工作的 shell;
對awk/sed/perl 等應用已經如火純青,能夠隨意操作控制處理文字統計分析各種複雜格式的資料;
對Linux內部機制有一些了解, 對核心模組載入,啟動錯誤處理等等有個基本的處理;同時對一些其他相關的東西也了解,比如NFS、磁碟管理等等。
2. Nginx
可以考慮側重在關於Nginx工作原理部分的深入學習,主要表現在閱讀原始碼開始,比如具體的master/worker工作機制,Nginx內部 的事件處理,記憶體管理等等;
同時可以學習Nginx擴充套件的開發,可以客製化一些自己私有的擴充套件;同時可以對Nginx+Lua有一定程度的了解,看看是否可 以結合應用出更好模式。
3. MySQL/MongoDB
在MySQL應用方面,除了之前的基本SQL優化,還能夠在完成一些複雜操作,比如大批次資料的匯入匯出,線上大批次資料的更改表 結構或者增刪索引欄位等等高危操作;
除了安裝設定,已經能夠處理更多複雜的MySQL的問題,比如各種問題的追查,主從同步延遲問題的解決、跨機房同步數 據方案、MySQL高可用架構等都有涉及了解;
對MySQL應用層面,對MySQL的核心關鍵技術比較熟悉,比如事務機制(隔離級別、鎖等)、對觸發器、 分割區等技術有一定了解和應用。
4. Redis/Memcached
因為Memcached不是特別複雜,建議可以把原始碼進行閱讀,特別是記憶體管理部分,方便深入理解;
Redis部分,可以多做一些複雜的資料結構的應用(zset來做排行榜排序操作/事務處理用來保證原子性在秒殺類場景應用之類的使用操作);多涉及 aof等同步機制的學習應用,設計一個高可用的Redis應用架構和叢集。
5. PHP
從基本程式碼應用上面來說,能夠解決在PHP開發中遇到95%的問題,了解大部分 PHP的技巧;對大部分的PHP框架能夠迅速在一天內上手使用,並且了解各個主流PHP框架的優缺點,能夠迅速方便專案開發中做技術選型;
在設定方面,了解一些比較偏門的設定選項(php auto_prepend_file/auto_append_file),包括擴充套件中的一些複雜高階設定和原理。
對php的工作機制比較了解,包括php-fpm工作機制(比如php-fpm在不同設定機器下面開啟進程數量計算以及原理),對zend引擎有基本熟悉 (vm/gc/stream處理),閱讀過基本的PHP核心原始碼(或者閱讀過相關文章),對PHP內部機制的大部分核心資料結構(基礎型別/Array /Object)實現有了解,對於核心基礎結構(zval/hashtable/gc)有深入學習了解。
6. C/C++
能夠在C/C++語言方面有更深入的學習了解,能夠完成中小型C/C++系統的開發工作;除了基本第二階段的基礎C/C++語法和資料結構,也能夠學習一些特殊資料結構(b-tree/rb-tree/skiplist/lsm-tree/trie-tree等)方便在特殊工作中需 求;
在系統程式設計方面,熟悉多進程、多執行緒程式設計;多進程情況下面了解大部分多進程之間的通訊方式,能夠靈活選擇通訊方式(共用記憶體/號誌/管道等);
多執行緒程式設計能夠良好的解決鎖衝突問題,並且能夠進行多執行緒程式的開發偵錯工作;同時對網路程式設計比較熟悉,了解多進程模型/多執行緒模型/非同步網路IO模型的差別和選型,熟悉不同非同步網路IO模型的原理和差異(select/poll/epoll/iocp等),並且熟悉常見的非同步框架(ACE/ICE /libev/libevent/libuv/Boost.ASIO等)和使用,如果閒暇也可以看看一些國產自己開發的庫(比如muduo);
同時能夠設計好的高並行程式架構(leader-follow/master-worker等);了解大部分C/C++後端Server開發中的問題(記憶體管理、日 誌列印、高並行、前後端通訊協定、服務監控),知道各個後端服務RPC通訊問題(struct/http/thirft/protobuf等)。
7. 前端
深入了解HTTP協定(包括各個細緻協定特殊協定程式碼和背後原因,比如302靜態檔案快取了,502是nginx後面php掛了之類的);除了之前的前端方面的各種框架應用整合能力。
推薦教學:PHP教學
以上就是15k的php需要掌握什麼技術的詳細內容,更多請關注TW511.COM其它相關文章!