Code Smell 107 - 変数の再利用


Code Smell 107 - 変数の再利用

変数を再利用すると、スコープと境界をたどるのが難しくなります

TL;DR: Don't read and write the same variable for different purposes



問題


  • 可読性
  • 隠れた問題

  • ソリューション


  • 変数を再利用しないでください
  • スコープを分離するには

  • 環境



    スクリプトをプログラミングするときは、変数を再利用するのが一般的です.

    これは混乱を招き、デバッグを困難にします.

    可能な限り範囲を狭める必要があります.

    サンプルコード



    違う




    // print line total
    double total = item.getPrice() * item.getQuantity();
    System.out.println("Line total: " + total );
    
    // print amount total 
    total = order.getTotal() - order.getDiscount();
    System.out.println( "Amount due: " + total );
    
    // variable is reused
    



    function printLineTotal() {
      double total = item.getPrice() * item.getQuantity();
      System.out.println("Line total: " + total );
    }
    
    function printAmountTotal() {
      double total = order.getTotal() - order.getDiscount();
      System.out.println( "Amount due: " + total );
    }
    

    検出



    [×] 自動

    リンターは解析ツリーを使用して、変数の定義と使用法を見つけることができます.

    タグ


  • 可読性

  • 結論



    変数名の再利用は避けてください.より具体的で異なる名前を使用してください.

    関係







    より詳しい情報






    クレジット



    SigmundUnsplashによる写真


    Simplicity before generality, use before reuse.



    ケブリン・ヘニー






    この記事は CodeSmell シリーズの一部です.