2025-11-01 どう省くかを考えるより、それ以外を別にする方が早い
土曜日。9:00起床。11月なのでこれはもう間違いなく秋だ。
3連休と言われても特に予定を作ったりはしないし、一方でやることが無いかと言われればやるべきことは無数に存在する。勤め人ではなくなって初めてその事を知ったと思う。自由というのはすなわちそういう事だ。より時間に支配されている事を自覚する。
今日からStorybookを使ったコンポーネント開発を学びはじめる。チームに入れば否が応でも使うかと言うと実はそんな事もなかったりする。チームに入ると、大体のケースでそんなコンポーネント単体での実装など求められたりはしないのだが、AIにコンポーネントのコードを書かせると話は変わってくる。
非常に高速で便利ではあるのだが、もちろん見た目を作るわけではないので、こちらでスタイルは調整していく事になる。その時にStorybookが便利だと分かった。
Storybookのカタログに登録されているコンポーネントを見ながらスタイルを整えるというプロセスが非常に効率的で仕事も実際にページ上やアプリ上に配置してやるよりも丁寧な仕事が出来る。
ストーリーの作成ファイルに直接コンポーネントテストのコードを実装出来るのも楽である。
Storybook: Frontend workshop for UI development
https://storybook.js.org
というわけで早速取り掛かったのだが、テストの構成で苦戦した。どうしてもVitestでのユニットテスト時にStorybookのテストランナーも走ってしまう。Storybookのストーリーに書かれたテストはStorybook上でだけ走らせたいのに。このパターンを作るのに実はかなりの時間を割いた。
結局は逆転の発想で、Vitestのプロジェクトにユニットテストだけを対象にするプロジェクトを追加しておいて、ユニットテストのスクリプト、例えば npm run test などには vitest run --project=unit と設定することで解決した。
つまりStorybookの方を省くという発想ではなく、ユニットテストだけに限定するという発想でなければ実現しなかったという事である。これは多くのケースで使える考え方だなと。
夜、食後に軽くウォーキング4km。4kmでも意外と足にこたえる。歩くルートを変えただけで、4kmが6km歩くよりもキツく感じたりもする。人間の脳は本当に不思議だ。







