プログラミングにおける象徴的な定数の重要性を理解する
cs50のYoutube動画「プログラミングにおける象徴的な定数の重要性を理解する」について要点と要約をまとめました
3つの要点
- 要点1
魔法の数字は混乱や潜在的な問題を引き起こす可能性があり、使用を避けることが重要です。 - 要点2
プリプロセッサディレクティブを使用して定義される象徴的な定数は、定数に意味のある名前を付け、値の意図しない変更を防ぎます。 - 要点3
象徴的な定数の使用により、コードの可読性、保守性、適応性が向上し、コードがより堅牢で柔軟になります。
要約
魔法の数字とその意味
プログラミングでは、任意の説明のない定数である魔法の数字の使用は、混乱や潜在的な問題を引き起こす可能性があります。例えば、マリオの問題では、ピラミッドの高さが23で制限されており、これは任意に見えるかもしれません。しかし、これは標準のターミナルウィンドウの高さが24であり、ピラミッドが画面外に出てしまうのを防ぐために行われたものです。これらの数字の意味は他の人にはすぐには明らかではないため、適切な説明なしに定数を含めるのは悪い習慣です。
コード中の魔法の数字の問題
コード中の魔法の数字の使用は問題を引き起こす可能性があります。これは、トランプのデッキを扱う関数で示されています。この関数では、0から52までのループが実行され、標準のデッキのカードの数を表しています。しかし、魔法の数字である52の使用は適切な説明がない場合に混乱や潜在的な問題を引き起こす可能性があります、特にデッキを操作する複数の関数と一緒に作業する場合です。他の関数によるデッキサイズの変更によって、シャッフル時にカードが抜けてしまうなどの意図しない結果が生じる可能性があります。
コードの改善における象徴的な定数の使用
魔法の数字によって引き起こされる問題に対処するために、象徴的な定数を使用することができます。プリプロセッサディレクティブ(#defineなど)を使用することで、定数に意味のある名前を付けることができます。例えば、魔法の数字である52の代わりに、「デッキサイズ」という定数を定義することができます。これにより、定数により直感的な意味が与えられるだけでなく、値の意図しない変更を防ぐこともできます。さらに、象徴的な定数の使用により、値の簡単な変更が可能になり、ドイツではデッキサイズを32にするなど、さまざまなシナリオに適応することができます。
象徴的な定数の利点
象徴的な定数の使用は、プログラミングにいくつかの利点をもたらします。まず第一に、定数に意味のある名前を付けることで、コードの可読性と保守性が向上します。第二に、定数の値の意図しない変更を防ぐことで、プログラムの整合性を確保します。最後に、値の簡単な変更と適応性により、コードがより柔軟で再利用可能になります。象徴的な定数の使用により、プログラマは魔法の数字の落とし穴を回避し、より堅牢で理解しやすいコードを作成することができます。
▼今回の動画
編集後記
▼ライターの学び
魔法の数字の使用は問題を引き起こす可能性があるため、適切な説明を付けずに定数を含めることは避けるべきです。また、象徴的な定数の使用により、コードの可読性と保守性が向上し、値の意図しない変更を防ぐことができます。さらに、象徴的な定数の使用により、コードがより柔軟で再利用可能になります。
▼今日からやってみよう
今日から魔法の数字を使用せずにコードを書いてみましょう。また、定数に意味のある名前を付けることで、コードの可読性と保守性を向上させることができます。さらに、値の変更が容易になるため、コードの適応性も高まります。