自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

你是優(yōu)秀的PHP程序員嗎?

企業(yè)動(dòng)態(tài)
作為程序員,在一般情況下入職前總要經(jīng)過(guò)面試。如果你是一個(gè)面試官,你會(huì)問(wèn)PHP面試者什么問(wèn)題呢?如果你希望找到一個(gè)優(yōu)秀的PHP程序員,你又將如何去做呢?你又是否知道一個(gè)優(yōu)秀的PHP程序員至少應(yīng)該了解些什么呢?

前言:

作為程序員,在一般情況下入職前總要經(jīng)過(guò)面試。如果你是一個(gè)面試官,你會(huì)問(wèn)PHP面試者什么問(wèn)題呢?如果你希望找到一個(gè)優(yōu)秀的PHP程序員,你又將如何去做呢?你又是否知道一個(gè)優(yōu)秀的PHP程序員至少應(yīng)該了解些什么呢?你或許會(huì)從本文中得到答案。

我在SitePoint做面試官的時(shí)候一定會(huì)問(wèn)的問(wèn)題是:你認(rèn)為PHP代碼的優(yōu)劣體現(xiàn)在哪里?因?yàn)檫@個(gè)問(wèn)題可以讓我大體知道應(yīng)聘者是哪種類(lèi)型的程序員,而不是單純地考察他對(duì)PHP函數(shù)的掌握程度(這一點(diǎn)Zend的PHP認(rèn)證做得不錯(cuò),雅虎的PHP程序員面試題也屬于此類(lèi))。重要的是,這個(gè)問(wèn)題可以讓我知道應(yīng)聘者是否經(jīng)歷過(guò)這樣的事情——從一個(gè)懶散程序員手中接過(guò)一段凌亂的代碼進(jìn)行重用,或者要幫助團(tuán)隊(duì)中的其他成員來(lái)處理這類(lèi)事情。

誠(chéng)然,對(duì)于這個(gè)問(wèn)題我自己也沒(méi)有一個(gè)滿(mǎn)意的答案,不過(guò)我知道哪些答案是我想聽(tīng)到的:

優(yōu)秀的PHP代碼應(yīng)該是結(jié)構(gòu)化的。大段的代碼應(yīng)該被分割整理成一個(gè)個(gè)函數(shù)或方法,而那些不起眼的小段代碼則應(yīng)該加上注釋?zhuān)员闳蘸笄宄鼈兊挠猛尽6覒?yīng)該盡可能地把前臺(tái)代碼如HTML、CSS、Javascript等從程序中分離出來(lái)。PHP的面向?qū)ο缶幊烫匦钥梢院芎玫貛椭绦騿T將代碼整理有序。

優(yōu)秀的PHP代碼應(yīng)該是規(guī)范化的。無(wú)論是為變量名和函數(shù)名設(shè)定命名規(guī)則,還是對(duì)一些會(huì)重復(fù)使用的過(guò)程如數(shù)據(jù)庫(kù)操作和錯(cuò)誤處理進(jìn)行標(biāo)準(zhǔn)化,抑或是簡(jiǎn)單到規(guī)定好代碼是怎樣縮進(jìn)的,這些規(guī)范化都可以讓代碼的可讀性大大提高。

優(yōu)良的PHP代碼應(yīng)該是自適應(yīng)的。PHP有許多特性如magic quotes和short tags,這些特性的打開(kāi)和關(guān)閉會(huì)影響到程序的運(yùn)行。所以,一個(gè)好的程序員應(yīng)該在他的代碼中加入適當(dāng)?shù)恼Z(yǔ)句來(lái)使程序能夠根據(jù)環(huán)境進(jìn)行調(diào)整。

優(yōu)良的PHP代碼應(yīng)該是安全的。雖然PHP是一種高效、靈活的語(yǔ)言,沒(méi)有固定的框架,但卻把安全問(wèn)題留給了程序員們。對(duì)潛在安全漏洞的深刻理解,如跨站腳本攻擊(XSS)、跨站請(qǐng)求偽造(CSRF)、代碼注入漏洞、字符編碼循環(huán)漏洞等,對(duì)于今天的專(zhuān)業(yè)程序員來(lái)說(shuō)是至關(guān)重要的。

當(dāng)應(yīng)聘者在回答這些問(wèn)題的時(shí)候,我就能清楚地知道是否該錄用他。當(dāng)然,有時(shí)程序員并不能很好地闡明這個(gè)問(wèn)題,這時(shí)我們會(huì)讓他們做一些PHP測(cè)試。測(cè)試中的許多問(wèn)題表面上看起來(lái)非常簡(jiǎn)單,但這也給了應(yīng)聘者們一個(gè)展現(xiàn)自我的機(jī)會(huì),因?yàn)橹灰^察得仔細(xì),就能找出問(wèn)題。

下面這一小段“劣質(zhì)”的PHP代碼是一道簡(jiǎn)化了的測(cè)試題。這種問(wèn)題就像在問(wèn):你該怎樣優(yōu)化這段代碼?

echo("

Search results for query:".

     $_GET['query'].".

");?>

這段代碼的主要問(wèn)題在于它把用戶(hù)提交的數(shù)據(jù)直接顯示到了網(wǎng)頁(yè)上,從而產(chǎn)生XSS漏洞。其實(shí)有很多方法可以填補(bǔ)這個(gè)漏洞。那么,什么代碼是我們想要的呢?

echo("

Search results for query:".

     htmlspecialchars($_GET['query']).".

");

?>

這是最低要求。XSS漏洞用htmlspecialchars函數(shù)填補(bǔ)了,從而屏蔽了非法字符。

if(isset($_GET['query']))

{

echo'

Search results for query:',

     htmlspecialchars($_GET['query'],ENT_QUOTES),'.

';

}

?>

能寫(xiě)出這樣代碼的人應(yīng)該是我想要錄用的人了:

*

* 在輸出$_GET['query']的值之前先判斷它是否空。

* echo命令中多余的括號(hào)被去掉了。

* 字符串用單引號(hào)限定,從而節(jié)省了PHP從字符串搜索可替換的變量的時(shí)間。

* 用逗號(hào)代替句號(hào),節(jié)省了echo的時(shí)間。

* 將ENT_QUOTES標(biāo)識(shí)傳遞給htmlspecialchars函數(shù),從而保證單引號(hào)也會(huì)被轉(zhuǎn)義。雖然這并不是最主要的,但也算是一個(gè)良好的習(xí)慣。

可惜的是,能給出這樣讓人滿(mǎn)意答復(fù)的程序員少之又少。我們花了3個(gè)月的時(shí)間才招聘到讓我們滿(mǎn)意的程序員.

那么,你會(huì)怎樣回答文章開(kāi)頭提出的問(wèn)題呢?你認(rèn)為PHP代碼的缺點(diǎn)體現(xiàn)在哪里?你認(rèn)為一個(gè)PHP程序員還應(yīng)具有哪些品質(zhì)?

【編輯推薦】

  1. 修煉一名程序員的職業(yè)水準(zhǔn)
  2. 程序員職業(yè)規(guī)劃之魔鬼金字塔
  3. 程序員生涯之我見(jiàn) 找到自己的興趣所在
責(zé)任編輯:張攀 來(lái)源: 百度空間
相關(guān)推薦

2009-01-08 09:04:18

2014-12-04 10:02:55

2012-05-25 10:54:24

程序員

2015-06-30 09:20:09

2009-05-21 15:58:12

程序員工作經(jīng)驗(yàn)職場(chǎng)

2012-11-09 13:44:48

ScalaJVMJava

2015-04-10 19:37:34

程序員

2015-06-24 10:33:17

程序員擅長(zhǎng)數(shù)學(xué)

2015-08-03 09:09:20

程序員腦子快

2017-11-14 21:30:15

2013-04-15 09:44:01

程序員

2009-06-02 13:43:04

程序員定義職場(chǎng)

2015-04-08 11:09:28

優(yōu)秀程序員深入理解你的代碼

2015-09-01 11:20:58

程序員糟糕代碼

2015-08-31 10:14:30

程序員處理代碼糟糕代碼

2014-08-29 11:09:44

程序員

2012-08-28 09:15:19

程序員

2016-03-04 11:06:20

更優(yōu)秀程序員

2012-12-28 09:58:50

程序員代碼編程

2014-11-07 16:57:21

程序員
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)