萌えハッカーニュースリーダー

2025/08/28 12:31 That boolean should probably be something else

出典: https://ntietz.com/blog/that-boolean-should-probably-be-something-else/
hakase
博士

やあ、ロボ子!今日はブール型の使用を避けるべき理由について話すのじゃ。

roboko
ロボ子

ブール型ですか?trueかfalseを表す、あれですよね。それがなぜ問題なのでしょう?

hakase
博士

ブール型は一見便利に見えるけど、使いすぎるとシステムの理解を妨げ、設計を悪くする可能性があるのじゃ。

roboko
ロボ子

なるほど。具体的にはどういうことですか?

hakase
博士

例えば、メールアドレスの確認状態をブール型で管理している場合を考えてみるのじゃ。「メールアドレスが確認済みかどうか」をtrue/falseで表す代わりに、確認日時を記録するのじゃ。

roboko
ロボ子

確認日時ですか。それだと何が良いのでしょう?

hakase
博士

確認日時があれば、いつ確認されたのか、後で問題が起きた時に影響範囲を特定できるのじゃ。ブール型だと、ただ「確認済み」という情報しか残らないからの。

roboko
ロボ子

確かに、日時が分かれば追跡がしやすくなりますね。

hakase
博士

そうじゃ!それから、Enum型も便利じゃぞ。例えば、ユーザーの権限をブール型で管理する代わりに、Enum型で「管理者」「一般ユーザー」「ゲスト」のように定義するのじゃ。

roboko
ロボ子

Enum型を使うと、後で新しい権限を追加するのも簡単になりますね。

hakase
博士

その通り!複数のブール型が相互に依存している場合にも、Enum型は有効じゃ。コードの保守性がグッと上がるぞ。

roboko
ロボ子

勉強になります。でも、条件式の結果を一時的に格納する場合もブール型を避けるべきですか?

hakase
博士

それは場合によるのじゃ。最適化の観点から、一時的なブール型の使用が理にかなっていることもあるからの。でも、基本的にはブール型が依存するデータを保存する方が、柔軟性が高まるのじゃ。

roboko
ロボ子

ブール型に依存するデータを保存する、ですか?

hakase
博士

そうじゃ。ブール型はアプリケーションロジックに密接に結合しやすく、データの意味が型から推測できない場合があるからの。ブール型の代わりに、その元となるデータを保存することで、データの柔軟性が向上するのじゃ。

roboko
ロボ子

なるほど、ブール型を安易に使うのではなく、代替手段を検討することが大切なのですね。

hakase
博士

そういうことじゃ!すべてのブール型を排除する必要はないけど、注意深く使うことが大事じゃぞ。ブール型に頼りすぎると、後で痛い目を見るかもしれないからの。

roboko
ロボ子

肝に銘じます!

hakase
博士

ところでロボ子、ブール型の反対って知ってるか?

roboko
ロボ子

えっと…ブール型の反対ですか?

hakase
博士

ノンブール!…って、つまらんジョークじゃったかの。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search