摘要:熟悉編程,對于網絡模型有一定的認知,熟悉多路復用技術。對主從延遲能有效解決。能夠支持對于千萬級流量網站的正常開發維護工作。結束語技術無止境,未來有更多可能。
本文旨在給要學習 PHP 的新手一個大概的認知輪廓,在心里有個學習的結構,有的放矢,避免走太多彎路。大神請忽略。
入門階段 預備知識1、掌握基本HTML、JS、CSS語法;熟悉 Bootstrap。
參考:
https://www.runoob.com/html/h...
https://www.liaoxuefeng.com/w...
https://www.runoob.com/css/cs...
驗收最低標準:模仿寫出jd.com或者vip.com首頁第一屏內容。
2、熟悉Linux命令行
熟悉常用發行版系統(CentOS、Ubuntu)安裝
熟悉常用命令行操作,包括文件管理、用戶管理、權限管理、防火墻管理等
熟悉VIM使用
驗收最低標準:掌握lnmp環境搭建。PHP基礎
掌握PHP基礎語法、文件上傳、cookie、Session、JSON。
掌握MySQL數據庫連接:pdo使用。
掌握redis連接及簡單應用。
掌握命名空間。
掌握面向對象編程思想。
參考:
https://www.runoob.com/php/php-tutorial.html
學會使用ThinkPHP框架。主要是該框架在國內使用普及率太高了。不建議使用Laravel入門,因為該框架使用了較多的語法糖、第三方庫,對新手可能有難度。
驗收最低標準:可以使用ThinkPHP最新版作為入手框架,寫出一個簡單的博客。頁面簡單寫就行。數據之間使用TP的 display 渲染到頁面。學習寫接口
學會 Charles 抓包,看豆瓣的接口返回的數據。
學會寫接口(GET、POST)的就行。
學會使用 POSTMAN。
驗收標最低準:把上面的博客項目改成前后端分離的,先寫完接口(最好有文檔),再在頁面里使用ajax調用接口數據。
至此,你已經入門了。如果需要繼續往下,還要學習。
第二階段 PHP使用 composer 安裝PHP第三方庫
對于PHP斷點調試非常熟悉
學習常用PHP擴展
使用 SPL
掌握 PSR 規范
掌握反射的使用
掌握設計模式
熟練使用常用框架。
了解php和php-fpm的大部分配置選項和含義。
熟悉HTTP協議。
熟悉正則表達式。
熟悉MYSQL優化的一些技巧,例如MySQL的性能追查,包括slow_log/explain等;對于order by、limit、like等一些坑能避開;能夠熟練使用常用的索引;對于表結構創建選用哪種數據類型做到胸有成竹等等。
熟悉常用的配置,知道如何調優。
熟練配置主從。
掌握Redis使用:對于常用數據結構的經典使用場景非常熟悉;了解Redis的事務、RDB、AOF等機制。
掌握memcache的使用,知道與redis的區別。
了解一下MongoDB。
熟悉常用文本命令:例如wc、awk、split、diff、grep、sed等。
熟悉sort、uniq的使用。
熟練掌握ps、netstat、top等命令使用。
熟練使用Supervisor。
熟悉如何編寫shell腳本。
能夠理解Nginx的配置的含義。
該階段PHP已經非常熟悉了,擁有快速開發項目、快速解決BUG的能力。代碼遵循psr規范、穩定性很高。
熟悉消息隊列使用,在很多場景合適的選擇消息隊列進行異步解耦。
熟悉如何使用 Elasticsearch 代替MYSQL的全文搜索功能。
熟悉多進程編程。
熟悉socket編程,對于網絡IO模型有一定的認知,熟悉多路復用(select/poll/epoll)技術。
熟悉swoole框架,能應用于項目上。
不限制于框架本身,任何框架一天內快速入手。
對php的工作機制熟悉,熟悉php-fpm生命周期。
能夠知道PHP相對于c等強類型語言性能為什么會慢。
對于PHP內部的實現原理有一定的認知,例如變量的實現、zend引擎的了解。
對于PHP的擴展有一定的認知,可以編寫簡單的擴展。
熟悉大批量的數據導入導出。對于線上大表操作可能帶來的風險有預知。
熟悉分庫分表。
對主從延遲能有效解決。
對于MySQL內置的一些函數能夠熟練使用,熟悉觸發器、存儲過程的使用。
熟悉服務器核心性能優化選項 innodb_log_buffer_size、back_log、table_open_cache、thread_cache_size、innodb_lock_wait_timeout等。
對于MySQL內部索引的實現、事務隔離機制有一定的認知。
redis常用5中數據類型之外的數據結構也要能掌握一些。如bitmap、GEO、HyperLogLog、pub/sub等。
redis里的事務、管道、分布式鎖能熟練使用。
對于redis的服務端結構能有一定認知。
熟悉redis里如何使用Lua。
嘗試閱讀redis源碼。
對于nginx非常熟悉,能夠熟練配置https、負載均衡、反向代理;能夠使用 lua-nginx-module。
對awk/sed 等應用已經如火純青,能夠隨意操作控制處理文本統計分析各種復雜格式的數據。
對于tcpdump、gdb、ltrace、strace、lsof等熟練使用。
熟悉Linux應用編程:熟悉makefile使用;熟悉進程、信號、I/O知識;對于C語言有一定的了解。
熟練elk。
對于其它語言(例如java、c、golang)、其它領域(大數據)有一定的認知。
熟悉RPC、微服務架構。
能夠支持對于千萬級流量網站的正常開發維護工作。
技術無止境,未來有更多可能。
如果想快速提升Redis、MySQL等技能到第三階段,請看下文《學完這些課,快速助你提升Level》。
本文首發于公眾號"飛鴻影的博客(fhyblog)",歡迎關注。博客地址:https://52fhy.cnblogs.com。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/31620.html
摘要:創業公司或新項目如何做技術選型一個創業公司或者新項目如何做技術選型個人認為一定要記住這個根本新項目最先要解決的就是原型核心業務落地驗證商業模式。開源的最新的穩定的根據業務選定技術棧之后,盡量擁抱開源的東西。 創業公司或新項目如何做技術選型 一個創業公司或者新項目如何做技術選型?個人認為一定要記住這個根本:新項目最先要解決的就是原型核心業務落地驗證商業模式。具體實踐中,應當遵循以下原則和...
閱讀 3728·2021-11-24 09:39
閱讀 3442·2019-08-30 15:56
閱讀 1369·2019-08-30 15:55
閱讀 1030·2019-08-30 15:53
閱讀 1918·2019-08-29 18:37
閱讀 3600·2019-08-29 18:32
閱讀 3127·2019-08-29 16:30
閱讀 2917·2019-08-29 15:14