Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
大規模開発の中でbackbone.js、 marionette.jsを使う利点
Search
Takayuki
January 01, 2018
Technology
700
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
大規模開発の中でbackbone.js、 marionette.jsを使う利点
大規模開発の中でbackbone.js、
marionette.jsを使う利点
Takayuki
January 01, 2018
More Decks by Takayuki
See All by Takayuki
Build an MCP Server in Laravel to Enable “AI-Operated” Recruiting Tools(English)
bumptakayuki
0
59
Laravel Applications with DDD x Clean Architecture x Vibe Coding
bumptakayuki
1
130
Laravel × Clean Architecture
bumptakayuki
1
620
エンジニアのキャリア論
bumptakayuki
1
310
地方カンファレンス主催のススメ
bumptakayuki
1
280
Laravelで敢えて試す脆弱性のある書き方
bumptakayuki
2
1.4k
地方でのPHPエンジニア採用って実際どうなの?
bumptakayuki
0
840
沖縄観光、名物を一挙紹介!
bumptakayuki
2
860
Laravel ShiftでLaravelのバージョンアップしてみた話
bumptakayuki
1
3.6k
Other Decks in Technology
See All in Technology
Railsのように考える: See through the Master
snoozer05
PRO
1
350
AIを活用するために決めた "やらないこと" - 価値に注目する / Not betting on AI
soudai
PRO
1
510
技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経験から、変更し続けられるソフトウェアを考える/ technical-debt-con2026
visional_engineering_and_design
2
2.1k
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
0
1.8k
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
190
幾何アルゴリズムで なめらかなピン操作を / iOSDC Japan 2026 / smoothpin
kazumanagano
0
340
データ_AIの事業の勝敗をわけるもの
nek0128
0
310
作品が生態系になった ─ Mini Tokyo 3D から世界へ
nagix
0
180
2026/09/10 Spring Bootから Jakarta EE/MicroProfileへの移行
megascus
0
360
安心して変更できるWebフロントエンドの作り方
pirosikick
4
2.2k
10分で知る最近のOmarchy
komagata
0
310
ユーザー価値を届け続けるためにウォンテッドリーが大切にしている文化
kotaminato
0
150
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Producing Creativity
orderedlist
PRO
348
41k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
520
SERP Conf. Vienna - Web Accessibility: Optimizing for Inclusivity and SEO
sarafernandez
2
1.6k
The Spectacular Lies of Maps
axbom
PRO
1
990
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3.1k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
How GitHub (no longer) Works
holman
316
150k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
12k
First, design no harm
axbom
PRO
2
1.3k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
650
Utilizing Notion as your number one productivity tool
mfonobong
4
590
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Λಋೖͯ͠ίʔυྔ͕େ෯ʹݮΔͱ͍͏ҹͳ͘ɺϝϯ ςφϯεͷ͢͠͞ɺظతͳੜ࢈ੑͷ্͕ಋೖͷϝϦοτʹͳΔɻ