Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DBリファクタリングのデータリモデリング勘所/stafesstudy-db-modling

 DBリファクタリングのデータリモデリング勘所/stafesstudy-db-modling

このセッションは私の経験を元に「システムリプレイス」に
おいて、なぜデータリモデリングをするのか、また実際にどのように進めていくのか、といった事をご紹介します。
このセッションを通して、システムリプレイスを進めていく時にDBリファクタリングをどのように進めるかというポイントを
参考情報として持って帰って頂けるようであれば幸いです。

Takahashi Ikki

April 04, 2023
Tweet

More Decks by Takahashi Ikki

Other Decks in Programming

Transcript

  1. 自己紹介 • 高橋 一騎 (@ikkitang) • スターフェスティバル株式会社 TechPdM / Backendエンジニア •

    岡山でフルリモート勤務中 • 好きなAWS サービス ECS Fargate Photo by Pixabay
  2. 何のためにシステムリプレースをするのか • フレームワークのバージョンをあげよう!! • TypeScript( or Go or Rust) で書いていこう!!

    • SPA化して React で書くぞ〜!! 開発のしやすさが上がって、 より素早く価値提供が出来ていく。 ただ、これで得られるものは 「キレイな旧システム」である事が多い。
  3. 要らない物を見直す事を検討すること 注文ステータスが様々な運用ルールで定義されている。 • 社内で安全な注文かをチェックする(注文情報精査中) • 安全な注文である事を確認した事をマーク(注文情報精査済) • お客様に発注(発注済み) • 発注後に変更をした(発注済み(変更))

    • その後にキャンセルした (発注後キャンセル(キャンセル率100%)) 綺麗なUIを設計して見易くする事はできるが、そのまま移行すると、認知 負荷が高い状態は続く。結果運用フローの負担も高いまま
  4. Connpassを例にすると (雑な例ですが) • 管理者はイベント管理画面でイベント情報を入力し登録する • イベントを登録すると未公開状態で保存される ◦ この間は管理者以外、このイベントを見る事が出来ない ◦ イベントの管理者として登録された人は、公開前のイベントも見

    る事ができる ◦ イベントを公開するとイベントページに訪れた人は誰でも見える ようになる • イベント参加者がイベントを開いて、予約すると参加者として登録さ れる。 現状を把握して文字起こしする
  5. 大体、問題なさそうなら モノ(エンティティ)とコト(イベント)に分ける. • 管理者はイベント管理画面でイベント情報を入力し登録する • イベントを登録すると未公開状態のイベントとして保存される ◦ 未公開状態のイベントは管理者以外見る事が出来ない ◦ イベントの共同管理者として登録された人は、未公開状態のイベ

    ントも見る事ができる ◦ イベントを公開するとイベントページに訪れた人は誰でも見える ようになる • イベントページに訪れた人がイベントを予約すると イベント参加者として登録される。 現状を把握して文字起こしする
  6. • こういうのとか → ◦ https://speakerdeck.com/takahashi ikki/postgresqljapan2018 • Debezium を使った移行 とかも出来そうですね!

    ◦ https://github.com/TakahashiIkki/d ms-local-develop 多少の知見があります! 既存システムとの並行稼働の壁
  7. • システムリプレースはリファクタリングでは無いので 同じ挙動にしない事に臆せず挑戦していきましょう • そのためには現在の課題を把握する事は重要なので ヒアリングや調査をして現在の課題を把握する事が大切 • モデリングはチームで進めていくので 運用のBefore/After ドメインモデルのBefore/After

    これらをそれぞれ認識しながら進めていきましょう • Go All Out でやっていきましょう ◦ ( スタフェスのバリュー . 困難な課題を解決する為にチームが一丸となってあらゆる課題に 常にチャレンジしてやり遂げていく ) まとめ