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
590
大規模開発の中でbackbone.js、 marionette.jsを使う利点
大規模開発の中でbackbone.js、
marionette.jsを使う利点
Takayuki
January 01, 2018
Tweet
Share
More Decks by Takayuki
See All by Takayuki
地方カンファレンス主催のススメ
bumptakayuki
1
110
Laravelで敢えて試す脆弱性のある書き方
bumptakayuki
1
360
地方でのPHPエンジニア採用って実際どうなの?
bumptakayuki
0
380
沖縄観光、名物を一挙紹介!
bumptakayuki
2
400
Laravel ShiftでLaravelのバージョンアップしてみた話
bumptakayuki
1
1k
flutterでイベントアプリを作ってみた
bumptakayuki
0
91
オフショア開発の辛みと学んだ事
bumptakayuki
0
310
ChatGPTにStripeのサンプルコードを書かせてみた
bumptakayuki
1
130
ChatGPTに記事を書かせてみた
bumptakayuki
1
200
Other Decks in Technology
See All in Technology
Databricks における 『MLOps』
databricksjapan
2
170
GraphQL 成熟度モデルの紹介と、プロダクトに当てはめた事例 / GraphQL maturity model
mh4gf
7
1.3k
DevOpsDays History and my DevOps story
kawaguti
PRO
9
2.5k
自己改善からチームを動かす! 「セルフエンジニアリングマネージャー」のすゝめ
shoota
6
650
プラットフォームってつくることより計測することが重要なんじゃないかという話 / Platform Engineering Meetup #8
taishin
1
360
DevOpsメトリクスとアウトカムの接続にトライ!開発プロセスを通して計測できるメトリクスの活用方法
ham0215
2
240
ServiceNow Knowledge Learning Rise up
manarobot
0
210
どうするコスト最適化のトレードオフ
tetsuyaooooo
1
520
プロンプトエンジニアリングでがんばらない-Agentic Workflow へ-近藤憲児
kenjikondobai
2
530
SIEMを用いて、セキュリティログ分析の可視化と分析を実現し、PDCAサイクルを回してみた
coconala_engineer
0
310
web-application-security
matsuihidetoshi
0
170
一生覚えておきたい「システム開発=コミュニケーション」〜初めての実務案件振り返りLT〜
maimyyym
0
140
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
689
190k
Designing on Purpose - Digital PM Summit 2013
jponch
110
6.5k
Web Components: a chance to create the future
zenorocha
305
41k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
17
1.4k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
244
20k
Making the Leap to Tech Lead
cromwellryan
124
8.5k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
501
140k
The Straight Up "How To Draw Better" Workshop
denniskardys
227
130k
The Cult of Friendly URLs
andyhume
74
5.7k
The MySQL Ecosystem @ GitHub 2015
samlambert
243
12k
Faster Mobile Websites
deanohume
299
30k
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Λಋೖͯ͠ίʔυྔ͕େ෯ʹݮΔͱ͍͏ҹͳ͘ɺϝϯ ςφϯεͷ͢͠͞ɺظతͳੜ࢈ੑͷ্͕ಋೖͷϝϦοτʹͳΔɻ