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
ReactとFluxのこと
Search
geta6
April 26, 2015
Programming
64k
166
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ReactとFluxのこと
http://inside.pixiv.net/entry/2015/04/27/170944
geta6
April 26, 2015
More Decks by geta6
See All by geta6
mastodonのnodeのはなし
geta6
0
3.2k
pixiv SketchのSSRの話
geta6
10
4.4k
What is CoffeeScript
geta6
8
930
Other Decks in Programming
See All in Programming
Vite+ Unified Toolchain for the Web
naokihaba
0
320
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
250
技術記事、AIに書かせるか、自分で書くか? 〜それでも私が自分の手で書く理由〜 / #QiitaConference
jnchito
2
1.4k
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
6.2k
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
880
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
170
肥大化するレガシーコードに立ち向かうためのインターフェース分離と依存の逆転 / JJUG CCC 2026 Spring
hirokunimaeta
0
570
スマートグラスで並列バイブコーディング
hyshu
0
160
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
120
AIで効率化できた業務・日常
ochtum
0
140
JJUG CCC 2026 Spring: JSpecify で実現する Kotlin フレンドリーな Java API 設計
ternbusty
1
180
DynamoDBには集計系のクエリがないけどなんとかしたい
musan
1
180
Featured
See All Featured
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
460
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
600
Practical Orchestrator
shlominoach
191
11k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Producing Creativity
orderedlist
PRO
348
40k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
390
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
440
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
140
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Why Our Code Smells
bkeepers
PRO
340
58k
The Limits of Empathy - UXLibs8
cassininazir
1
360
Transcript
React Flux
HFUB SFBDUͱqVYʹ͍ͭͯษڧͯ͠Δ
HFUB ࡶʹ·ͱΊͯΈΔ
None
3FBDU w GBDFCPPL͕࡞ͬͨ+BWB4DSJQUͷϏϡʔ༻ϥΠϒϥϦ w ϑϨʔϜϫʔΫͰͳ͍ʢॏཁʣ w ΞʔΩςΫνϟΛ੍͢ΔͷͰͳ͍ɺϏϡʔ༻ͷ ίϯϙʔωϯτͱͯ͠୯ಠͰར༻͢Δ͜ͱ͕Ͱ͖Δ w .PEFMͱ$PMMFDUJPO#BDLCPOFɺ7JFX͚ͩ3FBDUɺ
ͱ͍͏ετʔϦʔ͋ΓಘΔ w αʔόͰΫϥΠΞϯτͰར༻Մೳ
#FGPSF3FBDU
TUPSZ { items: ['foo'] } <ul id='items'> <li>foo</li> </ul> {
items: ['foo', 'bar'] } <ul id='items'> <li>foo</li> <li>bar</li> </ul> w Ϟσϧͷߏʹैͬͯ%0.Λग़ྗ͢ΔγʔϯΛߟ͑Δ
K2VFSZ $('#item').append('<li>' + _.last(items) + '</li>'); { items: ['foo'] }
<ul id='items'> <li>foo</li> </ul> { items: ['foo', 'bar'] } <ul id='items'> <li>foo</li> <li>bar</li> </ul>
{ items: ['foo'] } <ul id='items'> <li>foo</li> </ul> { items:
['foo', 'bar'] } <ul id='items'> <li>foo</li> <li>bar</li> </ul> K2VFSZ $('#item').append('<li>' + _.last(items) + '</li>'); HTML͕ೖͬͯདྷΔՄೳੑ͕͋ΔͷͰ XSSϦεΫ͕..
K2VFSZ $('#item').append('<li>' + _.escape(_.last(items)) + '</li>'); { items: ['foo'] }
<ul id='items'> <li>foo</li> </ul> { items: ['foo', '<i>bar</i>'] } <ul id='items'> <li>foo</li> <li><i>bar</i></li> </ul>
{ items: ['foo'] } <ul id='items'> <li>foo</li> </ul> { items:
['foo', '<i>bar</i>'] } <ul id='items'> <li>foo</li> <li><i>bar</i></li> </ul> K2VFSZ $('#item').append('<li>' + _.escape(_.last(items)) + '</li>'); ςϯϓϨʔτ͍ͨ͠ͷͰ ݅Ͱม͑ͯΒ͍͍ͬͯͰ͔͢.. APIมΘΓ·͢..
K2VFSZ var val = _.last(items); if (val.t !== 'tmpl') val.b
= _.escape(val.b); $('#item').append('<li>' + val.b + '</li>'); { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'tmpl', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><i>bar</i></li> </ul>
K2VFSZ var val = _.last(items); if (val.t !== 'tmpl') val.b
= _.escape(val.b); $('#item').append('<li>' + val.b + '</li>'); { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'tmpl', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><i>bar</i></li> </ul> ಛఆ݅ͷ࣌inputͰฤूͰ͖ΔΑ͏ʹ ͯ͠Β͍͍ͨΜͰ͕͍͍͢Ͱ͔͢..
K2VFSZ var val = _.last(items); if (val.t !== 'tmpl') {
val.b = _.escape(val.b); } else if (val.t === 'edit') { val.b = '<input value=' + val.b + '>'; } $('#item').append('<li>' + val.b + '</li>'); { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'edit', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><input value='<i>bar</i>'></li> </ul>
K2VFSZ var val = _.last(items); if (val.t !== 'tmpl') {
val.b = _.escape(val.b); } else if (val.t === 'edit') { val.b = '<input value=' + val.b + '>'; } $('#item').append('<li>' + val.b + '</li>'); { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'edit', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><input value='<i>bar</i>'></li> </ul> ࠷ऴߦ͡Όͳ్ͯ͘தʹ৽σʔλ͕ ૠೖ͞ΕΔͱόάΓ·͢..
K2VFSZ var val = _.last(items); if (val.t !== 'tmpl') {
val.b = _.escape(val.b); } else if (val.t === 'edit') { val.b = '<input value=' + val.b + '>'; } $('#item').append('<li>' + val.b + '</li>'); { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'edit', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><input value='<i>bar</i>'></li> </ul> ࠷ऴߦ͡Όͳ్ͯ͘தʹ৽σʔλ͕ ૠೖ͞ΕΔͱόάΓ·͢.. ͷ༧ײ #7299716
K2VFSZ var val = _.last(items); if (val.t !== 'tmpl') {
val.b = _.escape(val.b); } else if (val.t === 'edit') { val.b = '<input value=' + val.b + '>'; } $('#item').append('<li>' + val.b + '</li>'); { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'edit', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><input value='<i>bar</i>'></li> </ul> ్தʹૠೖͱ͔ϋʔυίʔσΟϯάʹͳΓͦ͏.. ͜ΕҎ্ཁٻ͕૿͑ΔͱରԠͰ͖ͳͦ͏.. Ҿ͖ܧ͍ͩΒෛ࠴ʹͳΓͦ͏.. ϑϨʔϜϫʔΫೖΕΕ͍͍ͱฉ͍ͨͷͰ ͱΓ͋͑ͣBackboneΛೖΕͯΈΔ
#BDLCPOF class RawView extends Backbone.View { constructor() { this.tagName =
'li'; super(); } initialize(options) { _.bindAll(this, 'render', 'remove'); this.listenTo(this.model, 'change', this.render); this.listenTo(this.model, 'destroy', this.remove); } render() { $(this.el).html(_.template('<span><%- b %></span>', this.model.toJSON())); return this; } } class InputView extends RawView { render() { $(this.el).html(_.template('<input val="<%- b %>">', this.model.toJSON())); return this; } } class EscapeView extends RawView { render() { $(this.el).html(_.template('<span><%- _.escape(b) %></span>">', this.model.toJSON())); return this; } } { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'edit', b: '<i>bar</i>'} ] } <ul id='items'> <li><span>foo</span></li> <li><input value='<i>bar</i>'></li> </ul> class CollectionView extends Backbone.View { constructor() { this.el = '#items'; super(); } initialize(options) { _.bindAll(this, 'resetItems', 'appendItem', 'removeItem'); this.listenTo(this.collection, 'reset', this.resetItems); this.listenTo(this.collection, 'add', this.appendItem); this.listenTo(this.collection, 'remove', this.removeItem); } resetItems(collection) { collection.each((model) => this.appendItem(model)); } appendItem(model) { var view; switch (model.get('t')) { case 'text': view = new EscapeView({model}); break; case 'tmpl': view = new RawView({model}); break; case 'edit': view = new InputView({model}); break; } var view = new ModelView({model}); $(this.el).append(view.render().el); } removeItem(model) { model.destroy(); } } var collection = new Backbone.Collection(items); new CollectionView({collection}); http://goo.gl/aiVQks
#BDLCPOF class RawView extends Backbone.View { constructor() { this.tagName =
'li'; super(); } initialize(options) { _.bindAll(this, 'render', 'remove'); this.listenTo(this.model, 'change', this.render); this.listenTo(this.model, 'destroy', this.remove); } render() { $(this.el).html(_.template('<span><%- b %></span>', this.model.toJSON())); return this; } } class InputView extends RawView { render() { $(this.el).html(_.template('<input val="<%- b %>">', this.model.toJSON())); return this; } } class EscapeView extends RawView { render() { $(this.el).html(_.template('<span><%- _.escape(b) %></span>">', this.model.toJSON())); return this; } } { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'edit', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><input value='<i>bar</i>'></li> </ul> class CollectionView extends Backbone.View { constructor() { this.el = '#items'; super(); } initialize(options) { _.bindAll(this, 'resetItems', 'appendItem', 'removeItem'); this.listenTo(this.collection, 'reset', this.resetItems); this.listenTo(this.collection, 'add', this.appendItem); this.listenTo(this.collection, 'remove', this.removeItem); } resetItems(collection) { collection.each((model) => this.appendItem(model)); } appendItem(model) { var view; switch (model.get('t')) { case 'text': view = new EscapeView({model}); break; case 'tmpl': view = new RawView({model}); break; case 'edit': view = new InputView({model}); break; } var view = new ModelView({model}); $(this.el).append(view.render().el); } removeItem(model) { model.destroy(); } } var collection = new Backbone.Collection(items); new CollectionView({collection}); ͳɹ͕ɹ͍ ͜ͷྫͩͱModel୯ಠ͕ͩ Model͕ෳʹͳΔͱ ͞Βʹάονϟάνϟʹͳ͍ͬͯ͘ http://goo.gl/aiVQks
#BDLCPOF class RawView extends Backbone.View { constructor() { this.tagName =
'li'; super(); } initialize(options) { _.bindAll(this, 'render', 'remove'); this.listenTo(this.model, 'change', this.render); this.listenTo(this.model, 'destroy', this.remove); } render() { $(this.el).html(_.template('<span><%- b %></span>', this.model.toJSON())); return this; } } class InputView extends RawView { render() { $(this.el).html(_.template('<input val="<%- b %>">', this.model.toJSON())); return this; } } class EscapeView extends RawView { render() { $(this.el).html(_.template('<span><%- _.escape(b) %></span>">', this.model.toJSON())); return this; } } { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'edit', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><input value='<i>bar</i>'></li> </ul> class CollectionView extends Backbone.View { constructor() { this.el = '#items'; super(); } initialize(options) { _.bindAll(this, 'resetItems', 'appendItem', 'removeItem'); this.listenTo(this.collection, 'reset', this.resetItems); this.listenTo(this.collection, 'add', this.appendItem); this.listenTo(this.collection, 'remove', this.removeItem); } resetItems(collection) { collection.each((model) => this.appendItem(model)); } appendItem(model) { var view; switch (model.get('t')) { case 'text': view = new EscapeView({model}); break; case 'tmpl': view = new RawView({model}); break; case 'edit': view = new InputView({model}); break; } var view = new ModelView({model}); $(this.el).append(view.render().el); } removeItem(model) { model.destroy(); } } var collection = new Backbone.Collection(items); new CollectionView({collection}); ͳɹ͕ɹ͍ ͜ͷྫͩͱModel୯ಠ͕ͩɺ Model͕ෳʹͳͬͨ࣌ ͞Βʹάονϟάνϟʹͳ͍ͬͯ͘
#BDLCPOF class RawView extends Backbone.View { constructor() { this.tagName =
'li'; super(); } initialize(options) { _.bindAll(this, 'render', 'remove'); this.listenTo(this.model, 'change', this.render); this.listenTo(this.model, 'destroy', this.remove); } render() { $(this.el).html(_.template('<span><%- b %></span>', this.model.toJSON())); return this; } } class InputView extends RawView { render() { $(this.el).html(_.template('<input val="<%- b %>">', this.model.toJSON())); return this; } } class EscapeView extends RawView { render() { $(this.el).html(_.template('<span><%- _.escape(b) %></span>">', this.model.toJSON())); return this; } } { items: [{t: 'text', b:'foo'}] } <ul id='items'> <li>foo</li> </ul> { items: [ {t: 'text', b: 'foo'}, {t: 'edit', b: '<i>bar</i>'} ] } <ul id='items'> <li>foo</li> <li><input value='<i>bar</i>'></li> </ul> class CollectionView extends Backbone.View { constructor() { this.el = '#items'; super(); } initialize(options) { _.bindAll(this, 'resetItems', 'appendItem', 'removeItem'); this.listenTo(this.collection, 'reset', this.resetItems); this.listenTo(this.collection, 'add', this.appendItem); this.listenTo(this.collection, 'remove', this.removeItem); } resetItems(collection) { collection.each((model) => this.appendItem(model)); } appendItem(model) { var view; switch (model.get('t')) { case 'text': view = new EscapeView({model}); break; case 'tmpl': view = new RawView({model}); break; case 'edit': view = new InputView({model}); break; } var view = new ModelView({model}); $(this.el).append(view.render().el); } removeItem(model) { model.destroy(); } } var collection = new Backbone.Collection(items); new CollectionView({collection}); ͳɹ͕ɹ͍ ͜ͷྫͩͱModel୯ಠ͕ͩɺ Model͕ෳʹͳͬͨ࣌ ͞Βʹάονϟάνϟʹͳ͍ͬͯ͘ #7299716
FWJM w ͳʹ͕ѱ͍ͷ͔
FWJM w ϨϯμϦϯάίετΛؾʹͯ͠ભҠΛॻ͔ͳ͍ͱ͍͚ͳ ͍ͷ͕ѱ͍ w BQQFOEͱ͔͊͞
FWJM w ຖճ৽͘͠%0.࡞্ͬͯॻ͖͢Είʔυͱ%0.ͷঢ় ଶʹဃ͕ແ͘ͳΔ w Ͱͦ͏͢ΔͱJOQVUͷೖྗςΩετͳͲɺҰ࣌తͳ ঢ়ଶ͕ഁغ͞Εͯ͠·͏ w ྻ͕ͭͱ͔ͳΒ͍͍͚ͲUVNCMSͷμογϡϘʔυ Έͨ͘ݸͱ͔ʹͳΔͱϨϯμϦϯάίετͰٿ
͕Ϡό͍
FWJM w ϦΞϧλΠϜόΠϯσΟϯάʹ͠ΖԿʹ͠Ζɺશ෦Λ· Δͬͱॻ͖͑ΔҎ֎ͷख๏ΛͱΔͳΒɺσʔλͷભҠ ʹਵ͢ΔॲཧΛॻ͔͟ΔΛಘͳ͍ w ࠷ॳͷϨϯμϦϯά͔Βεςοϓ͕ਐΊਐΉ΄Ͳɺίʔ υͱ%0.ͷဃ͕ਐߦ͍ͯ͘͠
FWJM w ਓԿ͔ͷ٘ਜ਼ͳ͠ʹԿಘΔࣄͳͲͰ͖ͳ͍ w KTѱຐͱͷܖͩͬͨ
FWJM w ਓԿ͔ͷ٘ਜ਼ͳ͠ʹԿಘΔࣄͳͲͰ͖ͳ͍ w KTѱຐͱͷܖͩͬͨ
FWJM w ਓԿ͔ͷ٘ਜ਼ͳ͠ʹԿಘΔࣄͳͲͰ͖ͳ͍ w KTѱຐͱͷܖͩͬͨ
3FBDUͷར w ʮຖճ৽͘͠%0.࡞্ͬͯॻ͖͢Είʔυͱ%0.ͷ ঢ়ଶʹဃ͕ແ͘ͳΔʯ w ࡶʹݴ͏ͱɺ͜ΕˢΛݱ࣮తͳ࣮ʹམͱ͠ࠐΜͩͷ ͕3FBDU w ͜ΕΛ࣮ݱ͢ΔͨΊʹ7JSUVBM%0.ͱ͍͏ΈΛͬ ͯͨ
7JSUVBM%0. w ͜Ε·ͰϑϩϯτͰسආ͞Ε͖߽ͯͨతϓϩάϥϛϯάύϥμΠϜͷ ݱ࣮తͳղͷҰ͕ͭ3FBDU w σʔλߏʹରԠ͢Δͷ%0.Λߏங͢Δϝιου͕͋Γɺͦͷ %0.ͱݱࡏͷ%0.ͷEJGGΛऔͬͯࠩߋ৽͢Δ { items: ['foo',
'bar'] } <ul id='items'> <li>foo</li> <li>bar</li> </ul> { items: ['foo', 'baz'] } <ul id='items'> <li>foo</li> <li>baz</li> </ul> EJGG <ul id='items'> <li>foo</li> <li>baz</li> </ul>
7JSUVBM%0. w EJGGΛऔΔͨΊʹੜ͞ΕΔ%0.ͷ͜ͱΛ7JSUVBM%0.ͱ͍͏ɺࣗͰॻ ͘ͷ͜͏͍͏σʔλͳΒ͜͏ͳΔͱ͍͏ϝιουͷΈ w ભҠʹؔ͢ΔॲཧΛॻ͘ඞཁ͕ແ͍ɺৗʹʮ͜͏ͳͬͯ΄͍͠ʯͱ͍͏ %0.Λు͖ग़͠ଓ͚ɺݱࡏͷ%0.ͦͷ%0.ʹ͔ͬͯࣗಈͰભҠ͢Δ { items: ['foo',
'bar'] } <ul id='items'> <li>foo</li> <li>bar</li> </ul> { items: ['foo', 'baz'] } EJGG <ul id='items'> <li>foo</li> <li>baz</li> </ul> 7JSUVBM%0. <ul id='items'> <li>foo</li> <li>baz</li> </ul>
7JSUVBM%0. w BUUSJCVUF͕มΘΕมΘΔͷBUUSJCVUF͚ͩɺCPEZ͕มΘΕมΘΔ ͷCPEZ͚ͩ w 7JFXͰ࣮͠ͳ͚Ε͍͚ͳ͍ͷʮJUFNTΛΠςϨʔτͯ͠MJTUΛ࡞Δ ςϯϓϨʔτʯ͚ͩʹͳΔ { items: ['foo',
'bar'] } <ul id='items'> <li>foo</li> <li>bar</li> </ul> { items: ['foo', 'baz'] } EJGG <ul id='items'> <li>foo</li> <li>baz</li> </ul> <ul id='items'> <li>foo</li> <li>baz</li> </ul> 7JSUVBM%0.
3FBDUͷར w ίϯϙʔωϯτϕʔεͰ%0.ΛΈཱͯΔ͜ͱ͕Ͱ͖Δ w ࡶʹݴ͏ͱػೳΛแͨ͠ಠࣗλά͕࡞ΕΔ w 8FC$PNQPOFOUT͕ࢦ͍ͯͨ͠ੈքΛ࣮ϨϕϧͰ࣮ ݱͰ͖Δ
3FBDUͷར w KTY͏ͱΑΓ࣮ײͰ͖Δ σΟʔφϯτΧࣾͷ͡Όͳ͍΄͏ w KTYίϯύΠϧͨ͠ΒKTʹͳΔͭͰ͢ɺ$PGGFFΈ͍ͨͳΜ ͩͱࢥ͍ͬͯͩ͘͞ var Hello
= React.createClass({ render() { return React.DOM.div(null, `Hello ${this.props.name}`); } }) var Hello = React.createClass({ render() { return <div>Hello {this.props.name}</div>; } })
3FBDU w ྫ͑ɺྻ͕͞ΕͨΒMJTUΛউखʹ࡞Δλάͱ͔ <Iterate items={['foo', 'bar']} /> <ul> <li>foo</li> <li>bar</li>
</ul>
3FBDU w ྫ͑ɺݕࡧ݁ՌΛΠςϨʔτͨ͠Β֤ཁૉΛϨϯμϦϯ άͯ͠ग़ͯ͘͠ΕΔͱ͔ w ͏·͘Γ͚ΕɺΛదʹࢄ͢Δ͜ͱ͕Ͱ͖Δ <section className='results'> {this.state.results.map(item =>
{ return <Result item={item} />; })} </section>
3FBDU w ྫ͑ɺޙ͔Β͜͜ΛJODSFNFOUͨ͘͠ ͳͬͨͱ͢Δ <section className='results'> {this.state.results.map(item => { return
<Result item={item} />; })} </section> #49974740
3FBDU w ͜͏͢Δ͚ͩͰউखʹࠩߋ৽ͯ͘͠ΕΔΠϝʔδ Ͱ͢ ࣮ࡍʹTFUUFSΛ௨͢ w ߋ৽͞ΕΔͷதͷࣈͷΈɺ%0.มߋ͞Εͳ͍ results[1].fav_count +=
1 --- <section className='results'> {this.state.results.map(item => { return <Result item={item} />; })} </section> #49974740
None
qVY w qVY͕Ͳ͏͍͏ΞʔΩςΫνϟ͔ɺͷલʹ
qVY w ʮqVYΛΠϯετʔϧ͢ΕϨʔϧʹΕΔʯ w ʮqVYશʹ৽͍֓͠೦ɺ࠷ߴʯ w ͜Εӕ
qVY w qVYΞʔΩςΫνϟͷ໊લ w ͨͩͷPCTFSWFSύλʔϯ w 3FBDUͱqVYૄ݁߹ɺ3FBDU Λޮతʹ׆༻͢ΔΞʔΩς Ϋνϟͱͯࣔ͠͞Ε͚ͨͩ w
qVYͷ࠷༏Ε͍ͯΔɺ ӈਤͷΑ͏ͳύλʔϯʹqVY ͱ͍͏໊લΛ͚ͭͨॴ
GBGSPUTLJFT w ਓؒݹདྷ͔Βحոͳݱʹ໊લΛ ͚Δ͜ͱͰࣄΛઢҾ͖͠ɺίϛϡχ έʔγϣϯίετΛݮΒͨ͠Γɺ ͷΓ͚ΛߦͬͨΓ͖ͯͨ͠ w ϑΝϑϩπΩʔζʮͦͷʹ͋Δ ͣͷͳ͍ͷ ڕͱ͔
͕߱ͬͯ͘Δʯ ݱͷ͜ͱ w ໊લΛ͚͓͚ͭͯɺ͍͖ͳΓۭ͔Β େྔͷڕ͕߱Γ͍Ͱʮ͋͊ɺ͋Ε Ͷʯͱݴ͑ΔɺਆʹفͬͯੜᩴΛ๋͛ Δ͖͔Ͳ͏͔ఆͰ͖Δɺӈԟࠨԟ ͤͣʹࡁΉɺจݙΛ୧Δ͜ͱ༰қ
qVY w qVYͱ͍͏໊લ͕͋Δ͚ͩͰɺઃܭ͕ͲΕ͚ͩqVY͔ɺ࣮ ͲΕ͚ͩqVY͔Β֎Ε͍ͯΔ͔ɺςετͲ͏ॻ͔Ε ͍ͯΔ͖͔ɺͱ͔Λ؆қʹೝࣝͰ͖ΔΑ͏ʹͳΔ w ϑΝδʔͳਓؒͷͰͪΌΜͱΛೝࣝͰ͖Δɺจ຺ ͷᴥᴪ͕ੜ·Εʹ͍͘ w υΩϡϝϯτաڈͷ࣭ʹͨΓқ͍
w ϨϏϡʔ͍͢͠ɺΞʔΩςΫνϟʹैΘͳ͍1VMM 3FRVFTUΛॠࡴͰ͖Δ
ZBIPPqVYJCMFʹ13ग़ͨ͠ w Θͨ͠ʮ͜ͷϝιουɺଞͩͱฦΓ͋Δͷʹ7JFXͰ ͚ͬͨ࣌ͩฦΓ͕ແ͍ͷ͓͔͘͠ͳ͍ʁʯ w :ࣾʮ7JFXͰͦΕฦ͢ͱqVY͡Όͳ͘ͳΔ͔Βʯ w ॠࡴ͞Εͨ
qVYqPX "DUJPO %JTQBUDIFS 4UPSF 7JFX "DUJPO QBZMPBE "1* 0CKFDU \LFZ
WBM^ 0CKFDU \LFZ WBM^ 4UPSFE0CKFDU <>
qVYqPX "DUJPO %JTQBUDIFS 4UPSF 7JFX "DUJPO QBZMPBE "1* 0CKFDU \LFZ
WBM^ 0CKFDU \LFZ WBM^ 4UPSFE0CKFDU <> #18558660
qVY w σʔλͷϑϩʔৗʹઈରඞͣҰํ w ྫ͑ɺ"DUJPOҎ֎͕)551ϦΫΤετΛൃߦͯࣗ͠ Λߋ৽͢Δͷμϝ Тဂ ʢGBWͱ͔Ͱʣ w Ͳ͏͍ͬͨϑϩʔͰσʔλ͕͖߱ͬͯͯɺͲ͏͍ͬͨ݁Ռ
͕ग़͔ͨɺೝࣝͷΓ͚͕ͱָͯ w ͜ͷߏͷ͍͍ͱ͜ΖPCTFSWFSύλʔϯͳײ͡ͳͷͰద ٓάά͍ͬͯͩ͘͞ɺ͜ͷεϥΠυͰओʹ"DUJPOͱ͔qVY ͰΘΕΔ༻ޠΛઆ໌͠·͢
qVY w "DUJPO͕ελʔτɺ7JFX͕ΰʔϧ w "DUJPOʹΑΔ4UPSFͷߋ৽Λݕ͠ɺ7JFXࣗͷΞο ϓσʔτ͕ߦΘΕΔ
qVYqPX "DUJPO %JTQBUDIFS 4UPSF 7JFX "1* VQEBUF VQEBUF USJHHFS σʔλΛૹ
<&WFOU&NJUUFS> ΞΫηεɾJOQVUͳͲͷ ೖྗΛड͚ͯσʔλΛߏங σʔλΛஷΊΔ <#BDLCPOF$PMMFDUJPO> σʔλΛදݱ <3FBDU> 45"35 (0"- )551"DDFTT "DUJPO QBZMPBE 0CKFDU \LFZ WBM^ 0CKFDU \LFZ WBM^ 4UPSFE0CKFDU <>
qVY w 7JFX"DUJPOΛൃߦ͠ɺϑϩʔΛτϦΨʔͰ͖Δ
qVYqPX "DUJPO %JTQBUDIFS 4UPSF 7JFX BDUJPO "1* 3&45"35 <ϢʔβʔΠϕϯτ> ϘλϯͷΫϦοΫ
ϖʔδͷΦʔτϦϩʔυ "DUJPO QBZMPBE 0CKFDU \LFZ WBM^ 0CKFDU \LFZ WBM^ 4UPSFE0CKFDU <> ͖ͬ͞ͷਤΔ
qVY w ͜ͷΞʔΩςΫνϟͷ໊લ͕qVYɺGBDFCPPLqVYϦ ϑΝϨϯε࣮ɺ%JTQBUDIFSͷίʔυ͕ͪΐΖͬͱॻ͍ ͯ͋Δ͚ͩ w qVYJCMFͱ͔BSEBͱ͔SFqVYͱ͔ɺqVYΞʔΩςΫ νϟͷ࣮ࢁ͋Δ w ݱࡏաظͰελϯμʔυ͕ଘࡏ͠ͳ͍ɺΈΜͳԶ͕
ߟ͑ͨ࠷ڧͷqVY࣮Λ࡞͍ͬͯΔઓࠃཚੈ
qVY w ϥΠϒϥϦؤுͬͯબఆ͢Δ͔ࣗ࡞͢ΔʢࢲαʔόαΠυαϙʔ τ͕ॆ࣮͍ͯ͠ΔͷͰqVYJCMFΛͬͯΔʣ w αʔόαΠυ͕OPEFͱ͔KTධՁΤϯδϯΛੵΜͰΔݴޠͰ͋Εɺ࠷ ॳͷϑϩʔΛճͯ͠7JFXΛߏஙͨ͠ঢ়ଶͰϢʔβʹฦͤΔ w "DUJPO݅ذͰαʔόͳΒ%#ϦΫΤετɺΫϥΠΞϯτݺͼ ग़͠ͳΒ)551ϦΫΤετ͢Δͱ͔ॻ͍͓͚͍͍ͯ
w όοΫΤϯυʹ"1*Λ࣋ͭܗࣜͳΒTVQFSBHFOUͱ͔Ͱ)551ϝιο υΛαʔόʔͱΫϥΠΞϯτͰڞ௨Խ͓͚͍͍ͯ͠
qVY w ͔͜͜ΒޙͭͷίϯϙʔωϯτΛݸʑʹઆ໌͠·͢
"DUJPO "
"DUJPO "DUJPO QBZMPBE )551 +40/ \LFZ WBM^ "DUJPO %JTQBUDIFS "1*
VQEBUF 0CKFDU \LFZ WBM^ %JTQBUDIFS τϦΨʔ͞ΕͨΠϕϯτʹԠͯ͡)551͠ ͨΓͯ͠σʔλΛߏஙɺߏஙͨ͠σʔλ Λ%JTQBUDIFS͢ "1*͔Β σʔλΛऔΔ σʔλΛ ૹ͢Δ 0CKFDU \LFZ WBM^ "
"DUJPO "DUJPO QBZMPBE )551 +40/ \LFZ WBM^ "DUJPO %JTQBUDIFS "1*
VQEBUF 0CKFDU \LFZ WBM^ %JTQBUDIFS λΠϜϥΠϯͷ࣮ͩͱॳճΞΫηεϖʔ δΛ࠷Լ෦·ͰεΫϩʔϧͨ࣌͠ʹɺ"1* ʹNBY@JEͱ͔͚ͭͯ࣍ͷΞΠςϜΛ͍ ߹Θͤͯ%JTQBUDIFS͢ײ͡ "1*͔Β σʔλΛऔΔ σʔλΛ ૹ͢Δ 0CKFDU \LFZ WBM^ "
%JTQBUDIFS %
"DUJPO %JTQBUDIFS 4UPSF VQEBUF VQEBUF σʔλΛ ૹ͢Δ σʔλΛ ஷΊΔ %JTQBUDIFS
4UPSF 0CKFDU \LFZ WBM^ 0CKFDU \LFZ WBM^ "DUJPO͔Β໋ྩͱσʔλ͕དྷΔͷͰ໋ྩʹ ߹ΘͤͨૹઌσʔλΛ৴͢Δɺ࣮ ͨͩͷ&WFOU&NJUUFSͰΑ͍ 0CKFDU \LFZ WBM^ 0CKFDU \LFZ WBM^ %
"DUJPO %JTQBUDIFS 4UPSF VQEBUF VQEBUF %JTQBUDIFS 4UPSF 4UPSF 0CKFDU \LFZ
WBM^ 0CKFDU \LFZ WBM^ 0CKFDU \LFZ WBM^ %JTQBUDIFS 4UPSF σʔλΛ ૹ͢Δ σʔλΛ ஷΊΔ ෳͷ4UPSFσʔλΛૹ͢ΔՄೳੑ͕͋Δɺ %JTQBUDIFSͷଘࡏʹΑΓ"DUJPOૹઌΛؾ ʹ͠ͳͯ͘Α͘ͳΔ 0CKFDU \LFZ WBM^ 0CKFDU \LFZ WBM^ %
"DUJPO %JTQBUDIFS 4UPSF VQEBUF VQEBUF %JTQBUDIFS 4UPSF 4UPSF 0CKFDU \LFZ
WBM^ 0CKFDU \LFZ WBM^ 0CKFDU \LFZ WBM^ %JTQBUDIFS 4UPSF σʔλΛ ૹ͢Δ σʔλΛ ஷΊΔ 0CKFDU \LFZ WBM^ 0CKFDU \LFZ WBM^ % λΠϜϥΠϯͷ࣮ͩͱɺड৴ͨ͠σʔλΛϗʔϜ ͷλΠϜϥΠϯ FH ͱϢʔβ͝ͱͷλΠϜϥΠ ϯ FHHFUB ͦΕͧΕૹ͓ͯ͘͠ײ͡
4UPSF 4
%JTQBUDIFS 4UPSF 7JFX VQEBUF USJHHFS σʔλΛ ஷΊΔ σʔλΛ දݱ͢Δ 0CKFDU
\LFZ WBM^ 4UPSFE0CKFDU <> 4UPSF 0CKFDU \LFZ WBM^ 7JFX 4UPSFE0CKFDU <> %JTQBUDIFS͔Β͞ΕͨσʔλΛ໋ྩʹ߹ Θͤͯૢ࡞͢Δ ෦ͷ࣮ੜͷ0CKFDU͔ɺͨͩͷ #BDLCPOF$PMMFDUJPOͰΑ͍ JEͰϢχʔΫ ʹͨ͠ΓDPNQBSBUPS͚ͭͨΓͰ͖ΔͷͰ 4
%JTQBUDIFS 4UPSF 7JFX VQEBUF USJHHFS σʔλΛ ஷΊΔ σʔλΛ දݱ͢Δ 0CKFDU
\LFZ WBM^ 4UPSFE0CKFDU <> 4UPSF 0CKFDU \LFZ WBM^ 7JFX 4UPSFE0CKFDU <> 4UPSFෳͷ7JFX σʔλΛૹ͢ΔՄೳੑ͕͋Δ 7JFX 4UPSFE0CKFDU <> 4
%JTQBUDIFS 4UPSF 7JFX VQEBUF USJHHFS σʔλΛ ஷΊΔ σʔλΛ දݱ͢Δ 0CKFDU
\LFZ WBM^ 4UPSFE0CKFDU <> 4UPSF 0CKFDU \LFZ WBM^ 7JFX 4UPSFE0CKFDU <> %JTQBUDI͞Εͨ࣌Ͱ σʔλΛૹ͠ͳ͍ࣄ͋Δ ϚϨ 7JFX 4UPSFE0CKFDU <> 4
%JTQBUDIFS 4UPSF 7JFX VQEBUF USJHHFS σʔλΛ ஷΊΔ σʔλΛ දݱ͢Δ 0CKFDU
\LFZ WBM^ 4UPSFE0CKFDU <> 4UPSF 0CKFDU \LFZ WBM^ 7JFX 4UPSFE0CKFDU <> 4UPSFJOQVUͱPVUQVUͷΠϯλʔϑΣʔεΛ͍࣋ͬͯ Δɺྫ͑JOQVUͰ#BDLCPOF$PMMFDUJPOBEEͯ͠ɺ PVUQVUͰUP+40/ ͯ͠σʔλΛు͖ग़͢ײ͡ $PMMFDUJPOͷΠϯελϯεӅณ͞ΕͯΔͱ͍͍ 4 #BDLCPOF$PMMFDUJPO
%JTQBUDIFS 4UPSF 7JFX VQEBUF USJHHFS σʔλΛ ஷΊΔ σʔλΛ දݱ͢Δ 0CKFDU
\LFZ WBM^ 4UPSFE0CKFDU <> 4UPSF 0CKFDU \LFZ WBM^ 7JFX 4UPSFE0CKFDU <> λΠϜϥΠϯͷ࣮ͩͱɺड৴ͨ͠σʔλΛϗʔϜͷλΠ ϜϥΠϯ FH ͱϢʔβ͝ͱͷλΠϜϥΠϯ FHHFUB Λผͷ4UPSF͕࣋ͬͯͨΓɺ4UPSFͷ෦ͰΠϯελϯεΛ ผʑʹཧͯ͠JOQVUͰৼΓ͚ͨΓ 4 #BDLCPOF$PMMFDUJPO
7 7JFX
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 4UPSF 7JFX
4UPSFE0CKFDU <> 4UPSF͔Β͞ΕͨσʔλΛදݱ͢Δ ࣮3FBDU͕͓͢͢Ί͞Ε͍ͯΔ
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 4UPSF 7JFX
4UPSFE0CKFDU <> 4UPSF͕ߋ৽͞ΕΔͱɺσʔλ͕7JFXʹͬͯ͘Δ 3FBDUͦͷσʔλʹै͍%0.Λࠩߋ৽͢Δ
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 4UPSF 7JFX
4UPSFE0CKFDU <> 4UPSFΛ࣋ͨͳ͍߹͋Δ
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 4UPSF 7JFX
4UPSFE0CKFDU <> 7JFX4UPSFΛॻ͖͍͚͑ͯͳ͍ 7JFXΠϕϯτΛࢹ͢Δ͚ͩɺ σʔλϑϩʔৗʹ4UPSF͔Β7JFX ❌
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 4UPSF 7JFX
4UPSFE0CKFDU <> ෳͷ4UPSF͔Β σʔλΛड͚औΔՄೳੑ͕͋Δ 4UPSF 4UPSFE0CKFDU <>
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 7JFXൃੜͨ͠ΠϕϯτʹԠͯ͡ "DUJPOΛൃߦ͢Δ͜ͱ͕Ͱ͖Δ
JOQVUDIBOHFE OFYUQBHF 7JFX "DUJPO QBZMPBE "DUJPO
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 "DUJPOΛൃߦ͠ͳ͍߹͋Δ 7JFX
"DUJPO QBZMPBE "DUJPO
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 ෳͷ"DUJPOΛऔΓѻ͏߹͋Δ 7JFX
"DUJPO QBZMPBE "DUJPO "DUJPO QBZMPBE "DUJPO
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 7JFX4UPSF͔Β͞ΕͨσʔλΛ ࣗͰߋ৽͍͚ͯ͠ͳ͍
7JFX "DUJPO QBZMPBE "DUJPO ❌
"DUJPO 4UPSF 7JFX "DUJPO QBZMPBE 4UPSFE0CKFDU <> 7 4UPSFͷใΛߋ৽͢Δ߹"DUJPOΛൃߦ͠ %JTQBUDIFSܦ༝Ͱ4UPSFΛߋ৽͠มߋ௨ΛडऔΔ
7JFX "DUJPO QBZMPBE 4UPSF
ͬͯΈͯ w ઃܭͷ͜ͱΛ͍͢͝ߟ͑Δɺͱʹ͔͘ߟ͑Δ w σʔλߏͷࣄ͚ͩߟ͑ͯΔɺͲ͏ͬͯೖख͢Δ͔ɺ Ͳ͏ͬͯฤू͢Δ͔ɺͲ͏͍͏ॱ൪Ͱมߋ͢Δ͔ w %0.ͷࣄຆͲߟ͑ͳ͍ɺਖ਼͍͠σʔλਖ਼͍͠%0. ʹͳΔӡ໋ʹ͋ΔͷͰ΄ͬͱ͍͍͍ͯ w
खΊͬͪΌݮΔ w Ͱिؒલͷࣗͷίʔυ͕ಡΊΔ
ͬͯΈͯ w 3FBDU͕ݡ͍ɺಛʹ8"3/ϝοηʔδ w ͪΐͬͱҳ͢Δͱ͙͢ܯࠂग़ͯ͘͠ΕΔ w ʮ͜͜ɺ͜ͷϓϩύςΟΓͳ͍ΑͶʁʯ w ʮαʔόͱΫϥΠΞϯτͰظͯ͠Δ%0.ҧ͘Ͷʁʯ
ͬͯΈͯ w υΩϡϝϯτ͕ॆ࣮ͯ͠ΔɺεϥΠυهࣄଟ͍ w શ෦ॻ͍ͯ͋ΔɺಡΊΘ͔Δ
Ҏ্