我眼中的如何成為一名合格的PHP高級開發工程師
- 2019 年 10 月 18 日
- 筆記
轉眼間搞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屬於後端,避免不了和Android和IOS打交道,約定好介面的規則,咱們寫好介面,然後出數據,項目細節的溝通,欄位的預留。通訊安全的考慮,這些都需要了解到。
Android和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.