編寫可讀代碼的藝術(shù)代碼應(yīng)易于理解 二_第1頁(yè)
編寫可讀代碼的藝術(shù)代碼應(yīng)易于理解 二_第2頁(yè)
編寫可讀代碼的藝術(shù)代碼應(yīng)易于理解 二_第3頁(yè)
編寫可讀代碼的藝術(shù)代碼應(yīng)易于理解 二_第4頁(yè)
編寫可讀代碼的藝術(shù)代碼應(yīng)易于理解 二_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、代碼應(yīng)當(dāng)易于理解名字應(yīng)該有多長(zhǎng)當(dāng)選擇好名字時(shí),有一個(gè)隱含的約束是名字不能太長(zhǎng)。沒(méi)人喜歡在工作中遇到這樣的標(biāo)識(shí)符newNavigationControllerWrappingViewControllerForDataSourceOfClass名字越長(zhǎng)越難記有時(shí)候我們也可能走另一個(gè)極端,只用單個(gè)單詞或者單一字母的名字。在小的作用域里面可以使用短的名字當(dāng)你去短期度假時(shí),你帶的行李通常會(huì)比長(zhǎng)假少。同樣,作用域小的標(biāo)識(shí)符也不用帶上太多信息。也就是說(shuō),因?yàn)樗械男畔⒍己苋菀卓吹剑钥梢杂煤芏痰拿帧f(debug) map m;LookUpNamesNumbers(m);Print(m);盡管m這個(gè)名

2、字并沒(méi)有包含很多信息,但這個(gè)不是個(gè)問(wèn)題。因?yàn)槲覀円呀?jīng)有了需要理解這段代碼的所有信息。然而,假設(shè)m是一個(gè)全局變量中的類成員,如果你看到這個(gè)代碼片段:LookUpNamesNumbers(m);Print(m);這段代碼就沒(méi)有那么好讀了,因?yàn)閙的類型和目的都不明確。因此如果一個(gè)標(biāo)識(shí)符有較大的作用域,那么他的名字就要包含足夠的信息以便含義更清楚。首字母縮略詞和縮寫程序員有時(shí)會(huì)采用首字母縮略詞和縮寫來(lái)命名,以便保持較短的名字,例如,把一個(gè)類命名為BEManager而不是BackEndManager。這種名字會(huì)讓人費(fèi)解。在我們的經(jīng)驗(yàn)中,使用項(xiàng)目所特有的縮寫詞非常糟糕。對(duì)于項(xiàng)目的新成員來(lái)講他們看上去太令人

3、費(fèi)解和陌生,所以經(jīng)驗(yàn)原則是:團(tuán)隊(duì)的新成員是否能理解這個(gè)名字的含義?如果能,那可能就沒(méi)有問(wèn)題。例如,對(duì)于程序員來(lái)講,使用doc來(lái)代替document,用str來(lái)代替string是相當(dāng)普遍的。丟掉沒(méi)用的詞有時(shí)名字中的某些單詞可以拿掉而不會(huì)損失任何信息。例如ConvertToString()就不如ToString()這個(gè)更短的名字。不會(huì)誤解的名字關(guān)鍵思想要多問(wèn)自己幾遍:“這個(gè)名字會(huì)被別人解讀成其他的含義嗎?”要仔細(xì)審視這個(gè)名字。例子:Filter()假設(shè)你在寫一段操作數(shù)據(jù)庫(kù)結(jié)果的代碼: results = Database.all_object.filter(“year=2011”);結(jié)果現(xiàn)在包含哪些信息?年份小于或等于2011的對(duì)象?年份不小于或等于2011年的對(duì)象?這里的問(wèn)題是“filter”是個(gè)二義性單詞。我們不清楚他的含義到底是“挑出”還是“減掉”。最好避免使用“filter”這個(gè)名字,因?yàn)樗菀渍`解。給布爾值命名Boolean read_password = true;這會(huì)有兩種截然不同的解釋我們需要讀取密碼已經(jīng)讀取了密碼最好避免用“read”這個(gè)詞,用need_password或者user_is_authenticated這樣的名字來(lái)代

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論