【プログラミング】各層でのメソッド名を考える

ここでいう層は、大まかに分けて主にドメインを操作するドメイン層と永続化を行うパーシステンス層の事。
今日は1日ここのメソッドの名前のつけ方にはまってました…

ざっくりした結論から言うと「それぞれの層に適した名前をつけようよ!」ということ。当然ですが。

まずパーシステンス層のメソッド名について。こちらはDBへの操作を行うことが主な担当なので、メソッド名からSQL操作がわかることが望ましいです。たとえば、insertHogeHoge()とかupdateFugaFuga()なんて素敵な名前ですよね?
逆にドメイン層などの操作が入り込んでいる名前は基本的に望ましくないです。パーシステンス層のメソッドに、createOkan()なんてのがあると「あれ?こいつOkanオブジェクトの生成もしてくれるの?」なんて思われてしまいます。何となくinsert文投げるんだろうなとは思いますが、わかりやすいに越したことはないですよね。

次にドメイン層。こちらは意図した処理が伝わる名前が望ましいです。「Okanオブジェクトを作るぜ!」と思ったら、createOkan()とつけるでしょう。わかりやすい。
ただし、makeやgetなんて言う汎用性の高すぎる名前は危険です。この辺りはリーダブルコードにも書かれていますが、はっきりと伝わる方がいいのでシソーラスを調べてみたりしてカラフルな名前を見つけましょう。
もしくは、業務ロジックに沿った名前であれば無難かと思います。プロジェクト内で誤解なく通じるのであれば、これも適切ではないでしょうか。

一番良くないのはパーシステンス層とドメイン層がごちゃ混ぜになってしまうことです。
それぞれに役割があるので、適切な名前をつけるように心がけましょう。