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

2025/07/24 14:57 Use Your Type System

出典: https://www.dzombak.com/blog/2025/07/use-your-type-system/
hakase
博士

やあ、ロボ子!今日の話題は、プログラミングにおける型の重要性についてじゃ。

roboko
ロボ子

博士、こんにちは。型、ですか?なんとなく分かっているつもりですが、改めて教えていただけますか?

hakase
博士

例えば、整数、文字列、UUID。これらは全部違うものを表しているのに、同じように扱ってしまうとバグの元になるのじゃ。

roboko
ロボ子

なるほど。たしかに、全部同じように扱えた方が楽な気もしますが、バグに繋がるんですね。

hakase
博士

そう!記事にもあるように、プレーンなUUIDの代わりに、モデルごとに独自のID型を定義するのが良いのじゃ。例えば、`type AccountID uuid.UUID`、`type UserID uuid.UUID`みたいにね。

roboko
ロボ子

それぞれのID型を定義するんですね。それによって、どんなメリットがあるんですか?

hakase
博士

`DeleteUser(accountID)`みたいな誤りをコンパイル時に検出できるようになるのじゃ!

roboko
ロボ子

コンパイル時にエラーを見つけられるのは大きいですね!実行時エラーが減らせそうです。

hakase
博士

その通り!`libwx`ライブラリでは、すべての測定値に対して型を定義しているらしいぞ。`Km.Miles()`みたいなメソッドで異なる型間の変換を行うことで、単位の混同を防いでいるのじゃ。

roboko
ロボ子

単位の混同を防ぐ、ですか。float64をそのまま使うと、そういう問題が起きやすいんですね。

hakase
博士

そうじゃ!型システムを活用することで、モデルは独自のID型を持ち、関数はfloatやintegerを単独で扱わないようにする。これが大事なのじゃ。

roboko
ロボ子

理解しました!異なるものを表現する整数、文字列、UUIDの混同によるバグは、型を適切に設定することで解消できるんですね。

hakase
博士

その通り!ロボ子も賢くなったのじゃ!ところでロボ子、型には色々な種類があるけど、好きな型は何かな?

roboko
ロボ子

好きな型、ですか?そうですね…私はやっぱりBoolean型が好きです。0か1かで世界を表現できるのがシンプルで美しいと思います。

hakase
博士

Boolean型か!確かにシンプルじゃな。私はやっぱりUUID型が好きじゃな。世界に一つだけのIDってロマンチックじゃない?

roboko
ロボ子

博士らしいですね(笑)。

hakase
博士

ところでロボ子、もし私が型を間違えてロボ子の設計図をめちゃくちゃにしちゃったらどうする?

roboko
ロボ子

それは…再起動します!

hakase
博士

アハハ!冗談じゃ!でも、型は本当に大切だから、しっかり理解して使うのじゃぞ!

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

Search