Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Atomic Design から bulletproof-react へ – 構成リアーキテクト –
Search
yusakamoto
October 16, 2025
0
81
Atomic Design から bulletproof-react へ – 構成リアーキテクト –
yusakamoto
October 16, 2025
Tweet
Share
Featured
See All Featured
A designer walks into a library…
pauljervisheath
209
24k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
Music & Morning Musume
bryan
46
6.9k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
54k
Mobile First: as difficult as doing things right
swwweet
225
10k
Side Projects
sachag
455
43k
Stop Working from a Prison Cell
hatefulcrawdad
272
21k
Producing Creativity
orderedlist
PRO
348
40k
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
2
160
Leading Effective Engineering Teams in the AI Era
addyosmani
7
670
Transcript
© DMM © DMM CONFIDENTIAL Atomic Design から bulletproof-react へ
– 構成リアーキテクト – 配信画面編
© DMM 自己紹介 2 2 入社:2024年2月中途入社 業務:ライブ配信&視聴画面の フロントエンド開発
趣味:サウナ / 旅行 坂本 悠 ライブコミュニケーション開発部/3.0Bグループ CREチーム
© DMM 話すこと 3 3 1. 課題と背景 2. コンポーネント構成選定 3.
実際のディレクトリ構成と責務の整理 4. 実装例 5. 効果と課題 6. まとめ
© DMM 話すこと 4 4 1. 課題と背景 2. コンポーネント構成選定 3.
実際のディレクトリ構成と責務の整理 4. 実装例 5. 効果と課題 6. まとめ ※まだ開発途中です。構成や実装は変わる可能性があります。
© DMM 現在の問題点 ・アプリケーション数の多さ ・機能・仕様の複雑化 ・コンポーネントの膨張と乱立
課題と背景 5 5
© DMM 課題と背景 6 6 アプリケーション数の多さ ・配信アプリや視聴アプリなど10個以上存在
・共通基盤が少なく、個別対応が積み重なりメンテナンス性が低下
© DMM 課題と背景 7 機能・仕様の複雑化 ・1画面で100以上の機能が混在 ・単体機能よりも複数機能が絡むケースの方が多い
・デバイスやサービス差異によって表示や挙動が異なる ・複雑機能や複数アプリにまたがると、Atomic Designでは コードが肥大化 7
© DMM 課題と背景 8 8 コンポーネントの膨張と乱立 ・主要4つの配信アプリだけで300コンポーネント超
・同じような役割のコンポーネントが各アプリに散在 ・共通化されず、再利用性が低い状態
© DMM 課題と背景 9 9 開発前の各アプリケーションのディレクトリ構成 ✖4
© DMM 課題と背景 10 10 チームで目指すアーキテクチャ像 ・保守コストをなるべく減らす構成としたい
・今後の保守で技術負債を極力発生させない
© DMM 話すこと 11 11 1. 課題と背景 2. コンポーネント構成選定 3.
実際のディレクトリ構成と責務の整理 4. 実装例 5. 効果と課題 6. まとめ
© DMM コンポーネント構成選定 12 12 コンポーネント構成候補 FSD (Feature-Sliced
Design) ・機能ごとにレイヤーを分割する設計手法 ・厳格なルールでスライス内の構造を維持しやすく、再利用性が高い Bulletproof React ・機能単位のフォルダ構造で管理する設計手法 ・学習コストが低く理解しやすいが、細かいレイヤー定義はゆるめ
© DMM コンポーネント構成選定 13 13 選定理由 ・学習コストが低く、チーム全員で理解しやすい ・コンポーネント階層構造がわかりやすく依存関係が把握しやすい
・機能単位のフォルダ + グローバル共有の大枠で柔軟性を確保 ・FSDほど厳密なレイヤー定義がないため、将来の仕様変更にも対応しやすい
© DMM 話すこと 14 14 1. 課題と背景 2. コンポーネント構成選定 3.
実際のディレクトリ構成と責務の整理 4. 実装例 5. 効果と課題 6. まとめ
© DMM Bulletproof React の構造例 (Feature) 実際のディレクトリ構成と責務の整理
15 15
© DMM ディレクトリ構成(アプリ基盤 & 機能スコープ) 実際のディレクトリ構成と責務の整理 16
16
© DMM 実際のディレクトリ構成と責務の整理 17 17 feature1 widgets1 shared pages feature2
feature3 widgets2 全機能で再利用される共通 基盤 api / components / utils を 配置 機能単位でビジネスロジック & UI をまとめる api / components / hooks / store を内包 複数の features を組み合わ せた UI の塊 pagesでのみ再利用可能 ルーティング単位 feature や widget を組み合 わせたUI
© DMM 話すこと 18 18 1. 課題と背景 2. コンポーネント構成選定 3.
実際のディレクトリ構成と責務の整理 4. 実装例 5. 効果と課題 6. まとめ
© DMM 実装例 (features) 19 19
© DMM 実装例 (widgets & pages) 20 20
© DMM 話すこと 21 21 1. 課題と背景 2. コンポーネント構成選定 3.
実際のディレクトリ構成と責務の整理 4. 実装例 5. 効果と課題 6. まとめ
© DMM 効果 • 機能の所在が明確になり、理解しやすい • ルールに基づき「どこで何をやるか」が整理されやすい • Atomic
Designより秩序ある構成に改善 • リアーキテクトと同時に構成を見直したことで、開発体験が向上しモダンな記法が可 能に (副産物) 効果と課題 22 22
© DMM 課題 • ドキュメントやルールがAtomic Designほど確立されていない • featureの粒度が開発者ごとにバラバラ
• feature間依存を禁止するルールを一部で逸脱 • widgetの粒度・まとめ方が曖昧 • sharedに「とりあえず置く」が多発 効果と課題 23 23
© DMM 話すこと 24 24 1. 課題と背景 2. コンポーネント構成選定 3.
実際のディレクトリ構成と責務の整理 4. 実装例 5. 効果と課題 6. まとめ
© DMM ・開発体験が向上し、機能の所在が把握しやすくなった ・ルールとアーキテクチャ構成はさらに厳格に整備する必要あり ・BulletProofは自由度が高いため、チーム内でのルール決定が重要 ・今後は残課題の解決に向けた運用ルールの整備を推進
まとめ 25 25 俺たちの戦いはこれからだ!
© DMM ご清聴ありがとうございました 🙇