今天,Venkat Subramaniam 就關(guān)于清除代碼異味的話題給我們做了一個(gè)非常有趣的演講。下面就是我記錄的一些他的話。
為什么我們需要有質(zhì)量的代碼?
- 敏捷開(kāi)發(fā)方法是用來(lái)應(yīng)付那些要求代碼做大量改動(dòng)的反饋信息的方法。
- 如果程序沒(méi)有用一種好的表達(dá)方式來(lái)表現(xiàn),那程序會(huì)很難讀,難維護(hù),難修改。
什么是代碼異味?
- 代碼異味是一種由寫(xiě)的很差的代碼引起的一種有臭味的感覺(jué),一種程序什么地方會(huì)有問(wèn)題的感覺(jué)
- 異味更多的是來(lái)自一種直覺(jué),而不是一種有據(jù)可查的標(biāo)準(zhǔn),當(dāng)你看到有味的代碼時(shí)你就“感覺(jué)”到了
- 如果你不把異味清除,不久之后你就會(huì)習(xí)慣這種氣味,不再對(duì)它有察覺(jué)
- 用任何語(yǔ)言都能寫(xiě)出有異味的代碼:即使最簡(jiǎn)單安全的語(yǔ)言,你也能做出天才才能想出的蠢事:)
- 我們經(jīng)常會(huì)意識(shí)不到自己在寫(xiě)很臭的代碼,經(jīng)常需要外人為我們指出這點(diǎn)
- 邊注:如果你不想刻意去批評(píng)某人的程序,不要說(shuō)“太愚蠢了”,要說(shuō)“哦,這很有意思…。可有一種更好的方法你知道嗎
重復(fù)的代碼
- 會(huì)引起程序里面多個(gè)地方相同的錯(cuò)誤
- 印度小伙:每?jī)蓚(gè)月我們都會(huì)把這相同的錯(cuò)誤修改一次
- Venkat:你們?nèi)サ袅酥貜?fù)的代碼了嗎?
- 印度小伙:你說(shuō)的這個(gè)方法不錯(cuò)!
不必要的復(fù)雜
- 程序員本質(zhì)上講高興去處理復(fù)雜的問(wèn)題
- 復(fù)雜最恐怖
異常處理
- 問(wèn):有什么比一個(gè)空的異常捕捉代碼更糟糕的?
- 答:一個(gè)帶有注釋的空異常捕捉代碼!
- Java的異常檢查:好還是不好?
- 如果你不想處理一個(gè)異常,就把它傳遞下去
- 如果你想捕捉兩個(gè)異常,使用兩個(gè)catch代碼,不要只寫(xiě)一個(gè)而用If條件處理
Switch語(yǔ)句 & 按類(lèi)型的條件判斷
- Switch語(yǔ)句和按類(lèi)型的條件判斷通?梢杂枚嘈涡詠(lái)代替
長(zhǎng)方法
- 你不能在一屏上看到整個(gè)方法
- 這通常意味著一個(gè)方法承擔(dān)這多重任務(wù)
- 難于調(diào)試
- 不可測(cè)試
- 難于重用 -> 導(dǎo)致程序員從方法的其它地方拷貝粘貼出重復(fù)的代碼
- 復(fù)雜的條件語(yǔ)句 -> 挑戰(zhàn)大腦的邏輯分析能力
- 方法長(zhǎng)度:組織歸納水平比控制代碼行數(shù)更重要
出處:外刊IT評(píng)論
責(zé)任編輯:bluehearts
上一頁(yè) 下一頁(yè) 清除代碼異味 [2]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|