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

データとコンポーネントの複雑さを整理整頓する

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
Avatar for Reo Ishiyama Reo Ishiyama
October 15, 2025
370

 データとコンポーネントの複雑さを整理整頓する

Avatar for Reo Ishiyama

Reo Ishiyama

October 15, 2025
Tweet

Transcript

  1. © DMM 4 管理画面のリプレイス • モダン化( PHP → Next.js) •

    運用コストの削減 ◦ 発行したクーポンの編集ができない等
  2. © DMM 9 クーポンは複雑 • ログイン状態 • 獲得状態 • 値引・割引率表示

    • 利用回数 • 先着ご利用回数 • 公開/獲得期限 • etc…
  3. © DMM 11 クーポンは複雑 • 公開期間 • 利用期間 • 獲得/未獲得

    • 先着利用上限数 • 1ユーザーあたりの利用可能回数 • 獲得してからX日間だけ利用可能 • プレミアム会員限定 • etc…
  4. © DMM 17 Presentation Component • UIの構築が責務 • ドメイン知識に依存しないコンポーネントを組み 合わせて構築

    • Container Componentから受け取ったPropsを 元にUIを構築 • コンポーネントに対するイベントハンドラーを設定
  5. © DMM 18 Container Component • 外部APIやGlobal Stateからのデータ取得 • データ加工やコンポーネントの出し分け

    • アプリケーションのビジネスロジックを実装する • Presentation Componentへpropsとして渡す ◦ UI構築に必要な値 ◦ ユーザー操作を処理するためのコールバック関 数
  6. © DMM 27 Modelとは • Domain Object の生成・変換 • APIや外部システムとの変換処理

    • 要件に基づいた、共通化できない機能特有の処理
  7. © DMM 32 Model • createFromResponse ◦ APIからDomainObjectへの変換 • createFromFormValues

    ◦ フォームの値(UI)からDomainObjectへの変換 • convertToRequestBody ◦ DomainObjectからリクエストへの変換 • convertToFormValues ◦ DomainObjectからフォームの値へ変換