プログラムを書くとき、私たちは通常問題に遭遇します:コードを理解し、維持しやすくする方法は? PHPの魔法の数字は、意味がなく、数値としてのみ存在する数字を指します。それらは多くの場合、コードのさまざまな部分に表示されるため、これらの数値が使用される理由を理解することを困難にする可能性があり、将来のメンテナンスにエラーを導入することさえあります。コードの読みやすさを改善するために、通常、定数を使用してこれらの魔法の数字を置き換えます。この記事では、このアプローチがコードの読みやすさを改善できる理由について詳しく説明します。
魔法の数字は、明確な意味のない価値を指します。例えば:
$totalAmount = $price * 0.1;
上記のコードでは、 0.1はマジック番号です。これは、特定の割合を表します。これは、割引率または税率などです。ただし、 0.1を直接使用すると、他の開発者は、コードを読むときにこの値が何を表すかわかりません。さらに重要なことは、将来この値を変更する必要がある場合、 0.1を使用してすべての場所を変更することを忘れる可能性があるため、エラーが発生します。
この問題を解決するために、マジック番号の代わりに定数を使用できます。定数は意味のある名前であり、固定値を表し、プログラム全体で変更されません。このようにして、他の開発者またはメンテナーは、コードを読むときにこの値の意味を明確に知ることができます。定数を使用して魔法の数字を置き換える方法の例は次のとおりです。
define('TAX_RATE', 0.1); // 定数を定義します TAX_RATE
$totalAmount = $price * TAX_RATE; // マジック番号の代わりに定数を使用します
このようにして、 0.1に特定の意味(つまり、10%の税率)を与えるだけでなく、この値を変更する必要がある場合は、コード内のどこでも魔法の数字を調べて交換せずに定数の定義を変更する必要があります。
追加された理解可能性:通常、定数の名前は、それが表す意味を表します。例として、 TAX_RATEを使用して、コードを読む人なら誰でも、 0.1の意味を推測することに時間を費やすことなく、税率を表す一定のものとして理解できます。
繰り返しエラーの削減:同じ魔法の数字が複数の場所で使用されている場合、要件が変更された場合、マジック番号が1つずつ表示されるすべての場所を変更するのではなく、定数の定義を変更するだけです。これにより、省略を回避し、コードメンテナンスのエラーを減らすことができます。
コードの保守性を向上させる:定数は通常グローバルに定義されます。つまり、その値は固定されていないことを意味します。コード内の定数の値を変更すると、使用されるすべてのものがすぐに影響します。このようにして、コードの変更はより集中して明確であるため、誤操作を減らすのに役立ちます。
コードのスケーラビリティが追加されました:定数を使用すると、将来の変更の可能性が高くなる可能性があります。将来的に税率またはその他の魔法の数字の価値を調整する必要がある場合は、コード内の各番号を変更する代わりに、定数の定義を調整してください。
定数は、プログラムで複数回使用され、固定された意味を持つ数値に適しています。たとえば、税率、割引率、PIなど。これらの値は簡単に変更されず、特定のビジネス意味を持つことができ、それらの代わりに定数を使用すると、コードをより明確にすることができます。
特にURLを扱う場合、いくつかの魔法の数字や文字列がコードに関与する場合があります。 URLの一部に固定構造または意味がある場合、定数を使用してそれらの部分を置き換えることもできます。たとえば、次のコードを検討してください。
$url = "https://example.com/api/v1/resource";
ここでは、 https://example.comは魔法の文字列です。つまり、ドメイン名を変更する必要がある場合は、各URLを変更する必要があります。この場合、ドメイン名の代わりに定数を使用して、コードがより柔軟でメンテナンスが簡単であることを確認できます。