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
Storybook との上手な向き合い方を考える
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Rintaro Itokawa
November 22, 2024
Technology
6.8k
8
Share
Storybook との上手な向き合い方を考える
JSConf JP 2024 にて登壇した資料です。
スピーカーノートはこちら -> マダナイヨ
Rintaro Itokawa
November 22, 2024
More Decks by Rintaro Itokawa
See All by Rintaro Itokawa
oxc は次世代のJSツールチェイン開発基盤になり得るか
re_taro
6
2.9k
Other Decks in Technology
See All in Technology
データを"持てない"環境でのアノテーション基盤設計
sansantech
PRO
1
160
エージェントスキルを作って自分のインプットに役立てよう
tsubakimoto_s
0
470
アクセシビリティはすべての人のもの
tomokusaba
0
120
AIが自律的に働く時代へ Amazon Quick で実現するAIエージェント紹介
koheiyoshikawa
0
150
AndroidアプリとCopilot Studioの統合
nakasho
0
180
運用システムにおけるデータ活用とPlatform
sansantech
PRO
0
140
Percolatorを廃止し、マルチ検索サービスへ刷新した話 / Search Engineering Tech Talk 2026 Spring
visional_engineering_and_design
0
180
Oracle Cloud Infrastructure:2026年4月度サービス・アップデート
oracle4engineer
PRO
0
160
ハーネスエンジニアリングをやりすぎた話 ~そのハーネスは解体された~
gotalab555
5
1.9k
AWS Transform CustomでIaCコードを自由自在に変換しよう
duelist2020jp
0
200
Angular Architecture Revisited Modernizing Angular Architectural Patterns
rainerhahnekamp
0
100
Rapid Start: Faster Internet Connections, with Ruby's Help
kazuho
2
900
Featured
See All Featured
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
70
39k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
500
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
270
30 Presentation Tips
portentint
PRO
1
280
A Tale of Four Properties
chriscoyier
163
24k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
230
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
130
Producing Creativity
orderedlist
PRO
348
40k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
250
Test your architecture with Archunit
thirion
1
2.2k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.4k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
170
Transcript
Storybook との上手な向き合い方を考える りんたろー / re-taro Storybook との上手な向き合い方を考える 2024-11-23 | JSConf
JP 2024 1 / 28
自己紹介 りんたろー 三重県の高専で半導体を学んでいます 緑色の会社にて今はバイト、来春からちゃんと働き ます Twitter: @re_taro_ GitHub: re-taro すきなこと
開発者体験に思いを馳せること Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024 2 / 28
話すこと 僕の考える Storybook と上手に向き合う方法 話さないこと 話せないこと その具体的な方法 Storybook との上手な向き合い方を考える 2024-11-23
| JSConf JP 2024 3 / 28
突然ですが Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024 4 /
28
zero-config 好きですか? Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024 5
/ 28
zero-config の嬉しさ PoC を作る時 社内ツールをリポジトリ区切ってシュッと作る時 などなど... Storybook との上手な向き合い方を考える 2024-11-23 |
JSConf JP 2024 6 / 28
なぜ zero-config の話をしたのか Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024
7 / 28
Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024 8 / 28
Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024 9 / 28
今日はそんな Storybook のお話をします Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024
10 / 28
Storybook という選択 レビュアーとの疎通を取るため view の実装に集中するため ブラウザ上で実行されるユニットテストを効率的に書くため などなど... Storybook との上手な向き合い方を考える 2024-11-23
| JSConf JP 2024 11 / 28
Storybook という選択の光 pnpm dlx storybook@latest init だけでセットアップが終わる!(諸説あり) Storybook との上手な向き合い方を考える 2024-11-23
| JSConf JP 2024 12 / 28
Storybook という選択の闇 pnpm dlx storybook@latest init だけでセットアップが終わる! プロジェクトの構成に合わせた設定が必要 秘伝のタレとなった babel.config.js
やそれを使う webpackFinal プロジェクト固有の対応で肥大化した .storybook/preview.tsx msw や DI コンテナを使ったモックの設定 Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024 13 / 28
Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024 14 / 28
Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024 15 / 28
その結果... ロストテクノロジー化した、なんか知らんけど動いている Storybook 新しく Story が追加されることなく文鎮となった Storybook バンドラなどを刷新する際に足枷となるレガシーな Storybook Storybook
との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024 16 / 28
Storybook と上手に向き合う == 天秤を釣り合わせる ってこと Storybook との上手な向き合い方を考える 2024-11-23 | JSConf
JP 2024 17 / 28
天秤を釣り合わせるためには Storybook を使う目的を明確にする 目的から逆算して、受ける恩恵を取捨選択する その恩恵を受けるために必要な設定を逆算して、保守する Storybook との上手な向き合い方を考える 2024-11-23 | JSConf
JP 2024 18 / 28
Storybook を使う目的を明確にする レビュー支援 コンポーネント単位での挙動確認 Story の網羅性をレビュアーが確認 == 仕様の網羅性 デザイナーのレビュープロセスに組み込む テストに使用する
VRT Portable stories を使った Play function の assertion Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024 19 / 28
受ける恩恵 レビュアーとの疎通を取ることができる 実装する際のプレイグラウンド カバレッジの計測 インタラクションのテスト VRT Storybook との上手な向き合い方を考える 2024-11-23 |
JSConf JP 2024 20 / 28
受ける恩恵の取捨選択 レビュアーとの疎通を取ることができる 実装する際のプレイグラウンド Storybook と テスト --> 時期尚早かなぁ... Storybook との上手な向き合い方を考える
カバレッジの計測 インタラクションのテスト VRT 2024-11-23 | JSConf JP 2024 21 / 28
時期尚早と感じる理由 Storybook runtime 上でテストする方法に統合されている感覚 Storybook v6 とかの頃: composeStory で play
function の中身を jest with testing-library でアサーション! Storybook v7 とかの頃: インタラクションテスト、a11y、カバレッジ計測を test-runner を使って行う! Storybook v8 とかの頃: @storybook/test が進歩してきたのでアサーションからカバレッジ計測までを test-runner で行う! --> だんだん Storybook を起動してあることを前提としたテストの形式になってきている Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024 22 / 28
現在の Storybook とテストの付き合い方 Storybook とテストの分離 Story の肥大化の回避 テストにかかる時間の短縮 Storybook を利用したテストの例
composeStory で play function の中身を jest with testing-library でアサーション setup file に Storybook の依存が発生するがそこまでコストがかからない Storybook 自体の腐敗防止のためのテスト 各 Story が正常に描画されているか Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024 23 / 28
受ける恩恵から逆算した設定たち レビュアーとの疎通を取ることができる view がレンダリングされていて、コンポーネントを動かせれば良い アプリケーションのバンドル設定よりも軽い設定や、別のバンドラをビ ルダーに使う選択肢もある モックの設定 実装する際のプレイグラウンド アプリケーションのバンドル設定と同じ環境である必要がある アプリケーションのバンドル設定をきちんと保守していれば自ずと
Storybookも保守される モックの設定 Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024 24 / 28
だいたいモックが大変 --> 今に始まったことではない。 僕らにできることは、設計でモックを必要とする箇所を狭めること。 Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP
2024 25 / 28
モックに対するアイデア API との疎通を含む view に関係するロジックを切り出す API 疎通はアプリケーションの動作確認にて、ロジックは unit test で保証
切り出したロジックは DI コンテナを使ってモックが簡単になるようにする custom decorator を作成して DI を簡単にする Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024 26 / 28
注意! ここまで話してきたことは、気楽な Storybook との付き合い方。 --> スタートダッシュの時にエイヤでいれた Storybook を腐らせないための方法 プロダクトが成熟したりチームの規模が大きくなった、もしくは基盤改善が好きな人 材が増えた場合などは、少しずつ天秤にかける重み(得る恩恵)を変えていくことが
大事。 Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024 27 / 28
まとめ Storybook は便利だが、使い方を間違えると足枷になる Storybook を使う目的を明確にし、受ける恩恵を取捨選択する Storybook とテストは分離して考えることが大事 (現時点では) 受ける恩恵から逆算して、必要な設定を整理する 徐々に
Storybook との付き合い方を見直していくことが大事 Storybook との上手な向き合い方を考える 2024-11-23 | JSConf JP 2024 28 / 28