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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
510
CSC307 Lecture 17
javiergs
PRO
0
320
不変条件と整合性境界—ビジネスが決める設計判断と実現パターン / Invariants and Consistency Boundaries
nrslib
13
4.1k
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
120
RTSPクライアントを自作してみた話
simotin13
0
600
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
130
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
110
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
3.9k
ふつうのFeature Flag実践入門
irof
7
3.9k
AIだと陥りがちなJakarta EE最新技術への移行時の落とし穴と解決策
tnagao7
0
110
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
570
AIで効率化できた業務・日常
ochtum
0
130
Featured
See All Featured
The Invisible Side of Design
smashingmag
302
52k
The browser strikes back
jonoalderson
0
1.2k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
300
A designer walks into a library…
pauljervisheath
211
24k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.7k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
620
Making Projects Easy
brettharned
120
6.7k
Technical Leadership for Architectural Decision Making
baasie
3
410
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
430
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
840
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2k
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 શ෦ॻ͍ͯ͋ΔɺಡΊΘ͔Δ
Ҏ্