作為一名合格的PHP程式員,應該進行哪些技術儲備?
來源:互聯網
上載者:User
回複內容:
我對各種架構均毫沒有興趣,哎。
說一下我的理解
1:安全 SQL注入,跨站指令碼,XSS蠕蟲,典型的上傳漏洞及其他風險,以及CC攻擊的原理和防範,不懂安全的開發工程師一定是不合格的。
2:資料庫
能正確理解資料索引的原理,至少應包括hash索引和btree類索引,知道索引最佳化的原理和查詢效率的分析方法。 這個說上去簡單,根據我們的面試情況,未經受我們培訓的工程師,能滿足這個條件的十不及一。當然,北上廣大公司多,可能會好一些。
知道關係型資料庫和key-value資料庫,以及記憶體資料庫的各自優缺點和適用情境,可以根據具體業務訴求選擇合適的資料存放區模式。
有人會說,這不是DBA的活嗎?我一直覺得開發工程師和DBA壓根就不應該區分出來,也許我有點偏執吧,不過我們公司基本上都要求開發工程師來兼任這一工作了。
3: 調試和測試的能力
這個虛一點,只說幾個情境。
遇到各類型錯誤輸出的顯性bug,知道通過搜尋獲得輔助資料,並解決之。
遇到結果與期望不一致的隱形bug,諸如資料邏輯錯誤或者一些判斷分支錯誤的問題,知道設計斷點和輸出中間資料來逐步定位問題。
在完成較大的工作任務時,知道每個步驟環節需要獨立的測試,而不是籠統弄到一起才想到需要測試。
在業務訴求需要滿足較高訪問規模或公開暴露於外網有可能導致CC攻擊時,知道提前做壓力測試並給出效能指標。
4:代碼注釋
說注釋而非文檔,因為很難要求其他程式員一邊看文檔一邊看程式,所以代碼內的注釋其實是非常關鍵的,發布版本的代碼基於某些考慮可以取消注釋;但是要保留一份原始帶有詳盡注釋的代碼。
5:業務需求理解力
我一向認為,php不是純技術工種,更多直接面向需求,所以,對業務需求理解力越強,與有關產品人員,業務人員的溝通越順暢,工作效果會越好;相信我,每個產品人員都喜歡懂需求,易溝通的開發工程師。
6:如有可能,對營運有一點瞭解最好,因為有時候,出一些詭異bug的時候,你需要做出正確的判斷可能需要對營運環境有一定的認識。按優先順序來吧
1.PHP本身的語言特徵,安全技術,以及評價較好的架構,類似CakePHP,Symfony等,當然還有一些國內的類似ThinkPHP等良好架構。作為PHP程式員,對PHP本身的優點以及缺陷,以及各種實現細節,要做較深入的瞭解。可以通過閱讀一些比較流行的開來源程式,比如各種CMS等。世界上本不存在完美的語言,但是作為程式員,你要善於彌補語言本身,甚至團隊本身的缺陷讓自己開發的系統趨於完美。同時還需要瞭解各種網路攻擊技法,比如各種注入技術,以及駭客常用攻擊技法,從而在開發階段就及時填補各種漏洞。
2. Mysql資料庫技術。Mysql可以說和PHP結合的那是相當的緊密了,可以說沒有Mysql的話,PHP根本就不可能流行起來,所以一般都談LAMP開發。還有就是你寫的程式很大程度上瓶頸都會出在DB(尤其是在負載還不是很高的階段),所以一定瞭解資料庫的建立,最佳化技法。
3.HTML,CSS,JS等前端技術,甚至可以瞭解一些Flex等編程。不論你在PHP上使用什麼架構或架構,毫無疑問,你最終和使用者打交道的都是產生瀏覽器解析的前端代碼。那麼對這些技術的熟知無疑會加快你的工作效率,以及解決問題的能力。
4.Apache網站伺服器,Linux系統知識。這是PHP程式啟動並執行容器。瞭解一下魚缸的好壞以及結構優缺點等,無疑對養魚還是有好處的。php主要涉及到的web開發。那你的會html,css,js前端的效能要瞭解。資料庫的話主要是mysql,可以編寫以及結合項目對sql語句調優。再則linux與伺服器也得瞭解合格的PHP程式員首先是一個合格的程式員。如果確定投身程式員這一行,
php也應該只是你的開始而已。我的建議有如下幾條:
一,初級程式員,跟著項目學。初級程式員主要是掌握必備的語言知識點等。
二,中級程式員,能夠接觸一些複雜的應用,如流量過百萬,千萬的應用,經曆了這邊項目,你自然能夠對所需知識,應用自如。
三,專家程式員,對項目的反思、學習、與大牛們的交流中,逐漸形成自己的編程風格,對技術問題能有獨到的見解,會對業務、技術、團隊做整體的分析。。。
總之:程式員要通過不斷的學習達到自我完善、而程式員也只是業務團隊中的一員。技術最終還是要轉化為商業的生產力,以及商業生產率的提升。盡量不要為了學技術而學技術。技術永遠是為人服務的。學好c/c++,php預設的搞不定就去做擴充搞定。PHP程式員,雷雪松的個人部落格是一個優秀IT技術部落格。http://www.leixuesong.cn
資料庫,調試和測試的能力,代碼注釋,業務需求理解力,營運我想這些東西多少要具備些的吧,呵呵
合格的php程式員:滿足所在公司的業務和項目.
優秀的php程式員:在滿足公司業務和項目之後,再把公司業務和項目最佳化和提升
大牛級的PHP程式:在滿足公司業務和項目之後,再把公司業務和項目最佳化和提升之後,不局限於php層次去解決問題,並且在某些方面有一定的影響力!