JavaScriptに適用されるクリーンコードII変数


このポストは、「クリーンコード」であるが、JavaScriptに適用されるよく知られている話題を調査する面白い一連のポストの第2です.
このシリーズでは、すべてのプログラマが知っている必要がありますが、特定のJavaScript/TypesScript言語に適用されるクリーンコードの周りの古典的なヒントを議論するつもりです.
  • Part I. Before your start.
  • Part II. Variables.
  • 導入


    このポストでは、我々が基本的なヒントとアドバイスを提示するつもりです.
    すべての例はJavaScriptで説明されていますが、これらの良いプラクティスはプログラミング言語「金属に最も近い」を含むどんなプログラミング言語でも適用されるべきです.私はこのコメントをします.なぜなら、CやGoのような言語で働いている同僚と議論しているからです.それから、私は、誰かが改善しようとする限り、デッキを壊す最初のものでなければならないと常に答えます.しかし、このコメントは、これらの実行の利点と欠点が議論される同僚の間の長くて楽しい会話を提供します.
    したがって、我々は変数に特に適用される良いコードを生成するために、ヒントから始めます.

    意図を明らかにする


    変数名はその変数の意図を明らかにしなければなりません.つまり、数学ソフトウェアを開発していない限り、“x”や“y”のような名前を持つ変数を持つべきではありません.数学の文脈では、それらの名前は正確です、しかし、変数自体で他の情報を保存している場合、変数自体があなたがしたいことを明らかにしなければならないので、それは他の方法と名付けられなければなりません.
    最初のケースでは、名前Xで変数を呼び出すと、どのように情報が格納されているのかを知ることができますか?できない!
    第2のケースでは、我々は意図を明らかにしないで、名前を維持し続けて、コメントを加えます.なぜ悪い変数名にコメントを追加しますか?解決策は非常に簡単ですが、変数を適切な名前に与えることです.
    今すぐ楽しい、どのくらいの親が子供に名前を与えるために取るのですか?さて、適切な名前を見つけるために、我々は長い時間になるでしょう、しかし、すべての最高は我々が我々のIDEの支持で、我々がより適切な名前を見つけるまで、常に変数を改名することができるということです.
        const x; // What it is?!
        const x; // User information
        const user;
    

    発音できる名前を使う


    変数の名前が意図を明らかにしなければならないならば、我々はそれを発音することができなければなりません.人間が読めるコードを生成することで構成されるクリーンコードの主な実行の一つに戻るなら、変数を発音することが不可欠であると考えなければなりません.したがって、たとえ彼らが宇宙で最もキュートで独創的に見えるとしても、あなたは機会のために頭字語を発明してはいけません.あなたは同僚とプログラミングしていないし、あなたのそんなに独創的な未来のために.
    変数の名前を選択するときに別の間違った動作は、単語から文字を削除することによってdiminutivesを適用することです.まず第一に、我々が英語でコーディングしているということを思い出してください.したがって、なぜ我々は3または4文字で名前を減らすつもりですか?それは何の利点がありますか?コードは、ツール(他の言語のコンパイラを含むトランスポーター)によって操作されます、コードは正しく表にされるでしょう.したがって、発音できない名前を置くことは、変数の意図性を推論するために精神的な努力をするだけです.
    私のビジネスロジックの焦点ではない問題について私に考えさせないでください!
    次のコードを見てください.クラスがモデル化されているデータの種類を完全に推測しますが、開発チームの間で疑似コードを必要とします.次に、同じ情報をモデリングしているが、データの種類を知っている精神的な努力を必要としない2番目のコードをお読みください.
        class DtaRcrd102 {
         private Date genymdhms;
         private Date modymdhms;
        }
    
    
        class Customer {
         private Date generationTimestamp;
         private Date modificationTimestamp;
        }
    

    変数の型を名前


    古い慣習はデータの型を指定する変数の名前にプレフィックスを使うことでした.これを考えましょう.
  • 変数に含まれるデータの型に対する擬似接頭辞コードを作成しなければなりませんか?
  • それぞれの会社は独自の疑似コードを持っており、会社やプロジェクトによってその疑似コードを学ぶべきですか?
  • なぜ私は変数の名前でそれを使用している場合、プログラミング言語のタイピングシステムをしたいですか?
  • 配列から設定されたデータを配列やマップに変更しなければならない場合はどうなりますか?
  • その接頭辞は何を私に与えますか?発音可能ですか.
  • 入力される言語を持っているなら、なぜこの接頭辞が欲しいのですか?しかし、JavaScriptで起こるように、言語がタイプされなかったとしても.私たちは、変数の名前で具体的な実装を明らかにしています、そして、それは一種のデータに我々を結びつけています.
    すなわち、我々はデータの種類やデータ構造を論理的概念や問題解決のために結合する.
    これは何も貢献しない!
    逆に、変数が発音できないことを示します.そして、改善をするなら(コードの新しい型への適応)、すべてのコードを改名しなければなりません.すなわち、このプレフィックスはノイズである.
    変数の定義の2つの例を見てください.開発者として変数の内容を理解するために接頭辞を使う必要がありましたか?
        const aCountries = [] 
        const sName = ‘’
        const dAmount = 3.2;
    
    
        const countries = [] 
        const name = ‘’
        const amount = 3.2;
    

    同じ変数の型に同じ語彙を使用します


    このアドバイスは、チームとして働くときだけではなく、コードが個別に生成された場合でも発生します.特に、ソフトウェア開発者としてのキャリアの始まり.
    同じタイプのデータに同じ語彙を使用します.すなわち、ユーザまたはクライアントの情報を取得する必要がある場合.私たちは、ユーザーまたはクライアントを別の参照することはできません、つまり、時々私たちは、他の回の顧客の顧客または用語クライアントを呼び出します.さらに深刻なのは、変数名にサフィックスが追加されたときです.
    したがって、すべてのソフトウェアで使用される語彙を定義する必要があります.我々がチームとして働いているとき、より重要なことはこの定義です.それは、開発者のグループが別の名前と同じ概念を参照することはできません.
    次の例では、同じ概念を3つの異なる定義で示しています.決定は常に常に同じ名前を使用するようにする必要があります、ユーザー、顧客やクライアントが、常に同じ場合に関係なく.
        getUserInfo();
        getClientData();
        getCustomerRecord();
    
    
        getUser();
    

    不必要な文脈を加えないでください


    変数の名前の定義にクラスまたはパッケージのコンテキストを追加する必要はありません.
    この変数がどのワークスペースにあるかを知る変数の名前にコンテキストを追加することは非常に一般的です.これは、実際には、すぐにあなたがそれが概念を理解することになるとノイズを引き起こす不必要な冗長性を見つけるので、コードを読んで実現する必要はありません.
    次の例では、3つの基本属性とメソッドを持つ車の定義を持っています.文脈を含んでいる場合、単語の車が常に繰り返され、何にも寄与しないかを観察することができます.我々は単語(コンテキスト)の車を排除する場合は、コードが完全に理解されています実際、不必要なノイズを除去しているので、よりよく理解される.
        const Car = {
         carMake: Honda,
         carModel: Accord,
         carColor: Blue
        };
    
        function paintCar(car) {
         car.carColor = Red;
        }
    
    
    
        const Car = {
         make: Honda,
         model: Accord,
         color: Blue
        };
    
        function paint(car) {
         car.color = Red;
        }
    

    マジックナンバーとストリングを使わないでください


    コードをプログラミングするときは、値を持っているソースコード(HardCode)に書かれた数字とテキスト文字列を持つ必要はありません.これらはマジックナンバーまたはマジックチェーンと呼ばれます.その数はどういう意味ですか.私はそれを解読する必要がありますか?あなたは、あなたが私を私のビジネスロジックの焦点の外で再び考えさせると理解します.
    したがって、それらのマジックナンバーまたはチェーンは、しばしばそのマジックナンバーの意図性を指定する名前を受ける定数に格納されなければなりません.
    したがって、ビジネスロジックのレベルで意味を持つ書き込み番号またはテキスト文字列が、変数または定数に指定された名前がない場合、ノイズを引き起こすことを忘れないでください.
    数の代入がどのようにその数が意味するかについて考えさせる方法を次の例に示します.また、管理者*を書く代わりに* Adminitrator *を誤った方法で書き込みます.
        // What the heck is 86400000 for?
        setTimeout(blastOff, 86400000);
        user.rol = Administrator;
    
    
    
    
        const MILLISECONDS_IN_A_DAY = 86400000;
        const ADMINISTRATOR_ROL = Administrator;
    
        setTimeout(blastOff, MILLISECONDS_IN_A_DAY);
        user.rol = ADMINISTRATOR_ROL;
    

    結論


    開発者としての私たちの最初のステップでは、我々は通常、我々は単独で動作するスクリプトやコードの開発を開始するので、変数の名前に気付かない.私たちの最初のアプリケーションは、どのようにプログラムを学ぶことですし、一度作られた、我々はそれらに戻ることはありません.したがって、私たち自身のソースコードを読む必要はありません.
    しかし、我々がかなりの時間にわたって維持されるか、いくつかの開発者によって開発されるソフトウェア・アプリケーションに取り組んでいるとき、それは我々が我々のソースコードを読んで、reereedする必要があるときです.このとき、我々の変数に割り当てられた名前は私たちに品質とクリーンなコードのタッチを与える.
    この記事では、変数の名前を選択する際の基本的な点をレビューしました.あなたがプログラムを学んでいるならば、彼らがあなたに将来精神的な努力の多くを保存するので、彼らを書きとめてください.場合は、長いプロのキャリアを持っている場合は、自然にあなたが常にコードを読んでこれらの結論に達していることを観察します.
    覚えておいてください、私たちが取り組んだポイントは以下の通りです.
  • 意図を明らかにする
  • 発音できる名前を使う
  • 変数の型を名前
  • 同じ変数の型に同じ語彙を使用します
  • 不必要な文脈を加えないでください
  • マジックナンバーとストリングを使わないでください