在項(xiàng)目中尋找代碼的壞命名
常做的和常想的事情

晦澀的if條件
1)對(duì)于||的處理

上面的代碼要比下面的代碼理解起來(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ò)的命名
相關(guān)文章
PHP PDO函數(shù)庫(kù)(PDO Functions)
PDO是一個(gè)“數(shù)據(jù)庫(kù)訪問(wèn)抽象層”,作用是統(tǒng)一各種數(shù)據(jù)庫(kù)的訪問(wèn)接口,與mysql和mysqli的函數(shù)庫(kù)相比,PDO讓跨數(shù)據(jù)庫(kù)的使用更具有親和力.2009-07-07
php中Ioc(控制反轉(zhuǎn))和Di(依賴(lài)注入)
最近在使用ThinkPHP5框架,看了下他的源碼,發(fā)現(xiàn)有很多地方也用到了依賴(lài)注入(控制反轉(zhuǎn)),覺(jué)得有必要和大家簡(jiǎn)單聊一聊什么是依賴(lài)注入以及怎么使用它。2017-05-05
解析用PHP實(shí)現(xiàn)var_export的詳細(xì)介紹
本篇文章是對(duì)使用PHP實(shí)現(xiàn)var_export的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
php獲取當(dāng)前網(wǎng)址url并替換參數(shù)或網(wǎng)址的方法
今天在項(xiàng)目中用到的兩個(gè)函數(shù),自己寫(xiě)了下,備用,需要的朋友也可以直接使用了,推薦第一個(gè)函數(shù)為獲取,后面為相關(guān)的處理參數(shù)。2010-06-06
php+ajax實(shí)時(shí)輸入自動(dòng)搜索匹配的方法
這篇文章主要介紹了php+ajax實(shí)時(shí)輸入自動(dòng)搜索匹配的方法,實(shí)例分析了兩種實(shí)現(xiàn)方法,是非常實(shí)用的技巧,需要的朋友可以參考下2014-12-12
PHP中call_user_func_array回調(diào)函數(shù)的用法示例
這篇文章主要給大家介紹了PHP中call_user_func_array回調(diào)函數(shù)的用法,文中給出了詳細(xì)的示例代碼,相信對(duì)大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們可以參考借鑒,下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2016-11-11

