KotlinのtoXxx系の型変換用拡張関数とそれによってもたらされるコードの一貫性

どうも、久しぶりの記事です!

Kotlinのコードの一貫性に関する個人的感想を社内開発メンバーに共有したのですが、もったいないからオープンにしようと思い久しぶりに記事を書いてみます。 超短いです。

日々コードを書く中で、Kotlinがコードの一貫性を重視しているなぁとよく感じます。 例えば、toXxx()と呼ばれる多くの変換用の拡張関数が多数あり、多用しています。

例えば、Iterable<T>#toList()とかIterable<T>#toSet()とかそういうやつです。

これらの変換用の拡張関数はtoXxxという形式で統一されていることで、こんなメリットがあります。

  1. 直感的な表現力
    • toXxx()という形式は、ある型から別の型への変換を明示的に示すことができます。この明示的な命名と関数の形式は、コードを読んでいる人にとって何を行っているのかが直感的に理解しやすいです。
  2. 認知負荷の軽減
    • toXxx()一貫した命名規則のおかげで、類推で便利なAPIを呼び出すことができるようになります。例えば、一度toInt(), toDouble()などの変換関数を知ってしまえば、toRegex()のような関数があるであろうと予想がつき、型を変換するという同様の目的で使えることを容易に想像がつきます。この一貫性は、Kotlinを使ってプログラムを書く上で非常に価値が高いと感じています。特に、複数人での開発しているアプリコードベースにおいて、この一貫性はコードの品質やメンテナンス性を向上に大いに寄与するでしょう。そういうプロジェクトではKotlinの初心者が参画してくることも多いと予想できるため、学習コストを下げることにも貢献してくれそうです。