SlideShare a Scribd company logo
Vue.jsでFormを
Atomic Designしてみた時の
コンポーネント間の
データのやりとり
Laravel/Vue.js勉強会 #10
2019/07/18
Yuta Ohashi
2
blue_goheimochi
⻘ごへいもち
株式会社オウケイウェイヴ
PHP(Laravel),
Javascript(Vue.js/Nuxt.js)
Docker, Golang, DDD …
おおはし ゆうた
3
今⽇話すこと
• Atomic Designって︖
• Formをコンポーネントに分解してみる
• コンポーネント間のデータのやりとり
• まとめ
4
Atomic Designって︖
5
Atomic Designって︖
http://atomicdesign.bradfrost.com/
6
Atomic Designって︖
• Bread Frostさんが提唱
• Atomsが集まってMoleculesに、Moleculesが集まってOrganismsに、
Organismsが集まって・・・・Pageができる
• ⼤きな要素を細分化して、⼩さい要素として捉える
• 詳細は「Atomic Designとは︖」で検索 & 原典を参照ください
7
Formを
コンポーネントに
分解してみる
8
Formをコンポーネントに分解してみる
9
Formをコンポーネントに分解してみる
10
Formをコンポーネントに分解してみる
Pages
11
Formをコンポーネントに分解してみる
ここになにかが⼊る
12
Formをコンポーネントに分解してみる
ここになにかが⼊るTemplates
13
Formをコンポーネントに分解してみる
14
Formをコンポーネントに分解してみる
Organisms
15
Formをコンポーネントに分解してみる
16
Formをコンポーネントに分解してみる
Molecules
Molecules
Molecules
Molecules
Molecules
17
Formをコンポーネントに分解してみる
18
Formをコンポーネントに分解してみる
Atom
Atom
Atom
Atom
Atom
Atom
Atom
Atom
Atom
Atom
Atom
Atom
Atom Atom
Atom Atom
19
Formをコンポーネントに分解してみる
20
Formをコンポーネントに分解してみる
21
Formをコンポーネントに分解してみる
22
Formをコンポーネントに分解してみる
23
コンポーネント間の
データのやりとり
24
コンポーネント間のデータのやりとり
• 基本的にデータはPagesかOrganismsで管理する
• APIコールやStoreでデータを取得・保持する場合もPagesかOrganismsで
• 要するに、MoleculesやAtomsは状態をなるべく持たないようにする
• 親⼦のコンポーネント間のやり取りは props in / events out で
• 親から⼦にはpropsでデータを渡す
• 親でpropsの値が変更されれば⼦に伝搬する
• ⼦から親には$emitでイベントを発⾏し、データの変更を伝える
• 親コンポーネントが⼦のイベントを検知する
25
コンポーネント間のデータのやりとり
• 基本的にデータはPagesかOrganismsで管理する
• APIコールやStoreでデータを取得・保持する場合もPagesかOrganismsで
• 要するに、MoleculesやAtomsは状態をなるべく持たないようにする
• 親⼦のコンポーネント間のやり取りは props in / events out で
• 親から⼦にはpropsでデータを渡す
• 親でpropsの値が変更されれば⼦に伝搬する
• ⼦から親には$emitでイベントを発⾏し、データの変更を伝える
• 親コンポーネントが⼦のイベントを検知する
26
コンポーネント間のデータのやりとり
27
コンポーネント間のデータのやりとり
export default {
data () {
return {
user_id: "",
password: "",
mail_address: "",
gender_box: "",
birthday: ""
}
}
}
Organismsでデータを保持する
28
コンポーネント間のデータのやりとり
<template>
<form>
<user-id-box :user_id="user_id" @change="changeUserId" />
<password-box :password="password" @change="~" />
<mail-address-box :mail_address="mail_address" @change="~" />
<gender-box :gender="gender" @change="~" />
<birthday-box :birthday="birthday" @change="~" />
<submit-button @click="doRegister">登録</submit-button>
</form>
</template>
propsでデータを
⼦コンポーネント(Molecules)に渡す
29
コンポーネント間のデータのやりとり
30
コンポーネント間のデータのやりとり
export default {
props: {
user_id: String
},
methods: {
changeUserId: function (user_id) {
this.$emit("change", user_id)
}
}
}
親(Organisms)から
propsでデータを受け取る
31
コンポーネント間のデータのやりとり
<template>
<div>
<form-label for="user_id">ユーザーID:</form-label>
<input-text :value="user_id" @change="changeUserId"/>
</div>
</template>
さらに⼦コンポーネント(Atoms)に
propsでデータを渡す
32
コンポーネント間のデータのやりとり
<template>
<div>
<form-label for="user_id">ユーザーID:</form-label>
<input-text :value="user_id" @change="changeUserId"/>
</div>
</template>
さらに⼦コンポーネント(Atoms)に
propsでデータを渡す
v-bind:value で渡すのがここではちょっと重要
(Atomsのコンポーネントで v-modelを使うため)
33
コンポーネント間のデータのやりとり
34
コンポーネント間のデータのやりとりexport default {
props: {
value: String
},
computed: {
input_text: {
get: function () {
return this.value
},
set: function (value) {
this.$emit("change", value)
}
}
}
}
親(Molecules)から
propsでデータを受け取る
35
コンポーネント間のデータのやりとり
Atomは最⼩の要素
Inputなのでフォーム⼊⼒バインディングを利⽤
https://jp.vuejs.org/v2/guide/forms.html
<template>
<input type="text" v-model="input_text">
</template>
36
コンポーネント間のデータのやりとり
<template>
<input type="text" v-model="input_text">
</template>
v-modelはv-bind:valueとv-on:inputを
⼀度に設定してくれている
https://jp.vuejs.org/v2/guide/components.html#コンポーネントで-v-model-を使う
<template>
<input type="text”
:value="input_text”
@input="input_text = $event.$target.value”>
</template>
37
コンポーネント間のデータのやりとりexport default {
props: {
value: String
},
computed: {
input_text: {
get: function () {
return this.value
},
set: function (value) {
this.$emit("change", value)
}
}
}
}
v-modelの値の変更は
computedプロパティで知る
(のが多分定⽯)
https://jp.vuejs.org/v2/guide/computed.html算出-Setter-関数
38
コンポーネント間のデータのやりとりexport default {
props: {
value: String
},
computed: {
input_text: {
get: function () {
return this.value
},
set: function (value) {
this.$emit("change", value)
}
}
}
}
inputの⼊⼒に変更があった場合に
⼦コンポーネント(Atoms)がイベントを発⾏
親コンポーネント(Molecules)でそのイベントを検知する
39
コンポーネント間のデータのやりとりexport default {
props: {
value: String
},
computed: {
input_text: {
get: function () {
return this.value
},
set: function (value) {
this.$emit("change", value)
}
}
}
}
親コンポーネント(Molecules)に
変更を伝える場合は$emitを使う
下記の場合は、
親コンポーネントで定義した
changeイベントが呼び出され、valueの値を⼀緒に送る
40
コンポーネント間のデータのやりとり
<template>
<div>
<form-label for="user_id">ユーザーID:</form-label>
<input-text :value="user_id" @change="changeUserId"/>
</div>
</template>
⼦コンポーネント(Atoms)のイベントを検知して
changeのイベントが呼び出されるので
changeUserIdを実⾏する
41
コンポーネント間のデータのやりとり
export default {
props: {
user_id: String
},
methods: {
changeUserId: function (user_id) {
this.$emit("change", user_id)
}
}
}
⼦コンポーネント(Atoms)から引数に
変更された値が渡ってくるので
⼦コンポーネント(Molecules)でイベントを発⾏し
親コンポーネント(Organisms)でそのイベントを検知する
42
コンポーネント間のデータのやりとり
<template>
<form>
<user-id-box :user_id="user_id" @change="changeUserId" />
<password-box :password="password" @change="~" />
<mail-address-box :mail_address="mail_address" @change="~" />
<gender-box :gender="gender" @change="~" />
<birthday-box :birthday="birthday" @change="~" />
<submit-button @click="doRegister">登録</submit-button>
</form>
</template>
⼦コンポーネント(Molecules)のイベントを検知して
changeのイベントが呼び出されるので
changeUserIdを実⾏する
43
コンポーネント間のデータのやりとり
export default {
data () {
return {
user_id: "",
password: null,
~~~~~~
}
},
methods: {
changeUserId (user_id) {
this.user_id = user_id
}
}
}
⼦コンポーネント(Molecules)から引数に
変更された値が渡ってくるので
Organismsのdataを変更する
44
コンポーネント間のデータのやりとり
export default {
data () {
return {
user_id: "blue-goheimochi",
password: null,
~~~~~~
}
},
methods: {
changeUserId (user_id) {
this.user_id = user_id
}
}
}
dataが変更されると
親から⼦に変更が伝わってデータが更新される
⼦コンポーネントでは値を管理せず、
親のコンポーネントでpropsを変更することで
⼦コンポーネントに伝搬させる
わかりづらい
46
画⾯キャプチャを⾒ながら
もう⼀度
47
コンポーネント間のデータのやりとり
OrganismsからMoleculesにprops経由でデータ(空の値)が渡る
48
コンポーネント間のデータのやりとり
MoleculesからAtomsにprops経由でデータ(空の値)が渡る
49
コンポーネント間のデータのやりとり
inputのvalueに値(空の値)が反映される
50
コンポーネント間のデータのやりとり
inputに⼊⼒があったのを検知する(この時点ではinputのvalueには反映されない)
blue-goheimochi
51
コンポーネント間のデータのやりとり
Atomsでイベントが発⾏され
Moleculesがそれを変更された値と⼀緒に検知する
blue-goheimochi
52
コンポーネント間のデータのやりとり
Moleculesでイベントが発⾏され
Organismsがそれを変更された値と⼀緒に検知する
blue-goheimochi
53
コンポーネント間のデータのやりとり
Organismsで変更された値を更新する
user_id = blue-goheimochi
54
コンポーネント間のデータのやりとり
OrganismsからMoleculesにprops経由でデータ(更新された値)が渡る
blue-goheimochi
55
コンポーネント間のデータのやりとり
MoleculesからAtomsにprops経由でデータ(更新された値)が渡る
blue-goheimochi
56
コンポーネント間のデータのやりとり
inputのvalueに値(更新された値)が反映される
blue-goheimochi
なるほど
わからん
58
シンプルに
props in / events out
だけをみる
59
コンポーネント間のデータのやりとり
Organisms Molecules Atoms
props in / events out
値が変更されたら
イベントを発⾏する
60
コンポーネント間のデータのやりとり
Organisms Molecules Atoms
props in / events out
⼦が発⾏したイベントを
親が検知して値を受け取る
61
コンポーネント間のデータのやりとり
Organisms Molecules Atoms
props in / events out
検知した値とともに
イベントを発⾏する
62
コンポーネント間のデータのやりとり
Organisms Molecules Atoms
props in / events out
⼦が発⾏したイベントを
親が検知して値を受け取る
63
コンポーネント間のデータのやりとり
Organisms Molecules Atoms
props in / events out
値を設定する
64
コンポーネント間のデータのやりとり
Organisms Molecules Atoms
値が設定された
props in / events out
65
コンポーネント間のデータのやりとり
Organisms Molecules Atoms
propsでデータが渡るprops in / events out
66
コンポーネント間のデータのやりとり
Organisms Molecules Atoms
propsでデータが渡る
props in / event out
67
コンポーネント間のデータのやりとり
Organisms Molecules Atoms
props in / events out
値が更新される
どうですか︖
正直⾔葉での説明
わかりづらい
実際に
⼿を動かしたほうが
理解が進む︕
71
まとめ
72
まとめ
• Vue.jsでFormをAtomic Designしてみた
• コンポーネントが複数階層の親⼦関係になる
• データはなるべく上位の親で管理
• Organismsより上でデータは持つ
• Molecules、Atomsに状態は持たない
• うまいこと親⼦間でデータをやりとりする
• props in / events out が⼤事
• 実際に⼿を動かして感覚をつかみましょう︕

More Related Content

What's hot

世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean ArchitectureAtsushi Nakamura
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD増田 亨
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意Yoshitaka Kawashima
 
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し増田 亨
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説増田 亨
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する増田 亨
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで増田 亨
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション土岐 孝平
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと土岐 孝平
 
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 FallYoshitaka Kawashima
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)Takuto Wada
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方増田 亨
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているKoichi Tanaka
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
Riverpodでテストを書こう
Riverpodでテストを書こうRiverpodでテストを書こう
Riverpodでテストを書こうShinnosuke Tokuda
 
SPAのルーティングの話
SPAのルーティングの話SPAのルーティングの話
SPAのルーティングの話ushiboy
 

What's hot (20)

世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
 
イミュータブルデータモデルの極意
イミュータブルデータモデルの極意イミュータブルデータモデルの極意
イミュータブルデータモデルの極意
 
SpringBootTest入門
SpringBootTest入門SpringBootTest入門
SpringBootTest入門
 
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説ドメイン駆動設計サンプルコードの徹底解説
ドメイン駆動設計サンプルコードの徹底解説
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
 
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
ドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装までドメイン駆動で開発する ラフスケッチから実装まで
ドメイン駆動で開発する ラフスケッチから実装まで
 
怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション怖くないSpring Bootのオートコンフィグレーション
怖くないSpring Bootのオートコンフィグレーション
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
 
実践 NestJS
実践 NestJS実践 NestJS
実践 NestJS
 
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
 
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
 
ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方ドメイン駆動設計の正しい歩き方
ドメイン駆動設計の正しい歩き方
 
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っているやはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
Riverpodでテストを書こう
Riverpodでテストを書こうRiverpodでテストを書こう
Riverpodでテストを書こう
 
SPAのルーティングの話
SPAのルーティングの話SPAのルーティングの話
SPAのルーティングの話
 

Similar to Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり

jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶShumpei Shiraishi
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!Shohei Okada
 
「エクストリームエンジニアへの道(Swift編)」
「エクストリームエンジニアへの道(Swift編)」「エクストリームエンジニアへの道(Swift編)」
「エクストリームエンジニアへの道(Swift編)」tech-arts
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方増田 亨
 
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LTTech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LTterurou
 
goog.ui.Component のはぐれかた
goog.ui.Component のはぐれかたgoog.ui.Component のはぐれかた
goog.ui.Component のはぐれかたSoichi Takamura
 
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピングpi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピングkunihikokaneko1
 
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
VSUG Day 2010 Summer - Using ADO.NET Entity FrameworkVSUG Day 2010 Summer - Using ADO.NET Entity Framework
VSUG Day 2010 Summer - Using ADO.NET Entity FrameworkAtsushi Fukui
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方linzhixing
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについてtako pons
 
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_QueryHidekazu Ishikawa
 
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4AdvancedTechNight
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~normalian
 
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介Shintaro Hosoai
 
Jqm20120210
Jqm20120210Jqm20120210
Jqm20120210cmtomoda
 
Django Rest Frameworkでお手軽にREST APIを作る
Django Rest Frameworkでお手軽にREST APIを作るDjango Rest Frameworkでお手軽にREST APIを作る
Django Rest Frameworkでお手軽にREST APIを作るMatsuo Keita
 

Similar to Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり (20)

jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶjQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
jQueryの先に行こう!最先端のWeb開発トレンドを学ぶ
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
 
「エクストリームエンジニアへの道(Swift編)」
「エクストリームエンジニアへの道(Swift編)」「エクストリームエンジニアへの道(Swift編)」
「エクストリームエンジニアへの道(Swift編)」
 
Apache Tapestry
Apache TapestryApache Tapestry
Apache Tapestry
 
ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方ドメインオブジェクトの見つけ方・作り方・育て方
ドメインオブジェクトの見つけ方・作り方・育て方
 
Tech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LTTech Fielders 2009/9/18 LT
Tech Fielders 2009/9/18 LT
 
goog.ui.Component のはぐれかた
goog.ui.Component のはぐれかたgoog.ui.Component のはぐれかた
goog.ui.Component のはぐれかた
 
mishimasyk#4
mishimasyk#4mishimasyk#4
mishimasyk#4
 
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピングpi-15. カプセル化, MVCモデル, オブジェクトのマッピング
pi-15. カプセル化, MVCモデル, オブジェクトのマッピング
 
jQuery超入門編
jQuery超入門編jQuery超入門編
jQuery超入門編
 
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
VSUG Day 2010 Summer - Using ADO.NET Entity FrameworkVSUG Day 2010 Summer - Using ADO.NET Entity Framework
VSUG Day 2010 Summer - Using ADO.NET Entity Framework
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
 
Apache Torqueについて
Apache TorqueについてApache Torqueについて
Apache Torqueについて
 
ScalaMatsuri 2016
ScalaMatsuri 2016ScalaMatsuri 2016
ScalaMatsuri 2016
 
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query
 
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4
 
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
基礎から見直す ASP.NET MVC の単体テスト自動化方法 ~ Windows Azure 関連もあるかも~
 
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
テキスト型Domain Specific Language (DSL) 開発フレームワークXtext の紹介
 
Jqm20120210
Jqm20120210Jqm20120210
Jqm20120210
 
Django Rest Frameworkでお手軽にREST APIを作る
Django Rest Frameworkでお手軽にREST APIを作るDjango Rest Frameworkでお手軽にREST APIを作る
Django Rest Frameworkでお手軽にREST APIを作る
 

More from Yuta Ohashi

三項演算子を見ると「ウッ」てなる人のはなし
三項演算子を見ると「ウッ」てなる人のはなし三項演算子を見ると「ウッ」てなる人のはなし
三項演算子を見ると「ウッ」てなる人のはなしYuta Ohashi
 
レガシーなWebアプリケーションと向き合う
レガシーなWebアプリケーションと向き合うレガシーなWebアプリケーションと向き合う
レガシーなWebアプリケーションと向き合うYuta Ohashi
 
Laravel5.5から6.4にアップグレードしたときに必要だった7つのこと
Laravel5.5から6.4にアップグレードしたときに必要だった7つのことLaravel5.5から6.4にアップグレードしたときに必要だった7つのこと
Laravel5.5から6.4にアップグレードしたときに必要だった7つのことYuta Ohashi
 
Laravelで式年遷宮中の現場で うまくいってること・ うまくいっていないこと
Laravelで式年遷宮中の現場でうまくいってること・うまくいっていないことLaravelで式年遷宮中の現場でうまくいってること・うまくいっていないこと
Laravelで式年遷宮中の現場で うまくいってること・ うまくいっていないことYuta Ohashi
 
GoでシュッとWebスクレイピングする
GoでシュッとWebスクレイピングするGoでシュッとWebスクレイピングする
GoでシュッとWebスクレイピングするYuta Ohashi
 
初心者がGoでCLIツール作ってみて学んだこと
初心者がGoでCLIツール作ってみて学んだこと初心者がGoでCLIツール作ってみて学んだこと
初心者がGoでCLIツール作ってみて学んだことYuta Ohashi
 
今日からGoをはじめる人に伝えたい$GOPATHではまった話
今日からGoをはじめる人に伝えたい$GOPATHではまった話今日からGoをはじめる人に伝えたい$GOPATHではまった話
今日からGoをはじめる人に伝えたい$GOPATHではまった話Yuta Ohashi
 
「Laravelから学びレガシーと闘いはじめた」のその後
「Laravelから学びレガシーと闘いはじめた」のその後「Laravelから学びレガシーと闘いはじめた」のその後
「Laravelから学びレガシーと闘いはじめた」のその後Yuta Ohashi
 
無知の表明でチームをビルドする
無知の表明でチームをビルドする無知の表明でチームをビルドする
無知の表明でチームをビルドするYuta Ohashi
 
許可を求めるな謝罪せよ?
許可を求めるな謝罪せよ?許可を求めるな謝罪せよ?
許可を求めるな謝罪せよ?Yuta Ohashi
 
Laravelから学びレガシーと闘いはじめた
Laravelから学びレガシーと闘いはじめたLaravelから学びレガシーと闘いはじめた
Laravelから学びレガシーと闘いはじめたYuta Ohashi
 
2016年恥ずかしいふりかえり
2016年恥ずかしいふりかえり2016年恥ずかしいふりかえり
2016年恥ずかしいふりかえりYuta Ohashi
 
My開発環境の話
My開発環境の話My開発環境の話
My開発環境の話Yuta Ohashi
 
テストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったことテストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったことYuta Ohashi
 
LaravelアプリケーションをSeleniumでテストしてみた
LaravelアプリケーションをSeleniumでテストしてみたLaravelアプリケーションをSeleniumでテストしてみた
LaravelアプリケーションをSeleniumでテストしてみたYuta Ohashi
 
Dockerをすこーしさわってみる
DockerをすこーしさわってみるDockerをすこーしさわってみる
DockerをすこーしさわってみるYuta Ohashi
 
5分でなんとなーくわかるDocker
5分でなんとなーくわかるDocker5分でなんとなーくわかるDocker
5分でなんとなーくわかるDockerYuta Ohashi
 
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!Yuta Ohashi
 

More from Yuta Ohashi (18)

三項演算子を見ると「ウッ」てなる人のはなし
三項演算子を見ると「ウッ」てなる人のはなし三項演算子を見ると「ウッ」てなる人のはなし
三項演算子を見ると「ウッ」てなる人のはなし
 
レガシーなWebアプリケーションと向き合う
レガシーなWebアプリケーションと向き合うレガシーなWebアプリケーションと向き合う
レガシーなWebアプリケーションと向き合う
 
Laravel5.5から6.4にアップグレードしたときに必要だった7つのこと
Laravel5.5から6.4にアップグレードしたときに必要だった7つのことLaravel5.5から6.4にアップグレードしたときに必要だった7つのこと
Laravel5.5から6.4にアップグレードしたときに必要だった7つのこと
 
Laravelで式年遷宮中の現場で うまくいってること・ うまくいっていないこと
Laravelで式年遷宮中の現場でうまくいってること・うまくいっていないことLaravelで式年遷宮中の現場でうまくいってること・うまくいっていないこと
Laravelで式年遷宮中の現場で うまくいってること・ うまくいっていないこと
 
GoでシュッとWebスクレイピングする
GoでシュッとWebスクレイピングするGoでシュッとWebスクレイピングする
GoでシュッとWebスクレイピングする
 
初心者がGoでCLIツール作ってみて学んだこと
初心者がGoでCLIツール作ってみて学んだこと初心者がGoでCLIツール作ってみて学んだこと
初心者がGoでCLIツール作ってみて学んだこと
 
今日からGoをはじめる人に伝えたい$GOPATHではまった話
今日からGoをはじめる人に伝えたい$GOPATHではまった話今日からGoをはじめる人に伝えたい$GOPATHではまった話
今日からGoをはじめる人に伝えたい$GOPATHではまった話
 
「Laravelから学びレガシーと闘いはじめた」のその後
「Laravelから学びレガシーと闘いはじめた」のその後「Laravelから学びレガシーと闘いはじめた」のその後
「Laravelから学びレガシーと闘いはじめた」のその後
 
無知の表明でチームをビルドする
無知の表明でチームをビルドする無知の表明でチームをビルドする
無知の表明でチームをビルドする
 
許可を求めるな謝罪せよ?
許可を求めるな謝罪せよ?許可を求めるな謝罪せよ?
許可を求めるな謝罪せよ?
 
Laravelから学びレガシーと闘いはじめた
Laravelから学びレガシーと闘いはじめたLaravelから学びレガシーと闘いはじめた
Laravelから学びレガシーと闘いはじめた
 
2016年恥ずかしいふりかえり
2016年恥ずかしいふりかえり2016年恥ずかしいふりかえり
2016年恥ずかしいふりかえり
 
My開発環境の話
My開発環境の話My開発環境の話
My開発環境の話
 
テストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったことテストを書くのに挫折したあとやったこと
テストを書くのに挫折したあとやったこと
 
LaravelアプリケーションをSeleniumでテストしてみた
LaravelアプリケーションをSeleniumでテストしてみたLaravelアプリケーションをSeleniumでテストしてみた
LaravelアプリケーションをSeleniumでテストしてみた
 
Dockerをすこーしさわってみる
DockerをすこーしさわってみるDockerをすこーしさわってみる
Dockerをすこーしさわってみる
 
5分でなんとなーくわかるDocker
5分でなんとなーくわかるDocker5分でなんとなーくわかるDocker
5分でなんとなーくわかるDocker
 
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
WindowsでもVagrantとChefでLaravelのローカル環境を(自分で)つくりたい!
 

Recently uploaded

LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルCRI Japan, Inc.
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)NTT DATA Technology & Innovation
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matchingharmonylab
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...atsushi061452
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。iPride Co., Ltd.
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptxssuserbefd24
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizesatsushi061452
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptxyassun7010
 

Recently uploaded (14)

LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
2024年5月25日Serverless Meetup大阪 アプリケーションをどこで動かすべきなのか.pptx
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 

Vue.jsでFormをAtomic Designしてみた時のコンポーネント間のデータのやりとり