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
日経電子版アプリが高速化のためにやったこと
Search
Taishi Takeichi
October 27, 2015
Programming
16
9.9k
日経電子版アプリが高速化のためにやったこと
2015/10/27 RealmMeetup #8 at Sansan
Taishi Takeichi
October 27, 2015
Tweet
Share
More Decks by Taishi Takeichi
See All by Taishi Takeichi
日経電子版 プロダクトアウトからの脱却
taishiblue
10
10k
プロダクトマネジメントとは[新卒研修]
taishiblue
25
8.9k
日経電子版 レガシーな基礎の上に建つ旅館
taishiblue
15
7.1k
日経電子版 穴のあいたバケツ開発[加筆・修正版]
taishiblue
6
3.3k
日経電子版アプリ 穴のあいたバケツ開発
taishiblue
94
78k
日経電子版 新聞アプリとしてのUI/UX
taishiblue
13
14k
Other Decks in Programming
See All in Programming
ECS向けのドリフト検知機構を実装してみた
tkikuc
0
260
CSC509 Lecture 01
javiergs
PRO
1
200
5年分のツケを一気に払った話
soogie
3
1.1k
VS Code extension: ドラッグ&ドロップでファイルを並び替える
ttrace
0
150
"型"のあるRailsアプリケーション開発 / Typed Rails application development
sinsoku
8
2.2k
[PHPカンファレンス沖縄2024]「無理なくできるだけ安全に」テストもないレガシーコードをリファクタリングするテクニック
ikezoemakoto
3
110
自分だけの世界を創るクリエイティブコーディング / Creative Coding: Creating Your Own World
chobishiba
1
130
Modern Functional Fluent CFML REST by Luis Majano
ortus24
0
120
NANIMACHI
naokiito
0
930
Progressive Web Apps for Rails developers
siaw23
2
530
モジュラモノリス、その前に / Modular monolith, before that
euglena1215
4
470
Flutterアプリを生成AIで生成する勘所
rizumita
0
240
Featured
See All Featured
Scaling GitHub
holman
458
140k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
228
52k
Done Done
chrislema
181
16k
WebSockets: Embracing the real-time Web
robhawkes
59
7.3k
KATA
mclloyd
27
13k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
225
22k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
25
640
Clear Off the Table
cherdarchuk
91
320k
Ruby is Unlike a Banana
tanoku
96
11k
[RailsConf 2023] Rails as a piece of cake
palkan
49
4.7k
How GitHub (no longer) Works
holman
311
140k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
2
210
Transcript
ܦిࢠ൛ΞϓϦ͕ ߴԽͷͨΊʹͬͨ͜ͱ ຊܦࡁ৽ฉࣾɹࢢେࢤ
ɾେֶଔۀޙɺόϯυ׆ಈɻ ɾɺ8FC։ൃձࣾʹೖࣾɻ8FCΤϯδχΞͱͯ͠ಇ͘ɻ ɹ+BWBTDSJQU"DUJPO4DSJQU-".1ڥͰͷ։ൃ ɹ'9औҾͷ8FCΞϓϦ։ൃͳͲʹैࣄɻ ɾɺຊܦࡁ৽ฉࣾʢຊࣾʣʹೖࣾɻ ɹαʔϏε։ൃͷϞόΠϧɾΞϓϦνʔϜʹଐɻ ࣗݾհ
ࠓ͓͍ͨ͜͠͠ͱ ɾܦిࢠ൛ʹ͍ͭͯͷ͝આ໌ ɾܦిࢠ൛ΞϓϦ͕͔ͬͨݪҼ ɹʢΞϓϦىಈʙσʔλऔಘʙը໘දࣔʣ ɾ͘͢ΔͨΊʹͬͨ͜ͱ
ܦిࢠ൛ʹ͍ͭͯ
ܦిࢠ൛ ɾ݄̏ץ ɾϝΠϯϓϩμΫτɺ ɹ1$αΠτɾεϚϗαΠτɾిࢠ൛ΞϓϦɾࢴ໘ϏϡʔΞΞϓϦ ɾຊܦࡁ৽ฉேץɾ༦ץͷશهࣄɺ8FCݶఆͷΦϦδφϧهࣄɺ ɹ͜ΕΒͷهࣄΛύʔιφϥΠζͯ͠ఏڙ͢Δ.Zχϡʔε
༗ྉձһ ສਓɹ ແྉձһ ສਓ ະొϢʔβʔ ສ6# શهࣄɾશػೳ ʢ ԁʗ݄ʣ ແྉهࣄ
༗ྉهࣄຊʗ݄ ແྉهࣄ ܦిࢠ൛
ܦిࢠ൛ΞϓϦʹ͍ͭͯ
ܦిࢠ൛ΞϓϦ ɾʹϦϦʔεɻ ɹ݄ʹϦχϡʔΞϧʢθϩ͔Β։ൃʣ ɾαʔόαΠυ"84ɻ ɾϑϩϯταΠυΛ֎෦ϝϯλʔͷ ɹྗΛआΓͭͭԽɻ ɾݱঢ়ͷମ੍ ɹɹ1.໊ ɹɹJ04ΤϯδχΞ໊̍ʴϝϯλʔ ɹɹ"OESPJEΤϯδχΞ໊̍ʴϝϯλʔ
جຊతͳը໘ͷߏ Ұཡ هࣄ ֊
؆୯ͳߏਤ "1* جຊతʹ$%/͔ΒσʔλʢKTPOʣΛ [JQϑΝΠϧͰऔಘ
؆୯ͳߏਤ "1* جຊతʹ$%/͔ΒσʔλʢKTPOʣΛ [JQϑΝΠϧͰऔಘ ࠓ͜ͷΜͷߴԽͷ
ܦిࢠ൛ΞϓϦ͕͔ͬͨݪҼ
σʔλྔ͕ଟ͍ ܦిࢠ൛ΞϓϦ͕͔ͬͨݪҼ
ேץɾ༦ץ ɾϖʔδ ɾຊͷهࣄ ɾจࣈສจࣈ ɹ৽ॻ̎ ిࢠ൛ʢ8FCץʣ ɾ8FCΞϓϦ͚ͩͰಡΊΔهࣄ ɾ̍ຊͷهࣄ ʹ̍ຊͷهࣄ هࣄ͕ଟ͍
ʢʣݟग़ͦ͠ͷ̍ ʢʣݟग़ͦ͠ͷ̎ ʢʣݟग़ͦ͠ͷ̏ ʢʣهࣄͷެ։࣌ ʢʣهࣄͷߋ৽࣌ ʢʣ༗ྉձһݶఆهࣄ͔Ͳ͏͔ ʢʣهࣄʹಈը͕͋Δ͔Ͳ͏͔ ʢʣهࣄΛอଘ͍͍͔ͯ͠Ͳ͏͔ ʢʣهࣄ͕ॴଐ͢Δ࿈ࡌɾίϥϜ໊ ʢʣهࣄຊจ
ʢʣهࣄຊจͷεχϖοτ ʢʣαϜωΠϧը૾ʢαΠζʹΑͬͯछྨʣ ʢʣαϜωΠϧը૾ͷΫϨδοτ ʢʣؔ࿈هࣄ ɾɾɾ ̍هࣄ͋ͨΓͷ߲͕ଟ͍
هࣄͷը૾࠷ॳʹ·ͱΊͯऔಘ͍ͯͨ͠ ςΩετը૾ؚΊΔͱɺ ಊʑͷ .#ʂʂ
ඥ͚͕ଟ͍ ܦిࢠ൛ΞϓϦ͕͔ͬͨݪҼ
τοϓ ใ Ϗδωε Ϧʔμʔ Ϛʔέοτ Ϛωʔ ిࢠ൛ʢ8FCץʣ ςΫϊϩδʔ τοϓ YYY
YYY YYY YYY τοϓ YYY YYY YYY YYY ேץɾ༦ץ ֊ߏ͕ਂ͍ ɾɾɾ ɾɾɾ ϥΠϑ εϙʔπ ө૾ ୈ̍֊ ୈ̎֊ ୈ̏֊ ୈ̐֊ هࣄ
هࣄը૾ ؔ࿈هࣄ هࣄ όοΫ φϯόʔ -- - . 4 ΫϨδοτ
63- ෯ ߴ͞ هࣄ͔Βઌͳ͔ͳ͔ͷߏ ɾɾɾ ༻ޠ اۀ໊ גՁͳͲ اۀ֓ཁ ؔ࿈هࣄ YYY ຊจ ɾɾɾ
͘͢ΔͨΊʹͬͨ͜ͱ
औಘ͢ΔσʔλྔΛݮΒ͢ ͘͢ΔͨΊʹͬͨ͜ͱ
ɾը૾[JQ͔Βऔಘͤͣʹɺදࣔ͢Δ࣌ʹऔಘ͢Δ ɹˠ௨৴ڥ͕̑લΑΓେ෯ʹվળ ɾਂ͍֊දݱ͠ͳ͍͜ͱʹͯ͠ɺ֊ใྔΛݮΒ͢ ɹˠͲ͏ͤεϚϗը໘Ͱදݱ͖͠Εͳ͍ ɾΘͳ͍αΠζͷը૾ใऔಘ͠ͳ͍ औಘ͢ΔσʔλΛݮΒ͢
औಘ͢ΔσʔλΛݮΒ͢ .#ɹɹ,ʙ, ɾը૾[JQ͔Βऔಘͤͣʹɺදࣔ͢Δ࣌ʹऔಘ͢Δ ɹˠ௨৴ڥ͕̑લΑΓେ෯ʹվળ ɾਂ͍֊දݱ͠ͳ͍͜ͱʹͯ͠ɺ֊ใྔΛݮΒ͢ ɹˠͲ͏ͤεϚϗը໘Ͱදݱ͖͠Εͳ͍ ɾΘͳ͍αΠζͷը૾ใऔಘ͠ͳ͍
KTPOϑΝΠϧΛෳʹ͚Δ ͘͢ΔͨΊʹͬͨ͜ͱ
֊ߏσʔλ ֤هࣄҰཡσʔλ [JQͷKTPOϑΝΠϧΛෳʹ͚Δ هࣄ"ͷσʔλ ϚελʔKTPO هࣄKTPO ɾɾɾ هࣄ#ͷσʔλ هࣄ$ͷσʔλ هࣄ%ͷσʔλ
֊ߏσʔλ ֤هࣄҰཡσʔλ هࣄ"ͷσʔλ ϚελʔʴهࣄKTPO ɾɾɾ هࣄ#ͷσʔλ هࣄ$ͷσʔλ هࣄ%ͷσʔλ
֊ߏσʔλ ֤هࣄҰཡσʔλ KTPOϑΝΠϧΛෳʹ͚Δ هࣄ"ͷσʔλ ϚελʔKTPO هࣄKTPO ɾɾɾ هࣄ#ͷσʔλ هࣄ$ͷσʔλ هࣄ%ͷσʔλ
֊ߏσʔλ ֤هࣄҰཡσʔλ هࣄ"ͷσʔλ ɾɾɾ هࣄ#ͷσʔλ هࣄ$ͷσʔλ هࣄ%ͷσʔλ [JQ[BQΛͬͯɺ[JQΛղౚͤͣʹ ͦͷ࣌ʹඞཁͳKTPOσʔλ͚ͩऔΓग़͢ ϚελʔʴهࣄKTPO
σʔλ֊ΛͳΔ͘ϑϥοτʹ͢Δ ͘͢ΔͨΊʹͬͨ͜ͱ
ேץɾ༦ץͷҰཡʹ࣮֊ߏ͕ɾɾ ֊ΛϑϥοτʹͰ͖Δͱ͜Ζ͢Δ هࣄ ࢠهࣄ ࢠهࣄ ࢠهࣄ ଙهࣄ هࣄ ࢠهࣄ ࢠهࣄ
ࢠهࣄ ଙهࣄ ϓϩύςΟͰ͔ࢠ͔ଙ͔Λ࣋ͭ
ΞϓϦͷσʔλऔಘॲཧϑϩʔ [JQϑΝΠϧΛऔಘ ҰཡใͷσʔλΛऔΓग़ͯ͠ɺ Ұ෦֊Λϑϥοτʹͯ͠ɺ3FBMNʹอଘ Ұཡ͔ΒهࣄભҠͨ࣌͠ʹɺ هࣄใͷσʔλΛऔΓग़ͯ͠ɺ3FBMNʹอଘ
$PSF%BUBˠ3FBMN ͘͢ΔͨΊʹͬͨ͜ͱ
3FBMNͷ͍͍ͱ͜Ζ σʔλଆɾ"1*ଆΛͯ͠ɺ $PSF%BUBͷॲཧʹݶք͕͋ͬͨɾɾɾ ɾ$PSF%BUBؔ࿈Λ͚ͭͨΦϒδΣΫτΛ·ͱΊͯ݅΄Ͳอଘ͢Δͱɺ ɹύϑΥʔϚϯε͕ٸܹʹམͪΔɻ ɹˠσʔλඥ͚͕ଟ͍ܦిࢠ൛ΞϓϦʹ͍͍ͯͳ͍ɻ ɾ3FBMNؔ࿈Λ͚ͭͯߴͰಈ࡞͢Δɻ ɾςʔϒϧͷఆ͕ٛෆཁͰɺϞσϧͷఆ͕ٛͦͷ··ө͞ΕΔɻ શൠతʹ3FBMNʹΓସ͑ͨɻ
3FBMNͷͪΐͬͱ໘ͳͱ͜Ζ ɾOJM͕ೖΕΒΕͳ͍ ɹˠσϑΥϧτΛઃఆͯ͠ɺۭจࣈͳͲΛೖΕͨ ɹˠೖΕΒΕΔΑ͏ʹͳͬͨʂ ɾεϨουΛ·͍ͨͰͷΦϒδΣΫτͷࢀর͕Ͱ͖ͳ͍ ɹˠࣄલʹϓϥΠϚϦʔΩʔΛϩʔΧϧͰอ࣋ͯ͠ɺ ɹɹͦΕΛ༻ͯ͠ҧ͏εϨουͰऔಘͨ͠ ɾΧεέʔυআ͕Ͱ͖ͳ͍ ɹˠআ͢ΔϓϩύςΟ໊Λฦ͢ϝιουͱɺ ɹɹରͱͳΔϓϩύςΟΛআ͢ΔϝιουΛࣗ࡞ͨ͠
#FGPSF $PSF%BUBˠ3FBMNͰॖͰ͖ͨ࣌ؒ J1IPOFʗJ04Ͱɺ͋ΔͷேץΛऔಘ
#FGPSF "GUFS $PSF%BUBˠ3FBMNͰॖͰ͖ͨ࣌ؒ J1IPOFʗJ04Ͱɺ͋ΔͷேץΛऔಘ
#FGPSF "GUFS $PSF%BUBˠ3FBMNͰॖͰ͖ͨ࣌ؒ J1IPOFʗJ04Ͱɺ͋ΔͷேץΛऔಘ ༧Ҏ্ͷߴԽʹɺ ࣾͰ͓͡͞·ͨͪΛத৺ʹڻ͖ͷʂ
·ͱΊ
·ͱΊ ɾσʔλߏ"1*ɾΞϓϦͷ྆໘͔ΒߴԽ ɾ࣌ʹαʔϏεͷཁ݅Λม͑Δ͜ͱඞཁ ɾͦͯ͠3FBMN͔ͬͨ ܦిࢠ൛ΞϓϦɺ ·ͩ·ͩΞοϓσʔτ͍͖ͯ͠·͢ɻ ࢴ໘ϏϡʔΞΞϓϦͰ3FBMNΛɻ
ܦిࢠ൛ͰɺΤϯδχΞΛืू͍ͯ͠·͢ɻ ɾϑϩϯτΤϯυͰόοΫΤϯυͰ0, ɾͱΓ͋͑ͣ৬ͷ͍ͧͯΈ͍ͨɺͰ0, Լه·Ͱؾܰʹ࿈བྷ͍ͩ͘͞ɻ EH@MBC!OFYOJLLFJDPKQ
͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ