ごらくらいふ

プログラミングしたりゲームしたり

データに依存する振る舞いを脱却したいのですが

.+_kindとか、.+_typeとか、マジックナンバーをデータベースに保存することって、よくある。 ロジックの方では、その値に応じて、処理を分岐したりする。

んで、分岐するために、基準となる値をコード上にもつ。 これを脱却したいとよく思う。

それもマスタデータのIDをコード上に持つことが、ある。

kinds table

  • id
  • name

データベース上にはこれだけの情報しかなく、コード上に

if (kind.id == ENUM_KIND_A) {
    ....
} else if(kind.id == ENUM_KIND_B) {
    ....
} else if (kind.id == ENUM_KIND_C) {
........

などとあふれるのだ。

データベースの値を、コード上にも持つこと。その整合性を担保するコストは誰が払うのか。 本当に整合なのか。そこも常に懸念せざるを得なくなる。

これをどうにか脱却したいと欲求はあるのだが、いまひとつ答えはでない。