(204)Replace_Magic_Number_with_Symbolic_Constant

以符號常數(字面常數)取代魔術數字

double potentialEnergy(double mass, bouble height){

    return mass * 9.81 * height;
}

轉換成

double potentialEnergy(double mass, bouble height){

    return mass * GRAVITATIONAL_CONSTANT * height;
}

static const double GRAVITATIONAL_CONSTANT = 9.81;

動機

有些時候,科學定義或是公司定義的數字都是有經過計算或是考量的

但是這些數字工程師也很難解釋為什麼或是業務才清楚

而且這數字只要業務想修改,散落的數字或Debug往往造成很多困擾

直接使用常數宣告的方式,常數不會造成效能的開銷,大大提高可讀性

往往可以用(218)Replace_Type_Code_With_Class或是用Array來取代

後繼

其實重構手法非常多種,這方式看起來超級簡單,但越簡單的動作就越容易忘記

尤其使用常數來定義,例如圓周率3.14159、或是稅率1.05,甚至還有定義稅率不一樣的狀況(不同交易模式)

所以這類有意義的數字請把它常數化吧....