コードレビューなどをしていて、たまに「これってメソッド名として verify
より validate
の方が適切じゃね?(または逆)」というパターンを見かけることがあったため、自分の中での解釈をメモしておく。
以下、主観も入っていると思われるため、参考にする場合はほどほどでお願いします。
定義的なものは以下のサイトを参考にされたい。
自分が実装する場合にはメソッド名として
- 調べた結果の詳細はどうでも良くて、結果が OK/NG だけを知りたい場合には
verify
- 調べた結果の詳細を基に何かしらを判断したい場合には
validate
を使っている。
これも既存の同名のメソッドの実装がそれを実現するようなインタフェースになっているからというのがその理由になっている。
verify
駄目だったら例外を投げる。(または boolean を返すでも良いと思う。) 基本的にオブジェクトがその状態である場合は正常な処理の継続ができないということを伝えようとする意図が見えるものという解釈をしている。
validate
調べた結果のオブジェクトの集合を返す。呼び出し側はこのオブジェクトの集合を基に後続の処理をどのようにするか判断をする必要がある。
HTTP リクエストパラメータを検証して、不正なら HTTP レスポンスのステータスコードで 400 を返すみたいなことをする場合はこちらの名前を利用するべき。
他
check
や judge
は論外であるため、よほどのことがない限り使わないで欲しい。