PowershellやJavaScriptなどの最新のスクリプト言語を使用してスクリプトを作成する場合、定数をどこに定義すればよいですか?可読性と使いやすさのためにすべての定数をグローバルにする必要がありますか、または定数をスコープにできるだけ近く定義することは理にかなっていますか(関数で、たとえば、他で必要ない場合)。私は主にエラーメッセージ、エラーID、リソースへのパス、または構成オプションについて考えています。
PowershellやJavaScriptなどの最新のスクリプト言語を使用してスクリプトを作成する場合、定数をどこに定義すればよいですか?可読性と使いやすさのためにすべての定数をグローバルにする必要がありますか、または定数をスコープにできるだけ近く定義することは理にかなっていますか(関数で、たとえば、他で必要ない場合)。私は主にエラーメッセージ、エラーID、リソースへのパス、または構成オプションについて考えています。
回答:
constsは、マジックナンバーの問題を回避するために説明的な変数名を付けるだけで良いですが、constが使用から離れて定義されている場合、実際に使用されている値を識別できないという同様に厄介な問題を引き起こします。
私の提案、すべての言語で:実際の使用にできるだけ近い範囲でconstを定義します。1つのクラスでのみ使用される場合。そのクラスに入れるだけです。複数のクラスは、それを使用するすべてのクラスと少なくとも同じ名前空間にあることを意味します。
JavaScriptでは、これは、すべての使用法と同じように、語彙的にスコープが近いことを意味します。
similarly annoying problem of not being able to identify the value actually being used
頻繁にチェックする必要はありませんGRAVITATIONAL_ACCELERATION
。9.88065です。定数が設定されたら、値を抽象化して、その名前で考える必要があります。
定数を使用する代わりに、構成ファイルを使用できます。JavaScriptを使用すると、json形式のファイルを簡単に解析できます。PowerShellについては知りません。
構成ファイルには一元化できるという利点がありますが、関数のスコープ内のプロパティの名前(それを取得するとき)を使用すると、読みやすさを維持できます。
they cause a similarly annoying problem of not being able to identify the value actually being used
IDEに「定義に移動」したり、他の変数として値をプレビューしたりすることはできませんか?メタデータは、私が想定しているスクリプトでは難しいです。