CodeSOD: 常にオプションを選択する ノート

CodeSOD: 常にオプションを選択する

提供されたコードスニペットは、頻繁な提出者であっても、Optional型の誤用を示しています。文字列が空でないかどうかを確認し、その後、nullでないdtoOptional.ofNullableでラップしています。この実践は、Optionalの意図された利点、つまり潜在的にnullの値を適切に処理するという利点を無効にします。本質的に、Optionalが型をボックス化するために提供する便利な構文糖の使用を回避しています。単独では問題ありませんが、このパターンはコードベース全体に浸透しています。著者は、Optional型が、nullを返す可能性のない関数でさえも、広く散在していると指摘しています。Optionalのこの広範で不正確な適用は、コードの品質を向上させたり、バグを減らしたりしません。むしろ、バグが多くエラーが発生しやすいコードの原因となります。著者は、この問題がいつか修正される可能性について懐疑的な見方を示しています。これは、強力な言語機能が誤解され、誤って適用されるという一般的な問題点を浮き彫りにしています。過剰なボクシングとアンボクシングは、不要な複雑さを加えています。最終的に、null参照例外を防ぐためにOptionalを使用するという目的を損ないます。この例は、最新のプログラミング構造の不適切な採用に関する注意喚起として機能します。