在项目中寻找代码的坏味道(命名)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??上面的代碼要比下面的代碼理解起來(lái)花更多的時(shí)間
?
盡管減少代碼行數(shù)是一個(gè)好目標(biāo),但把理解代碼所需的時(shí)間最小化是一個(gè)更好的目標(biāo)。
?
? 返回值?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??上面的"$ret"是“我想不出名字“的托詞。與其使用這樣空洞的名字,不如挑一個(gè)能描述這個(gè)實(shí)體的值或者目的的名字。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?$alias聲明了這個(gè)變量是用來(lái)承載別名的——標(biāo)明了這個(gè)變量的目的。并且可能幫我們找到缺陷
好的名字應(yīng)當(dāng)描述變量的目的或者它所承載的值。
?
臨時(shí)變量 ?這里的$i是“我的臨時(shí)變量",專(zhuān)門(mén)用來(lái)讓統(tǒng)計(jì)數(shù)據(jù)自動(dòng)增加,避免統(tǒng)計(jì)點(diǎn)的重復(fù)。但是對(duì)這個(gè)$i來(lái)講最重要的并不是臨時(shí)變量。用charset_index表示“我的統(tǒng)計(jì)數(shù)據(jù)的下標(biāo)”,更具“描述性”。 循環(huán)迭代器 我在我的js代碼中也發(fā)現(xiàn)了壞味道。? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?i變量名字很空泛,所以不要這么做。
?
像i,j,iter和it等名字常用做索引和循環(huán)迭代器。盡管名字很空泛,但是大家都知道它們的意思是“我是一個(gè)迭代器“。——實(shí)際上你用這些名字來(lái)表示其他含義,那會(huì)很混亂。所以不要這么做。
?
如果你非要用i,j,it這樣空泛的名字,那么你要有個(gè)好的理由說(shuō)服自己。
總結(jié) 我們?cè)诰幋a的過(guò)程中,多花幾秒鐘想出一個(gè)好名字,你會(huì)發(fā)現(xiàn)我們的“命名能力“很快提升上去。 我一般是先想中文名字,如果實(shí)在想不出對(duì)應(yīng)的英文名字,我就會(huì)用翻譯工具把想到的中文貼上去,然后進(jìn)行裁剪命名變量或者函數(shù)名稱(chēng)。 贈(zèng)送一張最近看到的不錯(cuò)的命名 推薦 超強(qiáng)干貨來(lái)襲 云風(fēng)專(zhuān)訪(fǎng):近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的在项目中寻找代码的坏味道(命名)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 快速读懂邮件头信息
- 下一篇: 写在11期培训班第五次课后作业前面的话