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

水産業ドメイン可視化と実装のコツ〜釣って捌いて食べてみる〜

 水産業ドメイン可視化と実装のコツ〜釣って捌いて食べてみる〜

水産業の流通を変えるスタートアップとして、
未知の業務(ドメイン)を理解し、一つの共通理解として抽象化したモデルを作り、プロダクト内に実装し、運用してきました。
その中で見えてきたコツ、考え方を共有できればと思います。

Sankyo Toshio

April 27, 2023
Tweet

More Decks by Sankyo Toshio

Other Decks in Technology

Transcript

  1. アジェンダ • UUUOとは(何をしているか) • UUUOのプロダクトチームの特徴 • 水産業ドメインの一例 • ドメイン可視化と実装のコツ 1.

    ドメインをモデルにするときのポイント(釣りにでかける) 2. モデルを実装にするポイント(さばく) 3. 作ったモデルをワークさせる(食べてみる) • まとめとこれから
  2. • バックエンド ◦ Ruby on Rails ◦ Heroku ◦ Postgres

    ◦ Firebase ◦ GCP ◦ Sentry ◦ Terraform • フロントエンド ◦ Flutter Mobile ◦ Flutter Web ◦ React 環境周りなど
  3. 市場便の場合 水産業のドメインの一例 水産物流の例 380円 産地 宇都宮市場 豊洲市場 350円 A運送会社 B

    or C or D運送会社 宛先市場によっては運送会社が 変わる 豊洲の中では3社 => ウーオで請求と管理を巻き取りたい 足立市場 大宮市場
  4. Before 産地-取引先間で送料を持つ • 取引先増えるごとに送料設定をする 必要があり手間 • 産地、取引先増えるたびにレコード爆増 • 宛先データを送料内で管理 •

    一方、物流のステータスは個別で管理する 必要もあり、小回りは効く 水産業のドメインの一例 水産物流の例 送料データ
  5. ドメイン可視化と実装のコツ • ドメインを理解する(釣りにでかける) ◦ ドメインエキスパートを見つける。(社内にいる) ◦ 解像度をあげる/絵を描く • ドメインをモデルに落とし込む(さばく) ◦

    言語化していく(ユビキタス言語) ◦ 既存の運用を考慮して落とし所を探る • 実際に運用して改善する(食べてみる) ◦ 本当にやりたかったことができているかを確認 まとめとこれから
  6. 課題 • Active Recordにドメインロジック書きがち • Fat Modelになりがち ありがち? まずはPORO(Plain Old

    Ruby Object)で切り出していきたい まとめとこれから 購入 出品 価格計算 ロジック 価格計算 ロジック 類似ロジック