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を ディレクトリ以外で表現
Search
Sigma
October 10, 2022
Programming
94
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Atomic Designを ディレクトリ以外で表現
Sigma
October 10, 2022
More Decks by Sigma
See All by Sigma
Proxmox_VE.pdf
seiyasugimoto
0
230
Stable Diffusionで遊んでみた
seiyasugimoto
1
150
EVAフレームワーク
seiyasugimoto
0
120
SSR+SPA
seiyasugimoto
0
170
Nuxtにおける設計
seiyasugimoto
0
110
throttleすげぇぇぇ
seiyasugimoto
0
87
スマホでPythonしたい
seiyasugimoto
0
76
平文で保存するな!
seiyasugimoto
0
99
ソースコードを読もう
seiyasugimoto
0
100
Other Decks in Programming
See All in Programming
Loosening the Reins: Go Generics Get More Flexible
kuro_kurorrr
0
340
Flow は今どうなっているか
mizdra
PRO
0
740
「寝てても仕事が進む」Claude Codeで組む第二の脳
tomoyafujita2016
0
360
go-spidermonkeyでAIエージェントのCode Modeを実装する
syumai
3
1.2k
Press start. Python's next generation.
willingc
PRO
3
220
信頼性の目標を誰も求めてない
shubox
0
130
源内ハンズオン概要編
hideg
0
220
夏だ!祭りだ!祭りとはドメインモデリングでは?
ryugen04
0
420
Hello, Hiroshima Geospatial Data! — Exploring DoboX with Python
ra0kley
0
100
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
520
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
120
Discordを用いたラボオートメーション関連情報収集の自動化
noguhiro2002
0
450
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
310
4 Signs Your Business is Dying
shpigford
187
23k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Docker and Python
trallard
47
4.1k
Leo the Paperboy
mayatellez
8
2.2k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
870
The Cult of Friendly URLs
andyhume
79
7k
From π to Pie charts
rasagy
0
330
Un-Boring Meetings
codingconduct
0
390
Transcript
Atomic Designを ディレクトリ以外で表現 ディレクトリは直交する分類を扱えないのでは?
しぐまです • NLPシニアエンジニア • 25歳 • Nuxtとか
Atomic Designでディレクトリ切ると辛い • ひとまとまりのコンポーネントがバラバラに ◦ /components/molecules/HogeListItem.vue ◦ /components/organisms/HogeList.vue ◦ OMG…!
• moleculesが肥大化してorganismsに ◦ 動かしたら参照が切れてしまう ◦ 出来なくはないけど結構面倒
何故辛いのか • ディレクトリ構造で直交する2つの基準による分類を表現しようとしている ◦ Atomic Design ◦ 機能による分類 • ディレクトリによる分類の性質
◦ 単純な木構造で表現力は高くはない。 ◦ あちこちからディレクトリ指定で参照されるため再分類が難しい。 • 機能による分類をディレクトリ構造で表現し、Atomic Designによる分類をメタ情報 で表現すれば辛くないのでは?
最初Storybookを考えた • Storybookのグループ機能 • Atomic Designに基づいた分類をStorybook上でやるのは聞いたことがあった(デ ファクト?
ちょっとオーバースペック感否めなかった • 様々な理由で見送り ◦ Storybookはビジュアルリグレッションテスト等を実行できてリリース後のアップデートの工数を激減 させるのは分かっていたが、フロントエンドはロジックを抽出してテストをする以上の自動テストはや らない方針だった。 ◦ XD、HTML/CSSがあってそれをコンポーネントに落とし込む開発フローだったため、開発中にコン ポーネントをプレビュー出来ることによるメリットが薄かった。
◦ 開発工数が潤沢でなかった。 • こういう場合どうするかについての解が欲しい
Group機能がある軽量なドキュメンテーションツール • Vueseが良さげ
ファイル構造は機能を表現したものにできる
粒度についてチームで議論できる体制を整える • Atomic Designに開発者が求めていることは多くの場合「コンポーネント粒度につ いてチームで議論できる体制を整える」ということだと思う。 • orgsnismsとmoleculesの境目を自分たちの言葉で定め、軽量なドキュメンテーショ ンツールによって分類することでこれは達成出来る。 ◦ atomsは多くの場合わかりやすい。
◦ templatesはlayouts, pagesはpagesに対応している。 • 能書きより対話
AND MORE 「Nuxtにおけるデータの渡し方問題」 • Nuxtにおけるデータの受け渡し方問題 ◦ Propsで渡すかSroreを経由するかについて破綻しやすい。 ◦ 粒度と強い相関のある概念のため Atomic
Designと関連付ける。 • 粒度によって決めてしまう手 ◦ pagesにはasyncData, fetchによるデータの取得を許可 ◦ organismにはfetchによるデータ取得を許可 ◦ molecules, atomsにはProps以外でのデータの受け渡しを禁止