SlideShare a Scribd company logo
1 of 18
AtomicデザインとVue.js
2019/01/18 sh-ogawa
WEBデザイナーレベル
■レベル1:HTML + CSS
■レベル2:CSS Preprocessor
■レベル3:JavaScript
■レベル4:画面周りの再利用
■レベル5:バックエンドいぢれる
Atomicデザイン
■科学になぞって画面を設計する手法
Atomicデザイン
■再利用性
■UI設計に制約を与える
■並行開発
■手戻りが減る
■他のシステムに持ち出す
構成要素
■Atoms
■Molecules
■Organisms
■Templates
■Pages
Atoms
これ以上分解不可能なコンポーネント
UIの統一性
例:
<input type=text>
Molecules
Atomsの集合体で1機能を提供する
行動のしやすさ
例:
入力フォーム、ログインフォームなど
Organisms
Moleculesの組合せで、
これ1つで機能が完結する
コンテンツの魅力
例:
ヘッダ、フッタ、顧客検索
Templates
Organismsの組合せ
これからPagesを生成する
例:
Laravelで使ってるBladeテンプレート
Pages
Templatesから生成するHTML本体
例:
WEBの文面だと使わない
Pages
Templates
Organisms
Molecules
Atoms
Vueでやるとどうなるか
■単一ファイルコンポーネント
■テストコードで品質担保
■Webコンポーネントベースの実装
■仮想DOM
Vueの特徴
Webコンポーネント
■HTML/CSS/JSで1セット
■Scoped CSS
■webpack + babel
仮想DOM
■DOMをほじくり回す必要がない
■テスト容易性
Vueでのテスト
■vue-test-utilsを使う
■jsdom使ってブラウザレステスト
VueでAtomicデザイン
■ボトムアップでやる
■慣れるまで修行
THANKS
!

More Related Content

Similar to Atomic design+vue

マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後
Akira Inoue
 
JSX Design Overview (日本語)
JSX Design Overview (日本語)JSX Design Overview (日本語)
JSX Design Overview (日本語)
Kazuho Oku
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
 
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Akira Inoue
 
One ASP.NET の今とこれから
One ASP.NET の今とこれからOne ASP.NET の今とこれから
One ASP.NET の今とこれから
Akira Inoue
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
 
Java fx勉強会lt 第8回
Java fx勉強会lt 第8回Java fx勉強会lt 第8回
Java fx勉強会lt 第8回
Taiji Miyabe
 
Software Development with Symfony
Software Development with SymfonySoftware Development with Symfony
Software Development with Symfony
Atsuhiro Kubo
 
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
Tomoharu ASAMI
 

Similar to Atomic design+vue (20)

SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介SilverlightとSharePoint2010の紹介
SilverlightとSharePoint2010の紹介
 
マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後マイクロソフトWeb開発の今と今後
マイクロソフトWeb開発の今と今後
 
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ 【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
【BS14】Blazor WebAssemblyとJavaScriptのインターオペラビリティ
 
JSX Design Overview (日本語)
JSX Design Overview (日本語)JSX Design Overview (日本語)
JSX Design Overview (日本語)
 
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
 
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
Visual Studio 2012 で実現する HTML5 & マルチ デバイス時代の Web 開発
 
One ASP.NET の今とこれから
One ASP.NET の今とこれからOne ASP.NET の今とこれから
One ASP.NET の今とこれから
 
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
Synquery ja
Synquery jaSynquery ja
Synquery ja
 
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
 
jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発jQuery と MVC で実践する標準志向 Web 開発
jQuery と MVC で実践する標準志向 Web 開発
 
Devtools.next
Devtools.nextDevtools.next
Devtools.next
 
Mvc conf session_5_isami
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isami
 
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
 
Java fx勉強会lt 第8回
Java fx勉強会lt 第8回Java fx勉強会lt 第8回
Java fx勉強会lt 第8回
 
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
 
Software Development with Symfony
Software Development with SymfonySoftware Development with Symfony
Software Development with Symfony
 
About rails 3
About rails 3About rails 3
About rails 3
 
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
 

More from 小川 昌吾

More from 小川 昌吾 (20)

Effective flutter
Effective flutterEffective flutter
Effective flutter
 
Flutter first impression
Flutter first impressionFlutter first impression
Flutter first impression
 
Flutter management statement
Flutter management statementFlutter management statement
Flutter management statement
 
Laravel vue-project-upload
Laravel vue-project-uploadLaravel vue-project-upload
Laravel vue-project-upload
 
Lara vue
Lara vueLara vue
Lara vue
 
今年はある意味当たり年だった! という一年振り返り
今年はある意味当たり年だった! という一年振り返り今年はある意味当たり年だった! という一年振り返り
今年はある意味当たり年だった! という一年振り返り
 
Njug docker-20180623
Njug docker-20180623Njug docker-20180623
Njug docker-20180623
 
アプリ屋のための Docker入門
アプリ屋のための Docker入門アプリ屋のための Docker入門
アプリ屋のための Docker入門
 
Njug 20180414
Njug 20180414Njug 20180414
Njug 20180414
 
Java屋からPHPerになって1年くらい経った
Java屋からPHPerになって1年くらい経ったJava屋からPHPerになって1年くらい経った
Java屋からPHPerになって1年くらい経った
 
チュートリアルではじめるVue.js
チュートリアルではじめるVue.jsチュートリアルではじめるVue.js
チュートリアルではじめるVue.js
 
受託、SES、WEBと経験したので比較してみた
受託、SES、WEBと経験したので比較してみた受託、SES、WEBと経験したので比較してみた
受託、SES、WEBと経験したので比較してみた
 
ITの開発現場における最近の当たり前これからの当たり前(主観)
ITの開発現場における最近の当たり前これからの当たり前(主観)ITの開発現場における最近の当たり前これからの当たり前(主観)
ITの開発現場における最近の当たり前これからの当たり前(主観)
 
非エンジニアに捧ぐツアーオブ構成管理
非エンジニアに捧ぐツアーオブ構成管理非エンジニアに捧ぐツアーオブ構成管理
非エンジニアに捧ぐツアーオブ構成管理
 
Dynamo db はじめの一歩
Dynamo db はじめの一歩Dynamo db はじめの一歩
Dynamo db はじめの一歩
 
スキトラGit
スキトラGitスキトラGit
スキトラGit
 
スキトラ Spring + mybatis
スキトラ Spring + mybatisスキトラ Spring + mybatis
スキトラ Spring + mybatis
 
テストコード入門
テストコード入門テストコード入門
テストコード入門
 
IoT検定
IoT検定IoT検定
IoT検定
 
MySQL入門
MySQL入門MySQL入門
MySQL入門
 

Atomic design+vue

Editor's Notes

  1. 観測範囲内での偏見 レベル2くらいまでは当たり前。 3になると市場価値が一気に上がる。 4は稀有。 5はまちまち、4と5両方できる人は間違いなく価値がある
  2. 再利用性: テスト済コンポーネントについて再利用することで品質を担保しながら再利用 UI設計に秩序: コンポーネント化することで似たようなアイテムをまとめる役割を果たす この結果、見た目や利便性が統一されやすい 並行開発: 一つの画面で複数のコンポーネントを組み合わせることになる為、コンフリクトさせずに開発可能になる なので、多人数で1つの画面を開発しやすい 手戻りが減る: 関係するコンポーネントだけ改造すれば良いから影響範囲が明確になる、または別のコンポーネントで代替するといったことが可能になる 他のシステムに持ち出す: 関連するコンポーネントを一式持っていけば他のシステムで使える
  3. 再利用性: テスト済コンポーネントについて再利用することで品質を担保しながら再利用 UI設計に秩序: コンポーネント化することで似たようなアイテムをまとめる役割を果たす この結果、見た目や利便性が統一されやすい 並行開発: 一つの画面で複数のコンポーネントを組み合わせることになる為、コンフリクトさせずに開発可能になる なので、多人数で1つの画面を開発しやすい 手戻りが減る: 関係するコンポーネントだけ改造すれば良いから影響範囲が明確になる、または別のコンポーネントで代替するといったことが可能になる 他のシステムに持ち出す: 関連するコンポーネントを一式持っていけば他のシステムで使える
  4. 実際Vueに限った話ではない
  5. ざっくり見ていく
  6. HTML/CSS/JS: 単一ファイルコンポーネントで実現、レンダリングはJSで行われる JSはコンポーネントごとに閉じる Scoped CSS: 単一ファイルコンポーネントでCSSが閉じるため、階層による上書きとかされなくて済む ここまで使うとコンポーネントのカプセル化が実現する
  7. テスト容易性: DOMと紐づくからテストしづらかったけど、仮想DOM(オンメモリ)のおかげでテストがしやすくなった
  8. テスト容易性: DOMと紐づくからテストしづらかったけど、仮想DOM(オンメモリ)のおかげでテストがしやすくなった
  9. ボトムアップ: テストコードを後から足してるからトップダウンになってる データの連携方法が親から子に伝搬するようになってちゃってるから、コンポーネントで閉じれてない しんどい: 並行開発してこそのスピード感がある気がしている 一人で全部作ると遅い気がする(慣れの問題な気もするけど)