**是從命名開始的,我們給類、方法、變數和引數命名,我們也給解決方案、工程、目錄命名。在編碼時,除了應該遵守程式語言本身的命名規範外,我們應該提供好的命名。好的命名意味著良好的可讀性,讀你**的人無需太多的注釋,就能通過名稱知道它是什麼,它能做什麼事兒,以及它應該怎麼用。
我們命名、命名,不斷地命名。既然有這麼多命名要做,我們不妨做好他。
取個名字很簡單,取個好的名字就不那麼容易了。快速隨意地取個名字,還不如花點時間取個好名字,因為好名字省下來的時間要比花掉的多。
假設你在程式中使用了不好的命名,將來有人讀到你的程式時,他人可能會難以理解,於是去詢問你。由於時間有點久遠了,你需要花時間回憶當時的場景和邏輯。也許你能想起來,也許你忘記了它的確切含義,以至於最終你給到他人的答覆是模糊不清的。
仔細算算吧,你們為了理解這些不好命名的含義,已經花了太多的時間了。
可以從以下幾點出發,去取個有意義的名字。(以下內容,總結自《clean code》)
以上這些point,是除了程式語言本身的命名規範之外,你需要額外考慮的。不好的命名能混淆程式設計師的認知,給開發帶來很多困擾。好的命名也不是一刻就能實現的,有時候限於你對系統和業務的理解,你可能難以給定乙個「精確」的名稱,但隨著你掌握更深的業務,那些不好的名稱你應該再反覆推敲並調整。
前面講了那麼多關於「命名」的事兒,都是為本文要講的重構策略「重新命名」做鋪墊。
如果你使用visual studio開發程式,你可以借助一些工具來重新命名,例如resharper,這個工具還提供了良好的命名建議。
下面的**為了描述員工的姓名和計算小時收入的方法。
public abstract class person很顯然,這段**提供了難以理解的命名。public decimal clchrlypr()
}
於是對這段**做了3處重構:
// changed the class name to employee命名是程式設計師的基本功,很多程式設計師顯然沒有完全掌握這個基本功。如果你想成為乙個優秀的程式設計師,良好的命名是必備的素質,它雖然不會體現出你會什麼技術,但它會縱貫你整個程式設計生涯。public class employee
public decimal calculatehourlypay()
}
做好程式設計,從命名開始。
小酌重構系列目錄彙總
關注keepfool
小酌重構系列 12 去除上帝類
神說 要有光 就有了光。聖經 上帝要是會寫程式,他寫的類一定是 上帝類 程式設計師不是上帝,不要妄想成為上帝,但程式設計師可以寫出 上帝類 上帝是唯一的,上帝的光芒照耀人間,上帝是很愛面子的,他知道程式設計師寫了 上帝類 搶了他的風頭,於是他降下神罰要懲戒程式設計師。既然你寫了 上帝類 那麼就將你流...
小酌重構系列 17 提取工廠類
在程式中建立物件,並設定物件的屬性,是我們長幹的事兒。當建立物件需要大量的重複 時,看起來就不那麼優雅了。從類的職責角度出發,業務類既要實現一定的邏輯,還要負責物件的建立,業務類幹的事兒也忒多了點。物件建立也是 一件事 我們可以將 這件事 從業務 中提取出來,讓專門的類去做 這件事 這個專門的類一般...
小酌重構系列 21 避免雙重否定
在自然語言中,雙重否定表示肯定。但是在程式中,雙重否定會降低 的可讀性,使程式不易理解,容易產生錯覺。人通常是用 正向思維 去理解一件事情的,使用雙重否定的判斷,需要開發者以 逆向思維 的方式去理解它的含義。另外,在寫程式時,符號很容易被疏忽和遺漏,一不小心則會編寫出錯誤的 從而產生bug。所以,在...