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
大規模開発の中でbackbone.js、 marionette.jsを使う利点
Search
Takayuki
January 01, 2018
Technology
0
640
大規模開発の中でbackbone.js、 marionette.jsを使う利点
大規模開発の中でbackbone.js、
marionette.jsを使う利点
Takayuki
January 01, 2018
Tweet
Share
More Decks by Takayuki
See All by Takayuki
Laravel × Clean Architecture
bumptakayuki
0
260
エンジニアのキャリア論
bumptakayuki
0
180
地方カンファレンス主催のススメ
bumptakayuki
1
200
Laravelで敢えて試す脆弱性のある書き方
bumptakayuki
2
1k
地方でのPHPエンジニア採用って実際どうなの?
bumptakayuki
0
640
沖縄観光、名物を一挙紹介!
bumptakayuki
2
640
Laravel ShiftでLaravelのバージョンアップしてみた話
bumptakayuki
1
2.5k
flutterでイベントアプリを作ってみた
bumptakayuki
0
160
オフショア開発の辛みと学んだ事
bumptakayuki
0
390
Other Decks in Technology
See All in Technology
20250625 Snowflake Summit 2025活用事例 レポート / Nowcast Snowflake Summit 2025 Case Study Report
kkuv
1
230
Agentic Workflowという選択肢を考える
tkikuchi1002
1
400
登壇ネタの見つけ方 / How to find talk topics
pinkumohikan
3
300
JSX - 歴史を振り返り、⾯⽩がって、エモくなろう
pal4de
3
1.1k
強化されたAmazon Location Serviceによる新機能と開発者体験
dayjournal
2
160
OAuth/OpenID Connectで実現するMCPのセキュアなアクセス管理
kuralab
5
880
IIWレポートからみるID業界で話題のMCP
fujie
0
740
Amplifyとゼロからはじめた AIコーディング 成果と展望
mkdev10
1
360
[TechNight #90-1] 本当に使える?ZDMの新機能を実践検証してみた
oracle4engineer
PRO
3
140
監視のこれまでとこれから/sakura monitoring seminar 2025
fujiwara3
10
2.9k
本部長の代わりに提案書レビュー! KDDI営業が毎日使うAIエージェント「A-BOSS」開発秘話
minorun365
PRO
14
2.3k
2年でここまで成長!AWSで育てたAI Slack botの軌跡
iwamot
PRO
2
400
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
46
14k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Docker and Python
trallard
44
3.4k
We Have a Design System, Now What?
morganepeng
52
7.6k
Adopting Sorbet at Scale
ufuk
77
9.4k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
15
1.5k
Visualization
eitanlees
146
16k
Raft: Consensus for Rubyists
vanstee
140
7k
4 Signs Your Business is Dying
shpigford
184
22k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.7k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
107
19k
Transcript
大規模開ൃの中でbackbone.js、 marionette.jsを使う利点 FullSpeed 鈴木孝之 2017/03/08
"KFOEB ձࣾɾࣗݾհ CBDLCPOFKTͷ֓ཁ େن։ൃͰͷCBDLCPOFKTͷϝϦοτɾಛ ࣄྫ
0.ձࣾɾࣗݾհ ◆໊લ ླ ೭(Suzuki Takayuki) ※ಉಉ໊ଟͯ͘ࠔͬͯ·͢ɻɻɻ ◆ࣗݾհ 1990ɺਆಸݝੜ·Εɻ ओʹۀγεςϜͷ։ൃΛܦݧޙɺ2015ʹϑϧεϐʔυʹೖࣾɻ ϑϧεϐʔυͰɺࠂ৴αʔϏεʮAdMatrixDSPʯͷ
։ൃΛ୲͠ɺཧը໘ͷϑϩϯταΠυͱ αʔόαΠυͷ։ൃʹैࣄɻ ◆झຯ ίεϓϨɺԻָϥΠϒɺϥϯχϯάɺٿ؍ઓ ◆εΩϧ PHP,Symfony2,CakePHP3,JavaScript,backbone.js,Angular.js,Java ʙࣗݾհʙ
0.ձࣾɾࣗݾհ ڌҰཡ ैۀһใ DSPɺಈըΞυωοτϫʔΫɺΞϑΟϦΤΠτΛ͡Ίͱ͢Δ ΞυςΫϊϩδʔࣄۀɺSEOίϯαϧςΟϯάɾӡ༻ܕࠂΛ ओ࣠ͱ͢ΔΠϯλʔωοτϚʔέςΟϯάࣄۀΛల։͢Δ ΞυςΫϊϩδʔˍϚʔέςΟϯάΧϯύχʔɻ ʙձࣾհʙ ࣗࣾαʔϏε
0.ձࣾɾࣗݾհ ʙձࣾհʙ ɾࠂࣄۀΛத৺ʹల։ ɾಠࣗΞυςΫϊϩδʔɾϓϥοτ ϑΥʔϜΛ։ൃ͠ɺϚʔέςΟϯά ࣄۀͱ߹ΘͤͯҰؾ௨؏ల։ ɾੵͨ͠σʔλɾϊϋΛ׆༻ ͠ɺߴਫ਼ͳϚʔέςΟϯά׆ಈࢧ ԉΛ࣮ݱ
0.ձࣾɾࣗݾհ ʙDSPͱʙ AD SSP DSP1 DSP3 DSP2 ϝσΟΞ RTB CPMΦʔΫγϣϯ
DSP1 80ԁ DSP2 110ԁ DSP3 100ԁ ᶃΠϯϓϨογϣϯൃੜ ᶄDSPೖࡳϦΫΤετ ᶅDSP͕݅ʹԊͬͯೖࡳ ᶆΦʔΫγϣϯ։࠵ ᶇࠂ৴
0.ձࣾɾࣗݾհ ʙAdMatrixDSPͰߦ͍ͬͯΔࣄʙ AD SSP Admatrix DSP ϝσΟΞ CPMΦʔΫγϣϯ DSP1 80ԁ
DSP2 110ԁ DSP3 100ԁ ᶃΠϯϓϨογϣϯൃੜ ᶄDSPೖࡳϦΫΤετ ᶅDSP͕݅ʹԊͬͯೖࡳ ᶆΦʔΫγϣϯ։࠵ ᶇࠂ৴ 䡧ཧը໘Ͱओʹߦ͏ૢ࡞ ɾେྔͷࠂϨϙʔτͷ֬ೝ ɾࠂͷ࡞ɾฤू ɾ৴ϢʔβͷλʔήςΟϯά ͳͲ RTB
0.ձࣾɾࣗݾհ ʙAdMatrixDSPͰߦ͍ͬͯΔࣄʙ
1.backbone.jsͷ֓ཁ ɾ20106݄ʹϦϦʔε͞ΕΔɻ ɾϑϨʔϜϫʔΫͷαΠζ͕খ͍͞ɻ AngularJs: 36KɺBackbone.js: 6.4Kɻ ɾBackbone.jsͦͷ໊ͷ௨ΓΈ͔͠ͳ͘ɺ ϕετϓϥΫςΟεͱݺΔͷ͕ଘࡏ͠ͳ͍ɻ ɾʮ͍ܰʯͱΑ͘ݴΘΕΔ͕ͦͷଞϥΠϒϥϦ(jQuery/ Underscore.js
etc)ʹґଘ͍ͯ͠ΔͷͰɺͦ͜ཁҙɻ
1.backbone.jsͷ֓ཁ ֶशίετߴ͍ ֶशίετ͍ ॏྔͰϑϧελοΫ ܰྔͰ൚༻ੑ͋Γ
1.backbone.jsͷ֓ཁ ʙੈքతͳτϨϯυʙ
2.ϝϦοτɾಛ ʙཧը໘Ͱ༻͍ͯ͠Δٕज़ʙ DB ϑϩϯταΠυ αʔόαΠυ ϏϧυɾλεΫཧ ɾAPIॲཧ ɾjob࣮ߦ ɾόον࣮ߦ ཧը໘
ɾViewͱTemplateΛΓ ͢͜ͱ͕Ͱ͖ɺ͔ͭCompile ࣌ʹTemplateΛjsͷϝιου ʹมͯ͘͠ΕΔͨΊɺඳ ը͍ɻ ɾ·ͨTempleteΛͷૉͷ HTMLʹۙ͘͢Δ͜ͱͰɺσ βΠφʔ͕Templateʹର͠ ͯमਖ਼ͯ͠σβΠϯΛ मਖ਼Ͱ͖Δɻ
ɾࣗ༝͕ߴ͍ͷͰɺΤϯδ χΞͷʹΑͬͯݟ௨͕͠ ѱ͍ίʔυʹͳΓ͍͢ɻ ɾBackBone.jsΛಋೖͯ͠ ίʔυྔ͕େ෯ʹݮΔͱ͍͏ ҹͳ͘ɺΓϝϯςφ ϯεͷ͢͠͞ɺظతͳ ੜ࢈ੑͷ্͕ಋೖͷϝϦο τʹͳΔɻ ɾModelɺViewɺCollection ͕͖ͬΓ͔Ε͓ͯΓɺࡉ ͔͍୯ҐͰཧͰ͖Δɻ ɾকདྷతͳ͍·Θ͠Λߟ͑ ΔͳΒ͜Ε͕׆͖ͯ͘Δͷ͔ ͠Εͳ͍͕ɺͦ͏͢Δͱͦ ͦ͜͜େنͰͳ͍ͱׂʹ߹ Θͳ͍ɻ ߴͰԠੑ͕ߴ͍ɻ େن։ൃʹ͍͍ͯΔɻ 2.ϝϦοτɾಛ ࣗ༝͕ߴ͍ɻ 1 3 2 ʙϝϦοτʙ
2.ϝϦοτɾಛ ʙ࣮ࡍʹ༻͞Ε͍ͯΔαʔϏεʙ ɾݱࡏͰTwitterɺPinterestɺ HuluɺFoursquareͱ͍ͬͨύϫϑ ϧͰେنͳ։ൃΛߦ͍ͬͯΔ WebαʔϏεʹΘΕ͍ͯΔɻ Compassbackbone.jsΛͬͯ ͍ΔͬΆ͍ɻ
Router Collection Model View Model Model Ajax௨৴ template /show ରͷURL͕ୟ͔Εͨ
ࡍʹৼΓ͚Δ ରͷViewͱtemplate ϑΝΠϧ͕ݺΕΔ ඞཁͳCollectionΛݺͼग़͢ 2.ϝϦοτɾಛ ʙ૬ؔਤʙ ωετͨ͠Viewͷ ཧΛิॿ
3.ࣄྫ MainView SummaryView TableView(Collection) ListView(Model) ʙཧը໘ͰͷViewͷ͚ํʙ
ʙͦΕͧΕͷॻ͖ํʙ Model 3.ࣄྫ
Collection ʙͦΕͧΕͷॻ͖ํʙ 3.ࣄྫ
View ʙͦΕͧΕͷॻ͖ํʙ 3.ࣄྫ
ɾMarionetteɺMVCͰ͍͏ɺίϯτϩʔ ϥͱϏϡʔʹରͯ͠ͷิॿΛ͢ΔػೳΛ࣋ ͭɻ ɾΞϓϦέʔγϣϯͷن͕େ͖͘ͳͬͯ ͘ΔͱɺBackboneͷΈͰViewͷཧ͕େ มʹͳͬͯ͘Δɻ ͦΜͳ࣌ʹmarionette.jsͷregionػೳ͕ศ རʂ ͜ͷΑ͏ʹDOMΛregionొͯ͠ɺ ผ్ཧͰ͖Δɻ
ʙͦΕͧΕͷॻ͖ํʙ 3.ࣄྫ
TVNNBSZ ɾ#BDLCPOFKTܰྔ͔ͭߴͰԠੑ͕ߴ͍ͱ͍͏ͷັྗͰ͋Δͷɺ ࣗ༝͕ߴ͍ͨΊܦݧ͕ઙ͍ͱແବͳίʔυ͕ࠞೖ͍͢͠ͷ͕ɻ ɾಋೖ͢Δ߹ॻ͖ํͷϧʔϧܾΊΛ͔ͬ͠Γߦ͑Δਓ͕͍Δͱྑ͍ɻ ɾେྔͷσʔλΛ͍εϐʔυͰऔಘ͠ͳ͍ͱ͍͚ͳ͍αʔϏεʹ͓͢͢Ί ɾ#BDLCPOFKTΛಋೖͯ͠ίʔυྔ͕େ෯ʹݮΔͱ͍͏ҹͳ͘ɺϝϯ ςφϯεͷ͢͠͞ɺظతͳੜ࢈ੑͷ্͕ಋೖͷϝϦοτʹͳΔɻ