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
フロントエンドの設計で大事なこと
Search
Daichi Sunagawa
November 16, 2023
Programming
0
48
フロントエンドの設計で大事なこと
Daichi Sunagawa
November 16, 2023
Tweet
Share
More Decks by Daichi Sunagawa
See All by Daichi Sunagawa
10分でわかるNext.js14
sngw0113
0
110
React と Next.js について
sngw0113
0
41
フロント開発でよく使われるライブラリの紹介
sngw0113
0
26
モダンJavaScript入門
sngw0113
0
26
【React入門】絶対に躓かない Reactワークショップ #3
sngw0113
0
14
【React入門】絶対に躓かない Reactワークショップ #2
sngw0113
0
23
【React入門】絶対に躓かない Reactワークショップ #1.pdf
sngw0113
0
100
Other Decks in Programming
See All in Programming
ソフトウェア設計とAI技術の活用
masuda220
PRO
25
7.2k
MCPで実現できる、Webサービス利用体験について
syumai
7
2.3k
11年かかって やっとVibe Codingに 時代が追いつきましたね
yimajo
1
230
Android 15以上でPDFのテキスト検索を爆速開発!
tonionagauzzi
0
180
QA x AIエコシステム段階構築作戦
osu
0
230
リッチエディターを安全に開発・運用するために
unachang113
1
340
Bedrock AgentCore ObservabilityによるAIエージェントの運用
licux
8
540
React 使いじゃなくても知っておきたい教養としての React
oukayuka
18
5.1k
Jakarta EE Meets AI
ivargrimstad
0
550
Strands Agents で実現する名刺解析アーキテクチャ
omiya0555
1
110
階層化自動テストで開発に機動力を
ickx
1
460
バイブコーディング超えてバイブデプロイ〜CloudflareMCPで実現する、未来のアプリケーションデリバリー〜
azukiazusa1
3
770
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
KATA
mclloyd
31
14k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
Designing Experiences People Love
moore
142
24k
The Invisible Side of Design
smashingmag
301
51k
Speed Design
sergeychernyshev
32
1.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
8
420
Transcript
砂川 大地 フロントエンドの 設計で大事なこと フロント勉強会
D S 設計にあたって重要な考え方1 関心の分離 UIとビジネスロジック 「商品一覧」と「商品を取得する処理」 Amazun
D S 設計にあたって重要な考え方1 関心の分離 UIとビジネスロジック 「商品一覧」と「商品を取得する処理」 Amazun
D S 設計にあたって重要な考え方1 関心の分離 UIとビジネスロジック 「商品一覧」と「商品を取得する処理」 Amazun 見た目と振る舞い 「ユーザーアイコン」と「メニュー表示」
D S 設計にあたって重要な考え方1 関心の分離 UIとビジネスロジック 「商品一覧」と「商品を取得する処理」 Amazun 見た目と振る舞い 「ユーザーアイコン」と「メニュー表示」
UIとビジネスロジックの分離 Before After 商品一覧の例 DS Amazun
見た目と振る舞いの分離 Before After アカウントメニューの例 D S プロフィール変更 メールアドレス変更 ログアウト
設計にあたって重要な考え方2 依存の方向性 関心を分離したとはいえ、どこかでそれらを接続する必要がある 依存関係をシンプルに保つ必要がある
設計にあたって重要な考え方2 依存の方向性 関心を分離したとはいえ、どこかでそれらを接続する必要がある 依存関係をシンプルに保つ必要がある レイヤードアーキテクチャ
アトミックデザイン
アトミックデザイン Molecules は Atoms に依存してもよいが、Organisms には依存しない
設計にあたって重要な考え方2 悪い例 `AccountMenu`コンポーネントに合わせて、 `handleMenuOpen`というpropsを用意する D S
Container/Presentationalパターン Container データがユーザーにどのように表示されるかを管 理するコンポーネント。 Presentational 何のデータがユーザーに表示されるかを管理する コンポーネント。
Container/Presentational パターン 「犬のデータ」を「ギャラリーで表示する」
Container/Presentational パターン Container層 Presentational層 バックエンド Container層だけがバックエンドに依存する 例)PagesコンポーネントをContainer層とし、 データの取得はPagesコンポーネントでのみ行う
他にも気になる方はこちらがおすすめです