コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

getと接頭辞のつくメソッドは計算の必要がない値の返却が望ましいという話

休業日なのでコラム的なヤツです。

発想の発端

すえなみさんの以下のツイートから

経験値より

自分自身もココには思うところがあって

  • getなんちゃらというものは値を取得するものだから計算やDBアクセスは伴わない
  • 処理が重くなるようなものはgetとつけるとミスリードが多いからやらない

というのが潜在意識にある。

この意識付けの源流

この意識付けを生んだのはゲームプログラミングを行っているときで、基本的にゲームはゲームループの処理を以下に軽くして処理落ちをさせないかが肝になるので、getHogeHogeのようなメソッドでめちゃくちゃ思い処理をされると読み違えの種になる。

そのため、重い処理や計算処理にはふさわしい名前をつけるべきという考えを埋め込まれた、という流れである。

この話を紐解いていくと、やはり、「getという名のつくものはメンバ変数を参照することが期待値としてあるので、それを外れるものは容易すべきではない」ということだとは思う。

追記

ちょっと自分でもわかりにくい文章書いちゃったなと思い、下記ご指摘を頂きました

そこに対するアンサーとしても書いたのですが

という感じで、あくまでも「getXXXはgetterの文脈から軽い処理であることが期待されがちだし、そこの期待値を離れると大概よくないことになりがち」という気持ちから来ているお話でした。

参考リンク