Magnolia Tech

いつもコードのことばかり考えている人のために。

なぜデータモデルをきちんと考えないといけないのか

場当たり的なコードを書き続けると、そこら中に個別最適なデータ構造が作られてしまって、気がつくとコードの大部分がデータ構造間の形式に合わせるための詰め替えになっていたりしませんか。

コードからビジネスロジックを読み取りたい時...

  • どんな入力を期待しているか
  • 処理の対象・範囲は何か
  • どんな条件で判断しているか
  • どんな形式に変換しているか
  • どんな単位で処理するか(トランザクションとか)
  • データベースのカラムのうち、何を実際に使っているか
  • どんな条件でデータベースを更新しているか

あたりを読み取りたいので、単なるデータ構造の変換のためのコードが増えてくると上記のようなコードが埋没して読み取りづらくなっていきませんか。

特にデータベースのカラム、不用意にお作法を守らずに参照しているコードが思ってもみなかった影響を与えることが有るので、素早く読み取りたいけど、全カラムを取得して変換して、フィルタして...みたいなコードが続くと実際に影響のあるコードを特定するのにすごく時間がかかってしまう。

ひょっとして我々が今求めているのは、そのデータがどこから来て、どこへ行くのか、出自が追跡可能なデータモデル・機能なのかもしれない(今、思い付いた)。

Rustの所有権という概念もいいけど、エンタープライズ用途だと、追跡可能性(トレーサビリティ)という概念を導入した方がいいのかもしれない。