Upgrade to Pro — share decks privately, control downloads, hide ads and more …

日経電子版アプリが高速化のためにやったこと

 日経電子版アプリが高速化のためにやったこと

2015/10/27 RealmMeetup #8 at Sansan

Taishi Takeichi

October 27, 2015
Tweet

More Decks by Taishi Takeichi

Other Decks in Programming

Transcript

  1. ೔ܦిࢠ൛ΞϓϦ͕
    ߴ଎ԽͷͨΊʹ΍ͬͨ͜ͱ
    ೔ຊܦࡁ৽ฉࣾɹ෢ࢢେࢤ

    View Slide

  2. ɾେֶଔۀޙɺόϯυ׆ಈɻ
    ɾ೥ɺ8FC։ൃձࣾʹೖࣾɻ8FCΤϯδχΞͱͯ͠ಇ͘ɻ
    ɹ+BWBTDSJQU"DUJPO4DSJQU-".1؀ڥͰͷ։ൃ
    ɹ'9औҾͷ8FCΞϓϦ։ൃͳͲʹैࣄɻ
    ɾ೥ɺ೔ຊܦࡁ৽ฉࣾʢຊࣾʣʹೖࣾɻ
    ɹαʔϏε։ൃͷϞόΠϧɾΞϓϦνʔϜʹ഑ଐɻ
    ࣗݾ঺հ

    View Slide

  3. ࠓ೔͓࿩͍ͨ͜͠͠ͱ
    ɾ೔ܦిࢠ൛ʹ͍ͭͯͷ͝આ໌
    ɾ೔ܦిࢠ൛ΞϓϦ͕஗͔ͬͨݪҼ
    ɹʢΞϓϦىಈʙσʔλऔಘʙը໘දࣔʣ
    ɾ଎͘͢ΔͨΊʹ΍ͬͨ͜ͱ

    View Slide

  4. ೔ܦిࢠ൛ʹ͍ͭͯ

    View Slide

  5. ೔ܦిࢠ൛
    ɾ೥݄̏૑ץ
    ɾϝΠϯϓϩμΫτ͸ɺ
    ɹ1$αΠτɾεϚϗαΠτɾిࢠ൛ΞϓϦɾࢴ໘ϏϡʔΞΞϓϦ
    ɾ೔ຊܦࡁ৽ฉேץɾ༦ץͷશهࣄɺ8FCݶఆͷΦϦδφϧهࣄɺ
    ɹ͜ΕΒͷهࣄΛύʔιφϥΠζͯ͠ఏڙ͢Δ.Zχϡʔε

    View Slide

  6. ༗ྉձһ
    ໿ສਓ௒ɹ
    ແྉձһ
    ໿ສਓ
    ະొ࿥Ϣʔβʔ
    ໿ສ6#
    શهࣄɾશػೳ
    ʢ ԁʗ݄ʣ
    ແྉهࣄ
    ༗ྉهࣄຊʗ݄
    ແྉهࣄ
    ೔ܦిࢠ൛

    View Slide

  7. ೔ܦిࢠ൛ΞϓϦʹ͍ͭͯ

    View Slide

  8. ೔ܦిࢠ൛ΞϓϦ
    ɾ೥ʹϦϦʔεɻ
    ɹ೥݄ʹϦχϡʔΞϧʢθϩ͔Β։ൃʣ
    ɾαʔόαΠυ΋"84΁ɻ
    ɾϑϩϯταΠυΛ֎෦ϝϯλʔͷ
    ɹྗΛआΓͭͭ಺੡Խɻ
    ɾݱঢ়ͷମ੍
    ɹɹ1.໊
    ɹɹJ04ΤϯδχΞ໊̍ʴϝϯλʔ
    ɹɹ"OESPJEΤϯδχΞ໊̍ʴϝϯλʔ

    View Slide

  9. جຊతͳը໘ͷߏ੒
    Ұཡ هࣄ
    ֊૚

    View Slide

  10. ؆୯ͳߏ੒ਤ
    "1*
    جຊతʹ$%/͔ΒσʔλʢKTPOʣΛ
    [JQϑΝΠϧͰऔಘ

    View Slide

  11. ؆୯ͳߏ੒ਤ
    "1*
    جຊతʹ$%/͔ΒσʔλʢKTPOʣΛ
    [JQϑΝΠϧͰऔಘ
    ࠓ೔͸͜ͷ΁Μͷߴ଎Խͷ࿩

    View Slide

  12. ೔ܦిࢠ൛ΞϓϦ͕஗͔ͬͨݪҼ

    View Slide

  13. σʔλྔ͕ଟ͍
    ೔ܦిࢠ൛ΞϓϦ͕஗͔ͬͨݪҼ

    View Slide

  14. ேץɾ༦ץ
    ɾ໿ϖʔδ
    ɾ೔໿ຊͷهࣄ
    ɾจࣈ਺͸໿ສจࣈ
    ɹ৽ॻ̎࡭෼
    ిࢠ൛ʢ8FCץʣ
    ɾ8FC΍ΞϓϦ͚ͩͰಡΊΔهࣄ
    ɾ̍೔໿ຊͷهࣄ
    ʹ̍೔໿ຊͷهࣄ
    هࣄ਺͕ଟ͍

    View Slide

  15. ʢʣݟग़ͦ͠ͷ̍
    ʢʣݟग़ͦ͠ͷ̎
    ʢʣݟग़ͦ͠ͷ̏
    ʢʣهࣄͷެ։೔࣌
    ʢʣهࣄͷߋ৽೔࣌
    ʢʣ༗ྉձһݶఆهࣄ͔Ͳ͏͔
    ʢʣهࣄ಺ʹಈը͕͋Δ͔Ͳ͏͔
    ʢʣهࣄΛอଘ͍͍͔ͯ͠Ͳ͏͔
    ʢʣهࣄ͕ॴଐ͢Δ࿈ࡌɾίϥϜ໊
    ʢʣهࣄຊจ
    ʢʣهࣄຊจͷεχϖοτ
    ʢʣαϜωΠϧը૾ʢαΠζʹΑͬͯछྨʣ
    ʢʣαϜωΠϧը૾ͷΫϨδοτ
    ʢʣؔ࿈هࣄ
    ɾɾɾ
    ̍هࣄ͋ͨΓͷ߲໨਺͕ଟ͍

    View Slide

  16. هࣄ಺ͷը૾΋࠷ॳʹ·ͱΊͯऔಘ͍ͯͨ͠
    ςΩετ΋ը૾΋ؚΊΔͱɺ
    ಊʑͷ
    .#ʂʂ

    View Slide

  17. ඥ෇͚͕ଟ͍
    ೔ܦిࢠ൛ΞϓϦ͕஗͔ͬͨݪҼ

    View Slide

  18. τοϓ ଎ใ Ϗδωε
    Ϧʔμʔ
    Ϛʔέοτ Ϛωʔ
    ిࢠ൛ʢ8FCץʣ
    ςΫϊϩδʔ
    τοϓ YYY YYY YYY YYY
    τοϓ YYY YYY YYY YYY
    ேץɾ༦ץ
    ֊૚ߏ଄͕ਂ͍
    ɾɾɾ
    ɾɾɾ
    ϥΠϑ εϙʔπ ө૾
    ୈ̍֊૚
    ୈ̎֊૚
    ୈ̏֊૚
    ୈ̐֊૚
    هࣄ

    View Slide

  19. هࣄ಺ը૾ ؔ࿈هࣄ
    هࣄ
    όοΫ
    φϯόʔ
    -- - . 4
    ΫϨδοτ 63- ෯ ߴ͞
    هࣄ͔Βઌ΋ͳ͔ͳ͔ͷߏ଄
    ɾɾɾ
    ༻ޠ اۀ໊
    גՁͳͲ اۀ֓ཁ ؔ࿈هࣄ YYY
    ຊจ ɾɾɾ

    View Slide

  20. ଎͘͢ΔͨΊʹ΍ͬͨ͜ͱ

    View Slide

  21. औಘ͢ΔσʔλྔΛݮΒ͢
    ଎͘͢ΔͨΊʹ΍ͬͨ͜ͱ

    View Slide

  22. ɾը૾͸[JQ͔Β͸औಘͤͣʹɺදࣔ͢Δ࣌ʹ౎౓औಘ͢Δ
    ɹˠ௨৴؀ڥ͕̑೥લΑΓେ෯ʹվળ
    ɾਂ͍֊૚͸දݱ͠ͳ͍͜ͱʹͯ͠ɺ֊૚৘ใྔΛݮΒ͢
    ɹˠͲ͏ͤεϚϗը໘Ͱ͸දݱ͖͠Εͳ͍
    ɾ࢖Θͳ͍αΠζͷը૾৘ใ΋औಘ͠ͳ͍
    औಘ͢ΔσʔλΛݮΒ͢

    View Slide

  23. औಘ͢ΔσʔλΛݮΒ͢
    .#ɹɹ,ʙ,
    ɾը૾͸[JQ͔Β͸औಘͤͣʹɺදࣔ͢Δ࣌ʹ౎౓औಘ͢Δ
    ɹˠ௨৴؀ڥ͕̑೥લΑΓେ෯ʹվળ
    ɾਂ͍֊૚͸දݱ͠ͳ͍͜ͱʹͯ͠ɺ֊૚৘ใྔΛݮΒ͢
    ɹˠͲ͏ͤεϚϗը໘Ͱ͸දݱ͖͠Εͳ͍
    ɾ࢖Θͳ͍αΠζͷը૾৘ใ΋औಘ͠ͳ͍

    View Slide

  24. KTPOϑΝΠϧΛෳ਺ʹ෼͚Δ
    ଎͘͢ΔͨΊʹ΍ͬͨ͜ͱ

    View Slide

  25. ֊૚ߏ଄σʔλ
    ֤هࣄҰཡσʔλ
    [JQ಺ͷKTPOϑΝΠϧΛෳ਺ʹ෼͚Δ
    هࣄ"ͷσʔλ
    ϚελʔKTPO
    هࣄKTPO
    ɾɾɾ
    هࣄ#ͷσʔλ
    هࣄ$ͷσʔλ
    هࣄ%ͷσʔλ
    ֊૚ߏ଄σʔλ
    ֤هࣄҰཡσʔλ
    هࣄ"ͷσʔλ
    ϚελʔʴهࣄKTPO
    ɾɾɾ
    هࣄ#ͷσʔλ
    هࣄ$ͷσʔλ
    هࣄ%ͷσʔλ

    View Slide

  26. ֊૚ߏ଄σʔλ
    ֤هࣄҰཡσʔλ
    KTPOϑΝΠϧΛෳ਺ʹ෼͚Δ
    هࣄ"ͷσʔλ
    ϚελʔKTPO
    هࣄKTPO
    ɾɾɾ
    هࣄ#ͷσʔλ
    هࣄ$ͷσʔλ
    هࣄ%ͷσʔλ
    ֊૚ߏ଄σʔλ
    ֤هࣄҰཡσʔλ
    هࣄ"ͷσʔλ
    ɾɾɾ
    هࣄ#ͷσʔλ
    هࣄ$ͷσʔλ
    هࣄ%ͷσʔλ [JQ[BQΛ࢖ͬͯɺ[JQΛղౚͤͣʹ
    ͦͷ࣌ʹඞཁͳKTPOσʔλ͚ͩऔΓग़͢
    ϚελʔʴهࣄKTPO

    View Slide

  27. σʔλ֊૚ΛͳΔ΂͘ϑϥοτʹ͢Δ
    ଎͘͢ΔͨΊʹ΍ͬͨ͜ͱ

    View Slide

  28. ேץɾ༦ץͷҰཡʹ͸࣮͸֊૚ߏ଄͕ɾɾ
    ֊૚ΛϑϥοτʹͰ͖Δͱ͜Ζ͸͢Δ
    ਌هࣄ
    ࢠهࣄ
    ࢠهࣄ
    ࢠهࣄ
    ଙهࣄ
    ਌هࣄ
    ࢠهࣄ
    ࢠهࣄ
    ࢠهࣄ
    ଙهࣄ
    ϓϩύςΟͰ਌͔ࢠ͔ଙ͔Λ࣋ͭ

    View Slide

  29. ΞϓϦͷσʔλऔಘॲཧϑϩʔ
    [JQϑΝΠϧΛऔಘ
    Ұཡ৘ใͷσʔλΛऔΓग़ͯ͠ɺ
    Ұ෦֊૚Λϑϥοτʹͯ͠ɺ3FBMNʹอଘ
    Ұཡ͔Βهࣄ΁ભҠͨ࣌͠ʹɺ
    هࣄ৘ใͷσʔλΛऔΓग़ͯ͠ɺ3FBMNʹอଘ

    View Slide

  30. $PSF%BUBˠ3FBMN
    ଎͘͢ΔͨΊʹ΍ͬͨ͜ͱ

    View Slide

  31. 3FBMNͷ͍͍ͱ͜Ζ
    σʔλଆɾ"1*ଆΛ޻෉ͯ͠΋ɺ
    $PSF%BUBͷॲཧ଎౓ʹݶք͕͋ͬͨɾɾɾ
    ɾ$PSF%BUB͸ؔ࿈Λ͚ͭͨΦϒδΣΫτΛ·ͱΊͯ݅΄Ͳอଘ͢Δͱɺ
    ɹύϑΥʔϚϯε͕ٸܹʹམͪΔɻ
    ɹˠσʔλ਺΍ඥ෇͚͕ଟ͍೔ܦిࢠ൛ΞϓϦʹ͸޲͍͍ͯͳ͍ɻ
    ɾ3FBMN͸ؔ࿈Λ͚ͭͯ΋ߴ଎Ͱಈ࡞͢Δɻ
    ɾςʔϒϧͷఆ͕ٛෆཁͰɺϞσϧͷఆ͕ٛͦͷ··൓ө͞ΕΔɻ
    શൠతʹ3FBMNʹ੾Γସ͑ͨɻ

    View Slide

  32. 3FBMNͷͪΐͬͱ໘౗ͳͱ͜Ζ
    ɾOJM͕ೖΕΒΕͳ͍
    ɹˠσϑΥϧτ஋Λઃఆͯ͠ɺۭจࣈͳͲΛೖΕͨ
    ɹˠೖΕΒΕΔΑ͏ʹͳͬͨʂ
    ɾεϨουΛ·͍ͨͰͷΦϒδΣΫτͷࢀর͕Ͱ͖ͳ͍
    ɹˠࣄલʹϓϥΠϚϦʔΩʔΛϩʔΧϧͰอ࣋ͯ͠ɺ
    ɹɹͦΕΛ࢖༻ͯ͠ҧ͏εϨουͰऔಘͨ͠
    ɾΧεέʔυ࡟আ͕Ͱ͖ͳ͍
    ɹˠ࡟আ͢ΔϓϩύςΟ໊Λฦ͢ϝιουͱɺ
    ɹɹର৅ͱͳΔϓϩύςΟΛ࡟আ͢ΔϝιουΛࣗ࡞ͨ͠

    View Slide

  33. #FGPSF
    $PSF%BUBˠ3FBMNͰ୹ॖͰ͖ͨ࣌ؒ
    J1IPOFʗJ04Ͱɺ͋Δ೔ͷேץΛऔಘ

    View Slide

  34. #FGPSF "GUFS
    $PSF%BUBˠ3FBMNͰ୹ॖͰ͖ͨ࣌ؒ
    J1IPOFʗJ04Ͱɺ͋Δ೔ͷேץΛऔಘ

    View Slide

  35. #FGPSF "GUFS
    $PSF%BUBˠ3FBMNͰ୹ॖͰ͖ͨ࣌ؒ
    J1IPOFʗJ04Ͱɺ͋Δ೔ͷேץΛऔಘ
    ༧૝Ҏ্ͷߴ଎Խʹɺ
    ࣾ಺Ͱ΋͓͡͞·ͨͪΛத৺ʹڻ͖ͷ੠ʂ

    View Slide

  36. ·ͱΊ

    View Slide

  37. ·ͱΊ
    ɾσʔλߏ଄΍"1*ɾΞϓϦͷ྆໘͔Βߴ଎Խ
    ɾ࣌ʹ͸αʔϏεͷཁ݅Λม͑Δ͜ͱ΋ඞཁ
    ɾͦͯ͠3FBMN͸଎͔ͬͨ
    ೔ܦిࢠ൛ΞϓϦ͸ɺ
    ·ͩ·ͩΞοϓσʔτ͍͖ͯ͠·͢ɻ
    ࢴ໘ϏϡʔΞΞϓϦͰ΋3FBMNΛɻ

    View Slide

  38. ೔ܦిࢠ൛Ͱ͸ɺΤϯδχΞΛืू͍ͯ͠·͢ɻ
    ɾϑϩϯτΤϯυͰ΋όοΫΤϯυͰ΋0,
    ɾͱΓ͋͑ͣ৬৔ͷ͍ͧͯΈ͍ͨɺͰ΋0,
    Լه·Ͱؾܰʹ࿈བྷ͍ͩ͘͞ɻ
    [email protected]!OFYOJLLFJDPKQ

    View Slide

  39. ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ

    View Slide