PHP程式員的技術成長規劃 第二階段:提高階段

来源:https://www.cnblogs.com/mrlime/archive/2019/02/28/10453213.html
-Advertisement-
Play Games

第二階段:提高階段 (中級PHP程式員)重點:提高針對LNMP的技能,能夠更全面的對LNMP有熟練的應用。目標:能夠隨時隨地搭建好LNMP環境,快速完成常規配置;能夠追查解決大部分遇到的開發和線上環境的問題;能夠獨立承擔中型系統的構架和開發工作;能夠在大型系統中承擔某個中型模塊的開發工作;1. Li ...


第二階段:提高階段 (中級PHP程式員)

重點:提高針對LNMP的技能,能夠更全面的對LNMP有熟練的應用。
目標:能夠隨時隨地搭建好LNMP環境,快速完成常規配置;能夠追查解決大部分遇到的開發和線上環境的問題;能夠獨立承擔中型系統的構架和開發工作;能夠在大型系統中承擔某個中型模塊的開發工作;

1. Linux:
在 第一階段的基礎上面,能夠流暢的使用Shell腳本來完成很多自動化的工作;awk/sed/perl 也操作的不錯,能夠完成很多文本處理和數據統計等工作;基本能夠安裝大部分非特殊的Linux程式(包括各種庫、包、第三方依賴等等,比如 MongoDB/Redis/Sphinx/Luncene/SVN之類的);瞭解基本的Linux服務,知道如何查看Linux的性能指標數據,知道基 本的Linux下麵的問題跟蹤等。

2. Nginx:
在第一階段的基礎上面,瞭解複雜一些 的Nginx配置;包括 多核配置、events、proxy_pass,sendfile/tcp_*配置,知道超時等相關配置和性能影響;知道nginx除了web server,還能夠承擔代理伺服器、反向靜態伺服器等配置;知道基本的nginx配置調優;知道如何配置許可權、編譯一個nginx擴展到nginx;知 道基本的nginx運行原理(master/worker機制,epoll),知道為什麼nginx性能比apache性能好等知識;

3. MySQL/MongoDB:
在 第一階段的基礎上面,在MySQL開發方面,掌握很多小技巧,包括常規SQL優化(group by/order by/rand優化等);除了能夠搭建MySQL,還能夠冷熱備份MySQL數據,還知道影響innodb/myisam性能的配置選項(比如 key_buffer/query_cache/sort_buffer/innodb_buffer_pool_size /innodb_flush_log_at_trx_commit等),也知道這些選項配置成為多少值合適;另外也瞭解一些特殊的配置選項,比如  知道如何搭建mysql主從同步的環境,知道各個binlog_format的區別;知道MySQL的性能追查,包括slow_log/explain 等,還能夠知道基本的索引建立處理等知識;原理方面瞭解基本的MySQL的架構(Server+存儲引擎),知道基本的InnoDB/MyISAM索引存 儲結構和不同(聚簇索引,B樹);知道基本的InnoDB事務處理機制;瞭解大部分MySQL異常情況的處理方案(或者知道哪兒找到處理方案)。條件允許 的情況,建議瞭解一下NoSQL的代表MongoDB資料庫,順便對比跟MySQL的差別,同事能夠在合適的應用場景安全謹慎的使用MongoDB,知道 基本的PHP與MongoDB的結合開發。

4. Redis/Memcached:
在大部分 中型系統裡面一定會涉及到緩存處理,所以一定要瞭解基本的緩存;知道Memcached和Redis的異同和應用場景,能夠獨立安裝 Redis/Memcached,瞭解Memcahed的一些基本特性和限制,比如最大的value值,知道PHP跟他們的使用結合;Redis瞭解基本 工作原理和使用,瞭解常規的數據類型,知道什麼場景應用什麼類型,瞭解Redis的事務等等。原理部分,能夠大概瞭解Memcached的記憶體結構 (slab機制),redis就瞭解常用數據類型底層實現存儲結構(SDS/鏈表/SkipList/HashTable)等等,順便瞭解一下Redis 的事務、RDB、AOF等機制更好

5. PHP:
除了第一階段的能力,安裝配置方面能夠隨意 安裝PHP和各種第三方擴展的編譯安裝配置;瞭解php-fpm的大部分配置選項和含義(如max_requests/max_children /request_terminate_timeout之類的影響性能的配置),知道mod_php/fastcgi的區別;在PHP方面已經能夠熟練各 種基礎技術,還包括各種深入些的PHP,包括對PHP面向對象的深入理解/SPL/語法層面的特殊特性比如反射之類的;在框架方面已經閱讀過最少一個以上 常規PHP MVC框架的代碼了,知道基本PHP框架內部實現機制和設計思想;在PHP開發中已經能夠熟練使用常規的設計模式來應用開發(抽象工廠/單例/觀察者/命 令鏈/策略/適配器 等模式);建議開發自己的PHP MVC框架來充分讓開發自由化,讓自己深入理解MVC模式,也讓自己能夠在業務項目開發里快速升級;熟悉PHP網站源碼的各種代碼優化方法,熟悉大部分PHP安全方面問題的解決處理;熟悉基本的PHP執行的機制原理(Zend引擎/擴展基本工作機制);推薦PHP視頻教程https://www.sucaihuo.com/video/143-0-0

6. C/C++:
開 始涉獵一定的C/C++語言,能夠寫基本的C/C++代碼,對基本的C/C++語法熟悉(指針、數組操作、字元串、常規標準API)和數據結構(鏈表、 樹、哈希、隊列)有一定的熟悉下;對Linux下麵的C語言開發有基本的瞭解概念,會簡單的makefile文件編寫,能夠使用簡單的GCC/GDB的程 序編譯簡單調試工作;對基本的網路編程有大概瞭解。(本項是為了向更高層次打下基礎)

7. 前端:
在 第一階段的基礎上面,熟悉基本的HTTP協議(協議代碼200/300/400/500,基本的HTTP交互頭);條件允許,可以在深入寫出稍微優雅的 HTML+CSS+JavaScript,或者能夠大致簡單使用某些前端框架(jQuery/YUI/ExtJS/RequireJS /BootStrap之類);如果條件允許,可以深入學習JavaScript編程,比如閉包機制、DOM處理;再深入些可以讀讀jQuery代碼做深入學習。(本項不做重點學習,除非對前端有興趣)

8. 系統設計:
能 夠設計大部分中型系統的網站架構、資料庫、基本PHP框架選型;性能測試排查處理等;能夠完成類似:瀏覽器 -> CDN(Squid) -> Nginx+PHP -> 緩存 -> 資料庫 結構網站的基本設計開發維護;能夠支撐每天數百萬到千萬流量基本網站的開發維護工作;


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一等對象 什麼是一等對象: 在運行時創建 能賦值給變數或數據結構中的元素 能作為參數傳遞給函數 能作為函數的返回結果 python中的字元串,列表什麼的都是一等對象,但對如果之前只是使用c++、java語言的人們來說python中的函數也是一等對象,那一定會有一點不可思議 接下來就介紹一下這個一等對 ...
  • import java.sql.Connection; import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;imp ...
  • 作者:JavaGuide(公眾號) 下麵這些問題都是一線大廠的真實面試問題,不論是對你面試還是說拓寬知識面都很有幫助。之前發過一篇8 張圖讀懂大型網站技術架構 可以作為不太瞭解大型網站系統技術架構朋友的入門文章。 文章目錄1. 你使用過哪些組件或者方法來提升網站性能,可用性以及併發量2. 設計高可用 ...
  • 1.使用cookie代替session(不安全,不推薦使用) 2.使用資料庫存儲session(效率低,不推薦使用) 3.使用nginx反向代理ip綁定方法,同一個ip只能在同一臺伺服器上進行訪問(不推薦,相當於沒有集群)。 4.使用Spring-Session框架,相當於把session緩存到re ...
  • 音頻系統工具箱™針對實時音頻處理進行了優化。audioDeviceReader, audioDeviceWriter, audioPlayerRecorder, dsp.AudioFileReader和dsp.AudioFileWriter器是為流式傳輸多通道音頻而設計的, 它們提供了必要的參數, ...
  • import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement;import java.sql.SQLException;import java.sql.Timestamp;im ...
  • 寫過C/C++的同學都知道,調用著名的malloc和new函數可以在堆上分配一塊記憶體,這塊記憶體的使用和銷毀的責任都在程式員。一不小心,就會發生記憶體泄露,搞得膽戰心驚。切換到Golang後,基本不會擔心記憶體泄露了。雖然也有new函數,但是使用new函數得到的記憶體不一定就在堆上。逃逸分析告訴你變數到底去... ...
  • 不論是面試還是正常工作需要都會用到遍歷文件夾下的所有文件,今天就記錄一下筆記。廢話不多說直接上代碼: 運行結果: 源代碼已上傳GitHub:https://github.com/cuiyuanxin/php-demo/blob/master/dir.php 純手打筆記,如有錯誤請評論提出,謝謝。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...