Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
670
大規模開発の中で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
430
エンジニアのキャリア論
bumptakayuki
1
220
地方カンファレンス主催のススメ
bumptakayuki
1
230
Laravelで敢えて試す脆弱性のある書き方
bumptakayuki
2
1.2k
地方でのPHPエンジニア採用って実際どうなの?
bumptakayuki
0
710
沖縄観光、名物を一挙紹介!
bumptakayuki
2
710
Laravel ShiftでLaravelのバージョンアップしてみた話
bumptakayuki
1
3k
flutterでイベントアプリを作ってみた
bumptakayuki
0
170
オフショア開発の辛みと学んだ事
bumptakayuki
0
410
Other Decks in Technology
See All in Technology
AIの長期記憶と短期記憶の違いについてAgentCoreを例に深掘ってみた
yakumo
4
450
Python 3.14 Overview
lycorptech_jp
PRO
1
120
Reinforcement Fine-tuning 基礎〜実践まで
ch6noota
0
190
AlmaLinux + KVM + Cockpit で始めるお手軽仮想化基盤 ~ 開発環境などでの利用を想定して ~
koedoyoshida
0
120
30分であなたをOmniのファンにしてみせます~分析画面のクリック操作をそのままコード化できるAI-ReadyなBIツール~
sagara
0
180
多様なデジタルアイデンティティを攻撃からどうやって守るのか / 20251212
ayokura
0
490
AI-DLCを現場にインストールしてみた:プロトタイプ開発で分かったこと・やめたこと
recruitengineers
PRO
2
160
Amazon Quick Suite で始める手軽な AI エージェント
shimy
0
460
Haskell を武器にして挑む競技プログラミング ─ 操作的思考から意味モデル思考へ
naoya
7
1.6k
re:Invent2025 コンテナ系アップデート振り返り(+CloudWatchログのアップデート紹介)
masukawa
0
390
Power of Kiro : あなたの㌔はパワステ搭載ですか?
r3_yamauchi
PRO
0
180
AIプラットフォームにおけるMLflowの利用について
lycorptech_jp
PRO
1
170
Featured
See All Featured
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
Facilitating Awesome Meetings
lara
57
6.7k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
GraphQLとの向き合い方2022年版
quramy
50
14k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
7.9k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
57
37k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Become a Pro
speakerdeck
PRO
31
5.7k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
1k
Automating Front-end Workflow
addyosmani
1371
200k
How to train your dragon (web standard)
notwaldorf
97
6.4k
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Λಋೖͯ͠ίʔυྔ͕େ෯ʹݮΔͱ͍͏ҹͳ͘ɺϝϯ ςφϯεͷ͢͠͞ɺظతͳੜ࢈ੑͷ্͕ಋೖͷϝϦοτʹͳΔɻ