狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

PHP代碼的優與劣

admin
2010年7月8日 1:35 本文熱度 5591
我在sitepoint做面試官的時候一定會問的問題是:你認為php代碼的優劣體現在哪里?因為這個問題可以讓我大體知道應聘者是哪種類型的程序員,而不是單純地考察他對php函數的掌握程度(這一點zend的php認證做得不錯,雅虎的php程序員面試題也屬于此類)。[br] 重要的是,這個問題可以讓我知道應聘者是否經歷過這樣的事情——從一個懶散程序員手中接過一段凌亂的代碼進行重用,或者要幫助團隊中的其他成員來處理這類事情。[br] 誠然,對于這個問題我自己并沒有一個滿意的答案,不過我知道哪些答案是我想聽到的:[br] 優良的php代碼應該是結構化的。大段的代碼應該被分割整理成一個個函數或方法,而那些不氣眼的小段代碼則應該加上注釋,以便日后清楚它們的用途。而且應該盡可能地把前臺代碼如html、css、javascript等從程序中分離出來。php的面向對象編程特性可以很好地幫助程序員將代碼整理有序。[br] 優良的php代碼應該是規范化的。無論是為變量名和函數名設定命名規則,還是對一些會重復使用的過程如數據庫操作和錯誤處理進行標準化,抑或是簡單到規定好代碼是怎樣縮進的,這些規范化都可以讓代碼的可讀性大大提高。[br] 優良的php代碼應該是自適應的。php有許多特性如magic quotes和short tags,這些特性的打開和關閉會影響到程序的運行。所以,一個好的程序員應該在他的代碼中加如適當的語句來使程序能夠根據環境進行調整。[br] 優良的php代碼應該是安全的。雖然php是一種高效、靈活的語言,沒有固定的框架,但卻把安全問題留給了程序員們。對潛在安全漏洞的深刻理解,如跨站腳本攻擊(xss)、跨站請求偽造(csrf)、代碼注入漏洞、字符編碼循環漏洞等,對于今天的專業程序員來說是至關重要的。[br] 當應聘者在回答這些問題的時候,我就能清楚地知道是否該錄用他。當然,有時程序員并不能很好地闡明這個問題,這時我們會讓他們做一些php測試。測試中的許多問題表面上看起來非常簡單,但這也給了應聘者們一個展現自我的機會,因為只要觀察得仔細,就能找出問題。[br] 下面這一小段“劣質”的php代碼是一道簡化了的測試題。這種問題就像在問:你該怎樣優化這段代碼?[br] echo("[br] search results for query: " .[br] $_get['query'] . ".[br] ");[br] ?>[br] 這段代碼的主要問題在于它把用戶提交的數據直接顯示到了網頁上,從而產生xss漏洞。其實有很多方法可以填補這個漏洞。那么,什么代碼是我們想要的呢?[br] echo("[br] search results for query: " .[br] htmlspecialchars($_get['query']) . ".[br] ");[br] ?>[br] 這是最低要求。xss漏洞用htmlspecialchars函數填補了,從而屏蔽了非法字符。[br] if (isset($_get['query']))[br] {[br] echo '[br] search results for query: ',[br] htmlspecialchars($_get['query'], ent_quotes), '.[br] ';[br] }[br] ?>[br] 能寫出這樣代碼的人應該是我想要錄用的人了。[br] * * 在輸出$_get['query']的值之前先判斷它是否為空。[br] * echo命令中多余的括號被去掉了。[br] * 字符串用單引號限定,從而節省了php從字符串中搜索可替換的變量的時間。[br] * 用逗號代替句號,節省了echo的時間。[br] * 將ent_quotes標識傳遞給htmlspecialchars函數,從而保證單引號也會被轉義。雖然這并是最主要的,但也算是一個良好習慣。[br] 可惜的是,能給出這樣讓人滿意答復的程序員少之又少。我們花了3個月的時間才招聘到讓我們滿意的程序員。[br] 那么,你會怎樣回答文章開頭提出的問題呢?你認為php代碼的優劣體現在哪里?你認為一個php程序員還應具有哪些品質?

該文章在 2010/7/8 1:35:12 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved