代碼之丑(零)
看到下面這段代碼,你會做何感想?
if(db.Next()) {
return true;
} else {
return false;
}
return true;
} else {
return false;
}
有的人會想,怎么寫得這么笨啊!但是,請放心,絕對會有人這么想,挺好的,實現功能了。這并非我臆造出的代碼,而是從一個真實的codebase上找到。
成為一個咨詢師之后,我有機會在不同的項目中穿梭。同客戶合作的過程中,我經常干的一件事是:code diff。也就是用源碼管理工具的diff功能把當天全部修改拿出來,從編碼的角度來分析代碼寫得怎么樣。
因為這個工作,我看到了許多不同人編寫的代碼,我的編碼底線不斷受到挑戰。許多東西,我以為是常識,但實際上不為許多人所知,比如上面那段代碼。
我把在看到的問題總結成一個session,與客戶的程序員分享。結束之后,有人建議,為什么不能把這些問題寫下來,與更多人分享。于是,我產生了寫下《代碼之丑》念頭,以此向《代碼之美》致敬。
最后要說的是,開始那段代碼可以寫成這樣:
return db.Next();
全站熱搜