Tatehito's Blog

Webエンジニアの備忘録というか駄文。

O/Rマッパーの採用・不採用で意見が割れている

リードエンジニアの方と別のメンバーの間でO/Rマッパーを採用するか否かで意見が割れている。正確にいうと、議論しているわけではなく各々のやり方で進めちゃってる感じ。

別のメンバーの方が採用しているO/Rマッパーは、ツールを導入しておらず独自にそれ専用のクラスを作ってる。簡易的にプログラム構造を書くとこんな感じ。(果たしてこれを「O/Rマッパー」と呼んでいいのかな?)

View - Controller - Model - テーブルデータ格納用クラス - Service - DB

僕としてはO/Rマッパー不採用が良いと考えている。

まず、(良いかどうかは別として)オブジェクト指向プログラミングをゴリゴリ使っていく、という方針ではないので「データベースをオブジェクトとして扱える」というO/Rマッパーのメリットにほとんど意味がない。むしろO/Rマッパーが間に入るだけ無駄なコーディング量増えてしまう。

また「SQLを書かなくていい」というメリットさえ無い(どうせSQLを自分でサービス層のクラスに書かないといけない)

DBアクセス部分をServiceにまとめられるという意味では役立つとも思ったけど、ModelとServiceを分けるほどのボリュームが無いので、いまのところは分ける意味もあまり無いと思う。

まあO/Rマッパーを使うなら使うでもいいけど・・・せめて方針は統一して欲しい・・・。

あと、大変ヤヴァイことに今のプロジェクト、コードレビューもしなければテストコードも書かない方針になってる。他のメンバーが書いた機能を壊しているか確認する手段が無いので、共通クラスや再利用を前提としたクラスは危なっかしくて使えない😇

参考に読ませていただきました:

blog.jnito.com

blog.jnito.com