java中常量池在哪里 為什么阿里巴巴Java開(kāi)發(fā)手冊(cè)中不允許魔法值出現(xiàn)在代碼中?
為什么阿里巴巴Java開(kāi)發(fā)手冊(cè)中不允許魔法值出現(xiàn)在代碼中?其實(shí)大多數(shù)的開(kāi)發(fā)規(guī)范都會(huì)禁止魔法值(未經(jīng)預(yù)先定義的變量)的使用,因?yàn)樗嬖谥芏嗟谋锥?。魔法值容易出錯(cuò)。當(dāng)在代碼中多次使用同樣字面值時(shí),如果出
為什么阿里巴巴Java開(kāi)發(fā)手冊(cè)中不允許魔法值出現(xiàn)在代碼中?
其實(shí)大多數(shù)的開(kāi)發(fā)規(guī)范都會(huì)禁止魔法值(未經(jīng)預(yù)先定義的變量)的使用,因?yàn)樗嬖谥芏嗟谋锥恕?/p>
- 魔法值容易出錯(cuò)。當(dāng)在代碼中多次使用同樣字面值時(shí),如果出現(xiàn)了拼寫錯(cuò)誤,那么程序?qū)?huì)發(fā)生不可預(yù)料的錯(cuò)誤,而且這種錯(cuò)誤難以在前期發(fā)現(xiàn)。而如果使用變量,IDE和編譯器等就可比較容易發(fā)現(xiàn)錯(cuò)誤,減少像題中出現(xiàn)鍵值不相同的情況發(fā)生。
- 魔法值難以修改維護(hù)。當(dāng)我們需要修改多次出現(xiàn)的魔法值時(shí),我們就要進(jìn)行查找之后再修改,有時(shí)一些魔法值容易與其他代碼混淆,此時(shí)修改工作就十分困難了。而預(yù)先定義的變量?jī)H需修改一處就可以了,明顯更為方便。
- 魔法值降低代碼可讀性。當(dāng)代碼中遍布魔法值,尤其是一些魔法數(shù)字的時(shí)候,除非有詳盡的注釋,否則其他人很難弄清魔法值的含義,代碼開(kāi)發(fā)者自己也不容易記得。而使用合適的名稱進(jìn)行變量命名,可讀性就會(huì)大大增加。
在開(kāi)發(fā)中應(yīng)養(yǎng)成良好的編碼習(xí)慣,避免魔法值的使用,提高代碼的正確性和可維護(hù)性。