AV大片,日韩伦理一区,国产在线a,开心播播网婷婷在线

哈爾濱今日靈圖

[其他技能培訓]
獵學網(wǎng)訂閱號
獵學網(wǎng)官方企業(yè)微信
位置: 獵學網(wǎng) > 學校機構(gòu) > 哈爾濱今日靈圖 > 學習資訊> PHP中的防御性編程.今日圖靈

PHP中的防御性編程.今日圖靈

47 2017-04-19

防御性編程是什么意思

防御性編程,簡單的說,就是在編程的時候有目的地預測可能的故障點。目的是在那些可能發(fā)生的問題發(fā)生前解決它們。預測意料之外的事情本來就有內(nèi)在的難度,當你想要預測意料之外的事情并且解決它就更是難上了好幾倍。

下面我們看幾個實際的例子。

條件語句

這是最容易進行防御性編程的地方之一,也是最容易滿足的地方。在用PHP編程的許多情況下你不會需要“else”。

假設,你在寫一個函數(shù)并且需要一個條件語句。在這里,你只需要為你特定的變量使用三個條件語句如下:

if($var==a){}

elseif($var==b){}

elseif($var==c){}

沒有其他可能性了,你說,并且繼續(xù)碼代碼。但是,讓我們在這里停一下。我知道你知道這里沒有其他可能性了。并且我相信你。但有時候情況會發(fā)生。我們忘掉了一些情況。我們檢查錯誤。我們最終重用了一些代碼,超出了原本的預定范圍。突然我們有了泄露錯誤或者有時候是靜默的錯誤狀態(tài),因為我們沒有使用catch。使用else代碼塊。在使用switch時要使用default。用它們來返回或者記錄錯誤,這樣你才知道發(fā)生了什么。雖然會多用兩行代碼,但當一些你無法預測的事情發(fā)生時,這是值得的。

絕不相信用戶輸入

你以前有沒有聽說過這個說法?大多數(shù)程序員聽過。這有一點含糊,通俗點講,理所當然。但它是真理。你絕不應該相信用戶輸入。這不是說你假設所有用戶是瘋狂的黑客,他們使用一些精心設計的命令來摧毀你的應用。但是,你應該假設用戶不知道你的代碼,他們不知道你需要填寫什么參數(shù),或者參數(shù)應該多長。他們不知道什么文件類型或者什么大小能上傳。偶爾他們會是機器或者黑客并且他們希望在他們的輸入中運行腳本,有時候甚至是在登陸后的輸入中。你怎么知道你能相信認證或者驗證碼能在用戶輸入之前提供一個安全的堡壘?

對你的代碼的假設

不要假設任何事情。如果前面主題教會我們一些事情的話,那就是我們不應該做任何假設。作為程序員,尤其是致力于一個項目太久后,我們開始做很多假設。我們假設用戶知道一些我們知道的事情。不一定是技術細節(jié),也可以是程序的功能性細節(jié)。我們假設用戶知道文件能有多大因為。。。我們已經(jīng)知道。或者他們知道為了讓郵件腳本。。。但事實不是,他們不知道以上任何東西。這好像更多的是前端的工作,但明顯的是你在后端仍然要處理用戶行為和用戶輸入,所以值得好好想想。

另一個許多程序員都會做的驚人的假設是我們在任何時候?qū)τ谖覀兊暮瘮?shù),類或者其它代碼段的明顯的功能屬性。一個具有防御性的程序員會仔細考慮的不僅僅是用一般的文檔來描述函數(shù)是干什么的——他們也將寫下他們對輸入,參數(shù),用例,或任何其他類似的東西做出的任何假設。因為我們都是人,我們過一段時間會忘掉一些事。我們最后也很可能會面臨其他人維護,擴展或者替換我們的代碼。如果沒有別的,回想一下,編程是發(fā)生在一個充滿技術變革的世界里。如果你的應用仍然能使用幾年,可能會升級PHP版本并且失去一些功能,或者一些你自己代碼里面具有交互的組件之間需要改變。預測這些是很困難的,所以好的注釋和文檔是非常重要的。

視野狹窄

另一件可以使我們忘記好的評論實踐以及標準的東西是視野狹窄。許多程序員都具有視野狹窄的毛玻你知道這種感覺-你解決問題,你處于最佳狀態(tài)。你覺得與你的音樂獨立于自己的小世界中,并且你就在編碼,突然兩小時過了,你意識到你已經(jīng)寫了無數(shù)行沒有注釋的代碼。我們所有人偶爾都會遇到這種事情,但重要的是在某處發(fā)現(xiàn)這個情況并且補上應有的注釋。

語法和命名的一致性

一致性是一個灰色地帶–它更多的是關于編碼標準之類的,但它和防御性編程也有聯(lián)系。在PHP中,有標準規(guī)范你的代碼格式以便別人查看,或者你以后使用。但常常沒人讓你的代碼標準化。但是無論你是否按照標準編碼,你至少要保持一致性–這能讓你少犯錯誤。這對于需要大量時間返回并且修復的小的語法錯誤尤其適用。如果你總是使用相同的間隔,格式和語法,命名規(guī)格等等你就能更好的避免犯錯以至于誤讀你自己的代碼。你更可能快速瀏覽代碼并且找到你需要的東西。

溫馨提示: 專業(yè)老師1對1為您解答    馬上填寫,¥1000 元豪禮免費領!

掃一掃
獲取更多福利

×
獵學網(wǎng)
试看波多野结衣| 色综合精品久久久久久久| 天天x天天干天天操| 鸥美黄片一区二区三区| 色伦专区97中文字幕| 97久久无码精品| 草吧av| 国产成人亚洲综合网站| 国产88视频| 超级污的网站在线播放| 波多野结衣中文字幕一区| 人妻插p| 日本永久免费观看片| 欧美毛多水多肥妇| 黄色网站干倒着干| 337P中国人体啪啪| 综合伊人爱| 日本色鬼在线观看| a级视频免费看| 国产乱子伦60女人的皮视频| 2020日日干夜夜操| 在线丁香五月激情| 女人的天堂av| 国产一区两区网站| 亚洲欧美最新| 日本一区二区欧美| 亚洲第一综合视频| 四虎影院之中文字幕| 毛片三A级无码久久久一区| 无码第二页| 91啦白浆| av网| 开心五月婷婷色播| 日韩伦理AV综合| 蜜臀AⅤ国产精品久久久国产老师| 不卡AV二区中文| 日韩一区二区三区高清| 国产精品视频深夜伊人| 一本岛高清v一三区| 久久久精品专区| 天堂岛国av无码免费无禁网站 |