天天看點

我眼中的如何成為一名合格的PHP進階開發工程師

轉眼間搞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.