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
9k
日経電子版 レガシーな基礎の上に建つ旅館
taishiblue
15
7.2k
日経電子版 穴のあいたバケツ開発[加筆・修正版]
taishiblue
6
3.5k
日経電子版アプリ 穴のあいたバケツ開発
taishiblue
94
78k
日経電子版 新聞アプリとしてのUI/UX
taishiblue
13
14k
Other Decks in Programming
See All in Programming
PRレビューのお供にDanger
stoticdev
1
230
.NET Frameworkでも汎用ホストが使いたい!
tomokusaba
0
200
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the benefits are huge)
lmammino
1
150
楽しく向き合う例外対応
okutsu
0
640
CDK開発におけるコーディング規約の運用
yamanashi_ren01
2
250
Rails アプリ地図考 Flush Cut
makicamel
1
130
Domain-Driven Transformation
hschwentner
2
1.9k
Rubyと自由とAIと
yotii23
6
1.7k
Honoをフロントエンドで使う 3つのやり方
yusukebe
7
3.5k
パスキーのすべて ── 導入・UX設計・実装の紹介 / 20250213 パスキー開発者の集い
kuralab
3
890
Formの複雑さに立ち向かう
bmthd
1
930
PHPのバージョンアップ時にも役立ったAST
matsuo_atsushi
0
230
Featured
See All Featured
Site-Speed That Sticks
csswizardry
4
410
GitHub's CSS Performance
jonrohan
1030
460k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
Building an army of robots
kneath
303
45k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
Being A Developer After 40
akosma
89
590k
Mobile First: as difficult as doing things right
swwweet
223
9.4k
Music & Morning Musume
bryan
46
6.4k
Why You Should Never Use an ORM
jnunemaker
PRO
55
9.2k
Code Reviewing Like a Champion
maltzj
521
39k
Designing for humans not robots
tammielis
250
25k
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
͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ