轉眼間搞PHP已超過10年準確的說12年,混在帝都,也經歷過大公司小公司,有個同行朋友問我,我就思考下,如何成為一名合格的PHP高階開發

所有的所有僅限綜合知識,因為PHP其實內容也很多,有的人專門研究框架,你讓一個只使用框架的人去和專門研究的PK 沒有可比性。

那麼咱們開始,專門從技術角度來闡述此問題。

技術概述

對應PHP開發來說最熟悉的就是lamp/lanp

linux+apache/nginx/+mysql/mariadb+php/perl  其他也肯定涉及 h5+css3+jquery

這些是名義上的,但是還有很多細節的,比如現在流行的小程式 公眾號開發  這些也算是現在的範疇 至少要很熟悉因為是潮流

很多人抱怨老技術,就是沒有跟上時代去學習各種流行的內容,所以保持一顆上進的心是非常有必要的。  

 

1 apache/nginx  所謂的httpd

apache的2種工作模式的區別,除錯conf檔案,檢視日誌,多站點配置,配置檔案裡面的常見程式碼的意思,應該知道的。

我曾經想專門把配置檔案給背下來,發現比較難,常用才是硬道理。在很多大公司 ,這些都是運維的事情,咱們只需要上傳程式碼即可,

既然你的目標是高階,那麼掌握這些是必須的。

 

2 linux   centos freebsd

各種版本的linux的隨便一個,需要熟悉到啥程度,安裝個環境,算是起步要求吧,不要求熟悉的那麼強。常見的命令cp  link   mv,環境和軟體的安裝yum源或者編譯安裝,

配置檔案的線上編輯vi/vim,設定開機自啟動,程序檢視,虛擬化啥的,自己感興趣就自己多學學吧,學無止境。

 

3 mysql新的版本叫mariadb

如果是涉及高階,就別提crud了,起碼資料庫的log日誌恢復,sql程式碼的查詢優化,索引要求算是起步了。可以mysql的日誌,找到慢日誌查詢,然後細節優化。

不常見的資料,分到別的庫裡面,很大的表拆分成多個表,之前維護過DZ的時候 帖子表幾十個G了,分成8個小的表。innodb表和myisam表的區別,各種表的欄位細節的區別

int tingyint float  細節區別,這裡就不提了。

 

4 php 世界上最流行的語言

基礎就不提了,至少要會2個框架吧 一個是thinkphp 一個是laravel 雖然最新的tp5和laravel比較像。但是作為國內和國外最流行的框架,會這倆無可厚非。其實大公司都有自己的框架,我之前從事過的幾個公司,都是有自己的框架,其實學會了以上二者,其他的框架相對基本都差不多,都是基於mvc模式的。

其實關於會這個詞,有點寬泛。很多人用框架都是在控制器中寫SQL,其實框架有很多細節的規範,我理解的會不要求所有都用框架的結構,但是核心的設計思想咱們要遵循。

該使用的路由規則咱們需要遵循,模型的東西就寫到MODEL裡面,VIEW裡面肯定不能PHP程式碼。

框架學會了,原生的PHP也需要會寫,由於後期一直使用框架,最近手寫了原生的程式碼,各種不適應,這個是基礎咱們不能忘。

 

5 關於正則

正則這個是好東西,很多地方都會用,所以這裡提一下。

索性這個東西各處都是通用的,如果是高階的要求,那麼根據要的規則,自己通過查資料,可以寫出正則 我覺得算是最低的要求。

要是連^$ \d [] {} 這些都看不懂的話,作為一個高階真的不合適。

 

6 關於JS/jquery

對dom物件的元素操作要求需要會的,各種層的移動,層內的各種元素input radio的,ajax 這些都不用提了。

啥表單驗證,全部都是基礎,你肯定會的。

 

7 CSS和H5和bootstrap

其實我本人的CSS比較弱,一直從事的是比較後端的工作,但是客戶肯定有前端的需求,在大公司工作,這些全部有前端搞定,但是通過搜尋咱們也可以解決很多問題

magin,等各種的用法咱們也要理解使用。其實h5先進很多了,有很多基礎的表單了啥的校驗,沒事多看看,真的很好用。其實bootstrap是給後端用的前端框架,

很多使用者使用他開發後臺管理介面,其實bootstrap真的很好用。瞭解個前端框架吧挺好對和前端配合有很大的幫助。啥VUE 有空可以看看。

 

8 關於API

PHP屬於後端,避免不了和安卓和IOS打交道,約定好介面的規則,咱們寫好介面,然後出資料,專案細節的溝通,欄位的預留。通訊安全的考慮,這些都需要了解到。

安卓和IOS屬於展示層,所以後端的校驗安全一定要細節。

 

9 關於流行

公眾號和小程式的開發

公眾號的開發和小程式的開發

公眾號比較多的就是支付和微信校驗,其他的寫PHP程式碼一樣,但是至少咱們要寫一遍,知道這些細節。

小程式就是騰訊自己出的前端框架,咱們也需要寫個練習版的,起碼知道小程式的來龍去脈。

 

10 想想還有啥 那就是一些管理了

git了,svn了,這些在提感覺都老到掉牙了。是老掉牙了,但是如果做為一個高階,需要你把SVN的環境給搭建下吧,然後管理下吧,

然後發賬號給這些人吧。

 

11  關於程式碼規範

為啥要提這個,其實從程式碼上  只看程式碼不看程式碼的細節的話。你說一個搞了3年的,和一個搞了5年的,你是真看不出區別。

但是你看程式碼細節的話 就能看出來,程式碼的規範方便自己也方便他人。看著寫的整潔的程式碼,其實你自己也舒服。

 

12 關於http的整個操作路程

使用者在瀏覽器輸入網址到使用者看到資料,整個的請求發起和返回的流程,會非常容易幫助你解決未來的問題。

 

13 關於大流量

大流量是一套解決辦法,一些前輩多次告誡,沒有大流量的實操經驗,身價永遠上不來,說的挺有道理。剛開始每次都說大流量,

自己也想那些大網站58了  百度了,都說怎麼轉的。其實大流量是一套解決方案,說白了不是一個人的事情。

CDN,負載均衡的設定,快取伺服器的相關,資料庫伺服器的讀寫分類和分庫分表,我所涉及的也就是百萬級別的,在高咱也接觸不到。

其實現在阿里雲已經完全實現了以上的很多功能,作為一個老鳥,可以通過幾天的學習和阿里雲的培訓實現以上功能。

我曾經也參加過AWS的會議,他們也有類似的解決方案,其實我估計騰訊雲和百度雲都有。

 

14 關於其他語言

和框架需要學習2種一樣,語言怎麼也得在學一個,比如python。2種語言都對比才有傷害,重新學習一門語言對另外一門語言,其實在學習的過程中,會增加相互認識。

有人問會產生影響嗎,會影響。時間長了就習慣了。我在學習python的過程中,才瞭解到python的強大,可以寫電腦軟體開發遊戲,可以寫爬蟲抓資料,還可以寫網站。

uwsgi,u威士忌,哈哈。

 

15  最後的最後 關於一些知識

區塊鏈,網站SEO,電腦維修,dedecms,discuz,wordpress,設計模式

常見的知識,區塊鏈火了一陣咱們要知道他是啥,咱們需要了解和學習完善自己。dede和dz都不是典型MVC架構的,程式碼看看除錯除錯是可以通的。

wordpress也挺好的,設計模式,每次面試都考,實際上咱們也不寫框架,說白了實踐機會少。鏈式模式和觀察者模式到底咋樣用。但是工廠模式是怎麼玩的咱們要知道的。

類的繼承,抽象的介面是啥,抽象類,關於PHP5的設計模式有空多看看。真要自己寫框架,肯定用的上。

 

16 關於架構

做了好多的專案,來了一個新專案,有目標需求,那麼你可以來設計整個專案的架構了,比如流量需求1000萬的專案架構和搭建是如何的。

根據使用者來選擇哪種語言,哪種團隊人手,每個崗位幾個人,早晚要當leader的。到時候啥都明白了。

 

17  最後寫給新人的一些話

高手不是一天練成的,光學習也是練不成高階的,大量的專案實踐才能打造足夠強大的你。當你有了在團隊中多年的專案經驗,有些職位的轉行,其實你自己就會有思考。

寫個BLOG吧,記錄自己的學習經歷,隨著年齡的增長你會發現記憶力不是想象中的好。

最後祝願各位看的人,一切順利,88.