寫規范代碼的意義------去除魔法數字


  畢業后,我導師跟我說,寫代碼不要用魔法數字,不要用魔法數字。最初只是知道,並沒有深切的體驗。隨着寫代碼多了,就有體會了。

 

  畢業出來了,從最開始一拿到需求就忙着開發,但現在拿到需求,看看需求有什么漏洞,然后羅列出需求的業務邏輯。實現常用功能基本沒有技術障礙了。也知道寫個好代碼是那么難,那么有意義。很經常看到這樣的代碼.

String name="xiaoming";
    if(name.equals("xiaoming")){
        System.out.println(name);
    }

代碼業務邏輯也沒有錯,但是直接拿字符串來比較以前我經常做,那天需求需要把'xiaoming'改為其他的名字,比如'xiaohong'。哪怕是自己寫的代碼,如果多處用了這樣的代碼,修改起來都擔心有某些地方沒有修改到。

  用常量或者參數,不用魔法數字或者字符串,我知道兩個好處。這兩個好處,我目前深深地體會到了。

  1)代碼更容易看懂,代碼邏輯更清晰。看到代碼就知道意義。業務邏輯中常用數字代表特定的意義。比如1:開啟,0:關閉。如果直接看到數字,什么鬼?我都不知道是什么。

  2)代碼維護和優化更容易。如果隨便用魔法數字,那么如果要修改,我自己都怕,鬼知道,這個魔法參數,和其他代碼上的聯系。比如,一個地方的數字“1”和另一個地方的數字“1”,這連個“1”他們是親戚嗎?誰知道!

 

  我舉個例子

private static final int open=1;
   private static final int close=0;
    
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    
    
    int status=0;
    if(status == open){
        System.out.println("狀態開啟。。");
    }
    
    }

 上面寫的代碼,一看就知道 表示狀態為open的時候,if跟着的業務邏輯。清晰可見。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM