SlideShare a Scribd company logo
1 of 20
Download to read offline
Takuya Tejima at GAOGAO Pte. Ltd.
2020/06
Next.js
Storybook Driven Development
自己紹介
● 手島拓也 (@tejitak)
● 経歴
● IBM / Software Engineer 東京
● LINE / Frontend Engineer 東京
● UPSTAY Pte. ltd. / Co-Founder&CTO タイ
● GAOGAO Pte. Ltd. / Co-Founder&CEO
タイ・ホーチミン・シンガポール・東京
● 「Vue.js入門」共著
● 東南アジアのどこかにいます (今現在はシンガポール )
● #婚活男子
● 0->1やグローバル志向のエンジニア募集中です!
Storybookとは
Storybookとは
- コンポーネントカタログを作れるもの https://storybook.js.org/
- ReactやVue用のpluginが提供されている
4
「UIコンポーネントのTDD」に近い発想
- 前提
- デザイナーがプロダクト横断した別途デザインを作っている
- 開発メンバーがAtomic Designの基礎を理解している
- 結果的に以下のDX(Developer Experience)が得られる
- 疎結合なコンポーネント設計の意識持てる
- 新規ページを作成時に再利用のコンポーネントを探しやすい
- 新しいメンバーにもコンポーネント実装・利用方法の理解がしやすい
- Auto reloadが便利
- テストが実施しやすい
- 開発工数特に大きく上がらない
- 見てて気持ちいい
Storybook Driven Development
5
今回SDDを導入したプロジェクト
React v16.13.1 & TypeScript の開発プロジェクト
- Atomic Designの導入
- Next.jsベースで @storybook/react アドオンの導入
- React hooks & FC / Styled Componentの導入
- @storybook/addon-storyshots-puppeteerによる画
像テスト
- チームはグローバル構成・コミュニケーションは英語
6
- 小さなパーツが積み重なって大きな要素を構成するデザインシステム(原子が分子
を作り、分子が有機体を作る)
- Atoms (原子):コンポーネントの最小単位
- Molecules (分子):1つ以上のAtomを使用して構成されたコンポーネント単位
- Organisms (有機体):1つ以上のMoleculesを使用して構成されたコンポーネント単位
Atomic Designとは
7
出典: https://atomicdesign.bradfrost.com/chapter-2/
Atomic Designの例
8
Atoms (原子) Molecules (分子)
Organisms (有機体)
Styled ComponentとStyled Systemを使ったスタイルの実装
9
- styled-components
- https://styled-components.com/
- CSS in JSライブラリ
- コンポーネントに閉じたScoped CSSの実現
- CSS命名規則に悩まされる必要なし
- styled-system
- https://styled-system.com/
- Space, Layout, Responsive, Variantなどの便利Utilityのstyled-component
の拡張ライブラリ
Styled componentを利用したコンポーネント実装例
10
- カード型コンポーネントの例
- Storybook開発で意識すること
- [コンポーネント名].stories.ts というstorybookファイルを必ずコンポーネントと
対で作る
- 実装前にインターフェース(props)を設計する
- Formが絡むコンポーネントの実装にはページコンポーネント状で
react-hooks-formを利用しているケースを想定する
- 使用感を統一する (リンクメニュー、リンクボタンなどの実装)
- 同じようなものを作らないように再利用できるコンポーネントがあるかを確認す
る → コンポーネントが増えるほどフロントエンド全体の開発は加速する
React hooks & FC
11
Pageコンポーネントの実装
12
- Storybookで作成したコンポーネントを利用するPageコンポーネント
- Next.jsのpages配下コンポーネントでは、基本はレイアウト+API・デー
タの繋ぎ部分が仕事範囲
- コンポーネント間のデータの受け渡しはuseContextに統一
(useReducerは使わず)
react-hooks-formを使ったPageコンポーネント実装例
13
storyshots-puppeteerによるテスト
- Storyshotというjestベースのテストライブラリの拡張
- chromeのheadlessブラウザ用nodejsライブラリpuppeteerベースの実装
- 自動で画像による差分を検知して意図しないUIの変更があるとfailする
- テストコードを書く必要がないので導入コストが低い
- UIを意図的に変更した時はscreenshotファイルを消してrunすればsuccessになる
- 基本は初期表示状態の差分検知であるためJSによるアクションをトリガーにした何
かは検知できない
14
storyshots-puppeteerによるテストのTips
- アニメーション、画像のロード、マシンスペック、500ms対応
- ストーリー名の正規表現でテスト対象からexcludeも可能
- 画像に依存しているコンポーネント向けに遅延入れる必要あり
15
- 導入コストが低いため、サービス安定稼動後に導入オススメ
- スナップショット画像ファイルが生成されfailした画像は変更がハイライト
storyshots-puppeteerによるテスト結果
16
変更前
差分
変更後
Storybookデモ
快適・どんな人にオススメか
18
- Next/Nuxtなどを使っていて雑なコンポーネント仕様になりがちなのをある程度強
制的に防ぐことができる
- 1-2名で密にコミュニケーションを取る場合は恩恵が少ないかもしれない
- 3名以上で特に以下のような環境では、認識合わせのためのコミュニケーションの
工数を減らすことができる
- リモート環境
- 副業の方がいる
- 外国人の方
- コンポーネントの独立性・再利用性を高めたい方はおすすめ(誰かに使ってもらう
のを想定した書き方を皆が意識できるようになる)
快適フロントエンドDX(Developer Experience)の実現
- Next.js (React/TS) 事例でSDDを導入してみた
- Atomic Designと相性が良い
- 疎結合・再利用性を高めるコンポーネント実装を実現できる
- 自動テストの仕組みも提供されている
- 導入はデメリットよりメリットの方が多い
- 開発メンバーからは次のプロジェクトでも使いたいとの声が得られた
- DX(Developer Experience)高いのでおすすめ!
Storybook Driven Developmentまとめ
19
Thank You

More Related Content

What's hot

Glit platform紹介資料 ver0.2
Glit platform紹介資料 ver0.2Glit platform紹介資料 ver0.2
Glit platform紹介資料 ver0.2CaratInc
 
新卒入社のみなさまへ30代が贈る20代のキャリア戦略入門
新卒入社のみなさまへ30代が贈る20代のキャリア戦略入門新卒入社のみなさまへ30代が贈る20代のキャリア戦略入門
新卒入社のみなさまへ30代が贈る20代のキャリア戦略入門PIXTA Inc.
 
いまどき(これから)のPHP開発
いまどき(これから)のPHP開発いまどき(これから)のPHP開発
いまどき(これから)のPHP開発Kenjiro Kubota
 
withコロナでのアジャイルウェアの挑戦
withコロナでのアジャイルウェアの挑戦withコロナでのアジャイルウェアの挑戦
withコロナでのアジャイルウェアの挑戦agileware_jp
 
MVPの軌跡と実現したい世界観 『 誰もが自動化に取り組む未来 』
MVPの軌跡と実現したい世界観 『 誰もが自動化に取り組む未来 』MVPの軌跡と実現したい世界観 『 誰もが自動化に取り組む未来 』
MVPの軌跡と実現したい世界観 『 誰もが自動化に取り組む未来 』JunShiomi
 
組織の問題も解決するアーキテクチャ BackendsForFrontends
組織の問題も解決するアーキテクチャ BackendsForFrontends組織の問題も解決するアーキテクチャ BackendsForFrontends
組織の問題も解決するアーキテクチャ BackendsForFrontendsPIXTA Inc.
 
UiPath Test Suite の魅力とは?-続編-
UiPath Test Suite の魅力とは?-続編-UiPath Test Suite の魅力とは?-続編-
UiPath Test Suite の魅力とは?-続編-JunShiomi
 
アイスタイル特設サイトにおけるVue.jsの導入事例
アイスタイル特設サイトにおけるVue.jsの導入事例アイスタイル特設サイトにおけるVue.jsの導入事例
アイスタイル特設サイトにおけるVue.jsの導入事例Kenjiro Kubota
 
Angularおじさんの1年
Angularおじさんの1年Angularおじさんの1年
Angularおじさんの1年Hayashi Yuichi
 
実践!RPA のテクノロジーを活用した自動テスト
実践!RPA のテクノロジーを活用した自動テスト実践!RPA のテクノロジーを活用した自動テスト
実践!RPA のテクノロジーを活用した自動テストJunShiomi
 
要求開発 with You
要求開発 with You要求開発 with You
要求開発 with YouHaruo Sato
 
Vgにおけるuxデザインとagile開発@ハッカー道場
Vgにおけるuxデザインとagile開発@ハッカー道場Vgにおけるuxデザインとagile開発@ハッカー道場
Vgにおけるuxデザインとagile開発@ハッカー道場VOYAGE GROUP
 
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装SnapmartにおけるCameraRollから写真の複数枚アップロードの実装
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装PIXTA Inc.
 
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼンhiroyuki Yamamoto
 
国内初事例に学ぶSAPUI5
国内初事例に学ぶSAPUI5国内初事例に学ぶSAPUI5
国内初事例に学ぶSAPUI5Mitsuru Ogawa
 
LIGにおけるフロントエンドチーム構築
LIGにおけるフロントエンドチーム構築LIGにおけるフロントエンドチーム構築
LIGにおけるフロントエンドチーム構築Hayashi Yuichi
 
Redmine勉強会vol.1 なぜ組織にはドキュメンテーションが必要なのか
Redmine勉強会vol.1 なぜ組織にはドキュメンテーションが必要なのかRedmine勉強会vol.1 なぜ組織にはドキュメンテーションが必要なのか
Redmine勉強会vol.1 なぜ組織にはドキュメンテーションが必要なのか祐磨 堀
 
業務効率化と生産性向上で日本を元気に!
業務効率化と生産性向上で日本を元気に!業務効率化と生産性向上で日本を元気に!
業務効率化と生産性向上で日本を元気に!RYUTAHATAKEYAMA
 
Electron で作るはじめてのguiアプリ
Electron で作るはじめてのguiアプリElectron で作るはじめてのguiアプリ
Electron で作るはじめてのguiアプリ祐磨 堀
 
セキュリティを重視した本格ビジネスサイトをWordPressで作るためのセミナー
セキュリティを重視した本格ビジネスサイトをWordPressで作るためのセミナーセキュリティを重視した本格ビジネスサイトをWordPressで作るためのセミナー
セキュリティを重視した本格ビジネスサイトをWordPressで作るためのセミナーSPIRAL Inc.
 

What's hot (20)

Glit platform紹介資料 ver0.2
Glit platform紹介資料 ver0.2Glit platform紹介資料 ver0.2
Glit platform紹介資料 ver0.2
 
新卒入社のみなさまへ30代が贈る20代のキャリア戦略入門
新卒入社のみなさまへ30代が贈る20代のキャリア戦略入門新卒入社のみなさまへ30代が贈る20代のキャリア戦略入門
新卒入社のみなさまへ30代が贈る20代のキャリア戦略入門
 
いまどき(これから)のPHP開発
いまどき(これから)のPHP開発いまどき(これから)のPHP開発
いまどき(これから)のPHP開発
 
withコロナでのアジャイルウェアの挑戦
withコロナでのアジャイルウェアの挑戦withコロナでのアジャイルウェアの挑戦
withコロナでのアジャイルウェアの挑戦
 
MVPの軌跡と実現したい世界観 『 誰もが自動化に取り組む未来 』
MVPの軌跡と実現したい世界観 『 誰もが自動化に取り組む未来 』MVPの軌跡と実現したい世界観 『 誰もが自動化に取り組む未来 』
MVPの軌跡と実現したい世界観 『 誰もが自動化に取り組む未来 』
 
組織の問題も解決するアーキテクチャ BackendsForFrontends
組織の問題も解決するアーキテクチャ BackendsForFrontends組織の問題も解決するアーキテクチャ BackendsForFrontends
組織の問題も解決するアーキテクチャ BackendsForFrontends
 
UiPath Test Suite の魅力とは?-続編-
UiPath Test Suite の魅力とは?-続編-UiPath Test Suite の魅力とは?-続編-
UiPath Test Suite の魅力とは?-続編-
 
アイスタイル特設サイトにおけるVue.jsの導入事例
アイスタイル特設サイトにおけるVue.jsの導入事例アイスタイル特設サイトにおけるVue.jsの導入事例
アイスタイル特設サイトにおけるVue.jsの導入事例
 
Angularおじさんの1年
Angularおじさんの1年Angularおじさんの1年
Angularおじさんの1年
 
実践!RPA のテクノロジーを活用した自動テスト
実践!RPA のテクノロジーを活用した自動テスト実践!RPA のテクノロジーを活用した自動テスト
実践!RPA のテクノロジーを活用した自動テスト
 
要求開発 with You
要求開発 with You要求開発 with You
要求開発 with You
 
Vgにおけるuxデザインとagile開発@ハッカー道場
Vgにおけるuxデザインとagile開発@ハッカー道場Vgにおけるuxデザインとagile開発@ハッカー道場
Vgにおけるuxデザインとagile開発@ハッカー道場
 
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装SnapmartにおけるCameraRollから写真の複数枚アップロードの実装
SnapmartにおけるCameraRollから写真の複数枚アップロードの実装
 
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
 
国内初事例に学ぶSAPUI5
国内初事例に学ぶSAPUI5国内初事例に学ぶSAPUI5
国内初事例に学ぶSAPUI5
 
LIGにおけるフロントエンドチーム構築
LIGにおけるフロントエンドチーム構築LIGにおけるフロントエンドチーム構築
LIGにおけるフロントエンドチーム構築
 
Redmine勉強会vol.1 なぜ組織にはドキュメンテーションが必要なのか
Redmine勉強会vol.1 なぜ組織にはドキュメンテーションが必要なのかRedmine勉強会vol.1 なぜ組織にはドキュメンテーションが必要なのか
Redmine勉強会vol.1 なぜ組織にはドキュメンテーションが必要なのか
 
業務効率化と生産性向上で日本を元気に!
業務効率化と生産性向上で日本を元気に!業務効率化と生産性向上で日本を元気に!
業務効率化と生産性向上で日本を元気に!
 
Electron で作るはじめてのguiアプリ
Electron で作るはじめてのguiアプリElectron で作るはじめてのguiアプリ
Electron で作るはじめてのguiアプリ
 
セキュリティを重視した本格ビジネスサイトをWordPressで作るためのセミナー
セキュリティを重視した本格ビジネスサイトをWordPressで作るためのセミナーセキュリティを重視した本格ビジネスサイトをWordPressで作るためのセミナー
セキュリティを重視した本格ビジネスサイトをWordPressで作るためのセミナー
 

Similar to Next.js Storybook Driven Development

モダンフロントエンド開発者に求められるスキルとは
モダンフロントエンド開発者に求められるスキルとはモダンフロントエンド開発者に求められるスキルとは
モダンフロントエンド開発者に求められるスキルとはTakuya Tejima
 
Azureクラウドのネイティブアプリ、IoTとエッジAIの管理ソリューション
Azureクラウドのネイティブアプリ、IoTとエッジAIの管理ソリューションAzureクラウドのネイティブアプリ、IoTとエッジAIの管理ソリューション
Azureクラウドのネイティブアプリ、IoTとエッジAIの管理ソリューションJingun Jung
 
「コリビング&コワーキング / スキルアップ / ジョブマッチング / 起業支援」GAOGAO(ガオガオ)エンジニア事務所 18
 「コリビング&コワーキング / スキルアップ / ジョブマッチング / 起業支援」GAOGAO(ガオガオ)エンジニア事務所 18  「コリビング&コワーキング / スキルアップ / ジョブマッチング / 起業支援」GAOGAO(ガオガオ)エンジニア事務所 18
「コリビング&コワーキング / スキルアップ / ジョブマッチング / 起業支援」GAOGAO(ガオガオ)エンジニア事務所 18 Takuya Tejima
 
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜Masakazu Muraoka
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
SwaggerのさわりだけMasakazu Muraoka
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについてMasahito Zembutsu
 
CTOの考えるエンジニアマネジメント2
CTOの考えるエンジニアマネジメント2CTOの考えるエンジニアマネジメント2
CTOの考えるエンジニアマネジメント2LIFULL Co., Ltd.
 
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるWeb屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるMasakazu Muraoka
 
SCRUMMASTER THE BOOK翻訳活動における、リモート x モブ実践
SCRUMMASTER THE BOOK翻訳活動における、リモート x モブ実践SCRUMMASTER THE BOOK翻訳活動における、リモート x モブ実践
SCRUMMASTER THE BOOK翻訳活動における、リモート x モブ実践ikikko
 
2022_08_10 SaaS.tech #5業務システム開発でデザインとフロントエンドも妥協しない話
2022_08_10 SaaS.tech #5業務システム開発でデザインとフロントエンドも妥協しない話2022_08_10 SaaS.tech #5業務システム開発でデザインとフロントエンドも妥協しない話
2022_08_10 SaaS.tech #5業務システム開発でデザインとフロントエンドも妥協しない話Kazuki Murahama
 
Spath for enterprise
Spath for enterpriseSpath for enterprise
Spath for enterpriseKoichiro Sumi
 
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきことメンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきことMitsuru Ogawa
 
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).Fumiya Sakai
 
Yeomanではじめる爆速webアプリ開発
Yeomanではじめる爆速webアプリ開発Yeomanではじめる爆速webアプリ開発
Yeomanではじめる爆速webアプリ開発Masakazu Muraoka
 
KITEMATIC便利そうだよ
KITEMATIC便利そうだよKITEMATIC便利そうだよ
KITEMATIC便利そうだよKentaro Takasaki
 
ノーコードとアジャイル
ノーコードとアジャイルノーコードとアジャイル
ノーコードとアジャイルYukio Okajima
 
HTML5でOpen Dataをやってみた
HTML5でOpen DataをやってみたHTML5でOpen Dataをやってみた
HTML5でOpen DataをやってみたMasakazu Muraoka
 

Similar to Next.js Storybook Driven Development (20)

モダンフロントエンド開発者に求められるスキルとは
モダンフロントエンド開発者に求められるスキルとはモダンフロントエンド開発者に求められるスキルとは
モダンフロントエンド開発者に求められるスキルとは
 
Azureクラウドのネイティブアプリ、IoTとエッジAIの管理ソリューション
Azureクラウドのネイティブアプリ、IoTとエッジAIの管理ソリューションAzureクラウドのネイティブアプリ、IoTとエッジAIの管理ソリューション
Azureクラウドのネイティブアプリ、IoTとエッジAIの管理ソリューション
 
「コリビング&コワーキング / スキルアップ / ジョブマッチング / 起業支援」GAOGAO(ガオガオ)エンジニア事務所 18
 「コリビング&コワーキング / スキルアップ / ジョブマッチング / 起業支援」GAOGAO(ガオガオ)エンジニア事務所 18  「コリビング&コワーキング / スキルアップ / ジョブマッチング / 起業支援」GAOGAO(ガオガオ)エンジニア事務所 18
「コリビング&コワーキング / スキルアップ / ジョブマッチング / 起業支援」GAOGAO(ガオガオ)エンジニア事務所 18
 
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
JavaScriptで ごく普通にhttp通信をする 〜esp8266+espruinoでhttp getリクエストをするテスト〜
 
Swaggerのさわりだけ
SwaggerのさわりだけSwaggerのさわりだけ
Swaggerのさわりだけ
 
LIGでのDocker活用
LIGでのDocker活用LIGでのDocker活用
LIGでのDocker活用
 
2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
 
CTOの考えるエンジニアマネジメント2
CTOの考えるエンジニアマネジメント2CTOの考えるエンジニアマネジメント2
CTOの考えるエンジニアマネジメント2
 
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみるWeb屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
Web屋という仕事のこれから Web動向からWeb屋に必要な技術を考えてみる
 
SCRUMMASTER THE BOOK翻訳活動における、リモート x モブ実践
SCRUMMASTER THE BOOK翻訳活動における、リモート x モブ実践SCRUMMASTER THE BOOK翻訳活動における、リモート x モブ実践
SCRUMMASTER THE BOOK翻訳活動における、リモート x モブ実践
 
2022_08_10 SaaS.tech #5業務システム開発でデザインとフロントエンドも妥協しない話
2022_08_10 SaaS.tech #5業務システム開発でデザインとフロントエンドも妥協しない話2022_08_10 SaaS.tech #5業務システム開発でデザインとフロントエンドも妥協しない話
2022_08_10 SaaS.tech #5業務システム開発でデザインとフロントエンドも妥協しない話
 
Thing.jsについて
Thing.jsについてThing.jsについて
Thing.jsについて
 
Spath for enterprise
Spath for enterpriseSpath for enterprise
Spath for enterprise
 
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきことメンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
メンテナンス性の良いWebシステムを構築するためにjavaとフロントエンドでやるべきこと
 
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
Hint of“Passcode Lock”Screen and Logic (with LocalAuthentication).
 
Yeomanではじめる爆速webアプリ開発
Yeomanではじめる爆速webアプリ開発Yeomanではじめる爆速webアプリ開発
Yeomanではじめる爆速webアプリ開発
 
KITEMATIC便利そうだよ
KITEMATIC便利そうだよKITEMATIC便利そうだよ
KITEMATIC便利そうだよ
 
ノーコードとアジャイル
ノーコードとアジャイルノーコードとアジャイル
ノーコードとアジャイル
 
HTML5でOpen Dataをやってみた
HTML5でOpen DataをやってみたHTML5でOpen Dataをやってみた
HTML5でOpen Dataをやってみた
 
SIerのDevRel術
SIerのDevRel術SIerのDevRel術
SIerのDevRel術
 

More from Takuya Tejima

Nest.js Introduction
Nest.js IntroductionNest.js Introduction
Nest.js IntroductionTakuya Tejima
 
GAOGAO発表資料〜エンジニアギルドミートアップ〜
GAOGAO発表資料〜エンジニアギルドミートアップ〜GAOGAO発表資料〜エンジニアギルドミートアップ〜
GAOGAO発表資料〜エンジニアギルドミートアップ〜Takuya Tejima
 
エンジニア・コミュニティ・ドリブンで会社を成長させていくGAOGAO
エンジニア・コミュニティ・ドリブンで会社を成長させていくGAOGAOエンジニア・コミュニティ・ドリブンで会社を成長させていくGAOGAO
エンジニア・コミュニティ・ドリブンで会社を成長させていくGAOGAOTakuya Tejima
 
Global Creators Workshop in Asia
Global Creators Workshop in AsiaGlobal Creators Workshop in Asia
Global Creators Workshop in AsiaTakuya Tejima
 
Global Startup Creators vol.5 - Facebook bot development handson
Global Startup Creators vol.5 - Facebook bot development handsonGlobal Startup Creators vol.5 - Facebook bot development handson
Global Startup Creators vol.5 - Facebook bot development handsonTakuya Tejima
 
How to Build SPA with Vue Router 2.0
How to Build SPA with Vue Router 2.0How to Build SPA with Vue Router 2.0
How to Build SPA with Vue Router 2.0Takuya Tejima
 
Vue 2.0 + Vuex Router & Vuex at Vue.js
Vue 2.0 + Vuex Router & Vuex at Vue.jsVue 2.0 + Vuex Router & Vuex at Vue.js
Vue 2.0 + Vuex Router & Vuex at Vue.jsTakuya Tejima
 
Parseでちゃんとアプリを作るコツ
Parseでちゃんとアプリを作るコツParseでちゃんとアプリを作るコツ
Parseでちゃんとアプリを作るコツTakuya Tejima
 
React Canvasで作るFlappy Bird
React Canvasで作るFlappy BirdReact Canvasで作るFlappy Bird
React Canvasで作るFlappy BirdTakuya Tejima
 

More from Takuya Tejima (10)

Nest.js Introduction
Nest.js IntroductionNest.js Introduction
Nest.js Introduction
 
GAOGAO発表資料〜エンジニアギルドミートアップ〜
GAOGAO発表資料〜エンジニアギルドミートアップ〜GAOGAO発表資料〜エンジニアギルドミートアップ〜
GAOGAO発表資料〜エンジニアギルドミートアップ〜
 
エンジニア・コミュニティ・ドリブンで会社を成長させていくGAOGAO
エンジニア・コミュニティ・ドリブンで会社を成長させていくGAOGAOエンジニア・コミュニティ・ドリブンで会社を成長させていくGAOGAO
エンジニア・コミュニティ・ドリブンで会社を成長させていくGAOGAO
 
Global Creators Workshop in Asia
Global Creators Workshop in AsiaGlobal Creators Workshop in Asia
Global Creators Workshop in Asia
 
Global Startup Creators vol.5 - Facebook bot development handson
Global Startup Creators vol.5 - Facebook bot development handsonGlobal Startup Creators vol.5 - Facebook bot development handson
Global Startup Creators vol.5 - Facebook bot development handson
 
How to Build SPA with Vue Router 2.0
How to Build SPA with Vue Router 2.0How to Build SPA with Vue Router 2.0
How to Build SPA with Vue Router 2.0
 
Vue 2.0 + Vuex Router & Vuex at Vue.js
Vue 2.0 + Vuex Router & Vuex at Vue.jsVue 2.0 + Vuex Router & Vuex at Vue.js
Vue 2.0 + Vuex Router & Vuex at Vue.js
 
Parseでちゃんとアプリを作るコツ
Parseでちゃんとアプリを作るコツParseでちゃんとアプリを作るコツ
Parseでちゃんとアプリを作るコツ
 
DevMorning
DevMorningDevMorning
DevMorning
 
React Canvasで作るFlappy Bird
React Canvasで作るFlappy BirdReact Canvasで作るFlappy Bird
React Canvasで作るFlappy Bird
 

Next.js Storybook Driven Development