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
10k
日経電子版アプリが高速化のためにやったこと
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
9.1k
日経電子版 レガシーな基礎の上に建つ旅館
taishiblue
15
7.3k
日経電子版 穴のあいたバケツ開発[加筆・修正版]
taishiblue
6
3.5k
日経電子版アプリ 穴のあいたバケツ開発
taishiblue
94
78k
日経電子版 新聞アプリとしてのUI/UX
taishiblue
13
14k
Other Decks in Programming
See All in Programming
複雑なフォームと複雑な状態管理にどう向き合うか / #newt_techtalk vol. 15
izumin5210
4
3k
令和トラベルにおけるコンテンツ生成AIアプリケーション開発の実践
ippo012
1
260
リアクティブシステムの変遷から理解するalien-signals / Learning alien-signals from the evolution of reactive systems
yamanoku
2
980
AHC 044 混合整数計画ソルバー解法
kiri8128
0
300
AI Agentを利用したAndroid開発について
yuchan2215
0
210
Firebase Dynamic Linksの代替手段を自作する / Create your own Firebase Dynamic Links alternative
kubode
0
180
PHPによる"非"構造化プログラミング入門 -本当に熱いスパゲティコードを求めて- #phperkaigi
o0h
PRO
0
1.1k
ステートソーシング型イベント駆動の視点で捉えるCQRS+ES
shinnosuke0522
1
320
ミリしらMCP勉強会
watany
2
220
CRE Meetup!ユーザー信頼性を支えるエンジニアリング実践例の発表資料です
tmnb
0
350
Go1.24で testing.B.Loopが爆誕
kuro_kurorrr
0
160
SideKiqでジョブが二重起動した事象を深堀りしました
t_hatachi
0
230
Featured
See All Featured
Docker and Python
trallard
44
3.3k
Why Our Code Smells
bkeepers
PRO
336
57k
Stop Working from a Prison Cell
hatefulcrawdad
268
20k
Music & Morning Musume
bryan
46
6.4k
Become a Pro
speakerdeck
PRO
27
5.2k
The World Runs on Bad Software
bkeepers
PRO
67
11k
A Philosophy of Restraint
colly
203
16k
Testing 201, or: Great Expectations
jmmastey
42
7.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.2k
For a Future-Friendly Web
brad_frost
176
9.6k
Scaling GitHub
holman
459
140k
The Invisible Side of Design
smashingmag
299
50k
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
͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ