Save 37% off PRO during our Black Friday Sale! »

AbemaTVの開発スタイル

 AbemaTVの開発スタイル

AbemaTV Developer Conference 2016 http://developer.abema.io/

140ca523543d6d9dc03d5142c18dce57?s=128

Hirotaka Osaki

October 15, 2016
Tweet

Transcript

  1. AbemaTVͷ։ൃελΠϧ ϑϩϯτΤϯυΤϯδχΞ େ㟒 ߒਸ

  2. ࣗݾ঺հ 2015.4 - 2016.7 େ㟒 ߒਸ (id: taizo) FRESH! by

    AbemaTV αʔόʔαΠυΤϯδχΞ ݉ εΫϥϜϚελʔ AbemaTV εΫϥϜϚελʔิࠤ (݉೚) 2016.5 - 2016.7 AbemaTV ϑϩϯτΤϯυΤϯδχΞ 2016.8 -
  3. Podcast ΍ͬͯ·͢ • engineer meeting podcast ( twitter: @engineermeeting )

    • https://soundcloud.com/engineer-meeting • 2೥લ͔Βࣾ಺Ͱ׆༂͍ͯ͠ΔํʑΛήετʹݺΜͩΓɺ
 ແବ࿩Λ͢ΔΤϯδχΞܥPodcast • ਂ໷ϥδΦܥ IT Podcast Λ໨ࢦͯ͠·͢
  4. ΞδΣϯμ • AbemaTV,FRESHͷ։ൃελΠϧͷϕʔε • FRESH, AbemaTV΁ͷదԠʹ͍ͭͯ

  5. લఏ • ࠓճ͸ɺࣗ෼͕ॴଐ͍ͯͨ࣌͠ظ͕த৺
 ʮFRESH ͷ৽ن্ཱͪ͛ظʯ
 ʮAbemaTV ͷϦϦʔεޙͷӡ༻ʯ

  6. جຊతͳ։ൃελΠϧ

  7. ϕʔε͸εΫϥϜ ४උ εϓϦϯτ εϓϦϯτ εϓϦϯτ

  8. εϓϦϯτΛ͸͡ΊΔલͷ४උ • ΞδϟΠϧαϜϥΠ ʹ͋ΔΠϯηϓγϣϯσο Ω͕ݩ • ϝϯόʔશମʹͲ͏͍͏αʔϏεΛ࡞Δ͔ͷೝࣝ ߹Θͤ

  9. FRESHͷ৔߹ 2015-04-02, 03 ʹ࣮ࢪ ΞδϟΠϧαϜϥΠʹ͋Δ
 ΠϯηϓγϣϯσοΩΛ
 Ұ௨Γ ࿩͠߹͍ ίϯηϓτΠϝʔδͷ࡞੒ →

    ͬ͘͟Γ12݄಄ϦϦʔε
 ݟੵ΋Γ→ ݁Ռ ํ޲స׵΋͋Γ
 2016-01-21 ϦϦʔε
  10. εϓϦϯτ • λΠϜϘοΫε(εϓϦϯτ)2िؒΛ۠੾Δ • εϓϦϯτܭըϛʔςΟϯάΛ࣮ࢪ͠ɺλεΫͷ༏ઌॱҐΛܾ Ίɺݟੵ΋ΓΛߦ͍ɺ͔ͦ͜ΒεϓϦϯτͰ΍Δ΂͖λεΫΛ ܭը͢Δ • ຖ೔15෼͘Β͍ͷσΠϦʔεΫϥϜΛߦ͍ɺνʔϜͷঢ়گΛ֬ ೝ͢Δ

    • εϓϦϯτϨϏϡʔͰɺ੒Ռͷ֬ೝΛߦ͏ • ͦͷεϓϦϯτͰͷ໰୊఺΍վળͷͨΊʹɺ
 νʔϜͰ;Γ͔͑ΓΛߦ͏
  11. Α͘࢖͍ͬͯΔπʔϧ • Slack (chat) • JIRA (νέοτ؅ཧ) • Confluence (Wiki)

    • esa (Wiki) • GitHub (ιʔείʔυ؅ཧ) • CircleCI (CI) • Jenkins (CI) ΞϓϦͷϏϧυͰར༻ • Codecov (ϓϧϦΫͷΧόϨοδࣗಈԽ) • asana (Ψϯτνϟʔτ) ࠓճ͸ ࣌ؒͷ౎߹Ͱৄࡉ͸লུɻ http://www.atmarkit.co.jp/ait/articles/1609/01/ news032.html ࢀߟ
  12. ϕʔεΛϓϩδΣΫτʹదԠ͢Δ ͦͷ··֤ϓϩδΣΫτʹ͸దԠ͢Δͷ͸೉͍͠ • ߟྀ͠ͳ͚Ε͹͍͚ͳ͍ཁૉ • ૊৫ • νʔϜ • ਓ

    • ঢ়گ ͳͲͳͲ • ͢Ͱʹ͋Δϧʔϧ΍จԽɺνʔϜϝϯόʔΛݟͯ
 ద੾ͳϓϥΫςΟεͷऔࣺબ୒Λ͍ͯ͘͜͠ͱʹͳΔ
  13. νʔϜਓ਺ʹదԠ͢Δ FRESH AbemaTV ։ൃ: 20ਓલޙ ։ൃҎ֎: 10ਓલޙ ։ൃ: 30ਓʙ ։ൃҎ֎:

    100ਓʙ? εΫϥϜνʔϜ͸ଟͯ͘΋10ʙ15ਓ͕ݶք • ෼ղ͕ඞཁʹͳΔ
  14. νʔϜΛ෼ղ͢Δ • 10ਓޙ൒͔ΒͻͱͭͷεΫϥϜνʔϜͰ
 ΍Γ͘Γ͢Δͷ͸೉͘͠ͳΔ • FRESH͸໾ׂͰ෼ׂɻ
 ֤ϦʔμʔͱDir, ੹೚ऀͷ·ͱΊΛboardͱͯ͠
 ঢ়گΛ೺Ѳ͢ΔΑ͏ʹͨ͠ΓϙʔτϑΥϦΦόοΫϩάΛ
 ؅ཧͨ͠Γͨ͠

    board server front design iOS Android
  15. νʔϜΛ෼ղ͢Δ • AbemaTV΋جຊ͸໾ׂͰ෼ׂ • ن໛͕େ͖͘ͳΔͱԣͷ࿈ܞ͕ऑ͘ͳΔ • ػೳ͝ͱʹϓϩδΣΫτΛ࡞ΓਓΛΞαΠϯ͢Δ͜ͱͰ
 ԣͷ࿈ܞΛڧΊΔΑ͏ʹͨ͠ board server

    front design iOS Android Project A Project B Project C
  16. ঢ়گʹదԠ͢Δ ϕʔε͸εΫϥϜ։ൃͱ͍ͬͯ΋ɺ
 ΨϯτνϟʔτΛͻ͍ͨΓɺ
 ΍ΓํΛม͑ͨΓ͢Δ৔߹΋͋Δ ྫ) FRESH 2015೥11݄த० ϦϦʔε༧ఆ೔͕12݄લ൒ͩͬͨ࣌ʹɺ
 ΞϓϦ͕ॎσβΠϯ͔ΒԣσβΠϯʹ͢ΔΑ͏ʹ ͱ͍͏࿩͕͕͋ͬͨ

  17. FRESH ॎ͔Βԣ ࣄ݅ • ܾ·ͬͨ࣌఺ͰϦϦʔε༧ఆ·Ͱ࢒Γ2εϓϦϯτ(4ि) ͩͬͨɻ • ༧ఆ͍ͯͨ͠ػೳΛϦϦʔεείʔϓ͔Β֎ͯ͠
 ԣରԠʹ஫ྗ(είʔϓͷมߋ)ɻظ೔ͷมߋͳ͠ •

    ࠷ॳʹσβΠϯεϓϦϯτΛߦͬͯΰʔϧͷೝࣝ౷Ұ • ͋ͱ͸ϝϯόʔʹ೚ͤΔ • → ݁Ռɺ։ൃ׬ྃ͸೥಺ʹɻ։ൃͷ಺֎ؚΊͨ౎߹Ͱ ϦϦʔε͸1݄
  18. νʔϜͷߟ͑ํʹదԠ͢Δ νʔϜ΋࣌ͱ৔߹ʹΑͬͯࢥߟ͕มΘΔ • ՝୊͔Β։ൃऀͨͪͰ࢓༷Λམͱ͠ࠐΈ͍ͨ • → FRESH • σΟϨΫλʔɾϓϥϯφʔ͕མͱ͠ࠐΜͰ͔Β
 ։ൃணख͍ͨ͠

    • → AbemaTV
  19. νʔϜͷߟ͑ํʹదԠ͢Δ • FRESH Ͱ͸ղੳ(Ϛʔέ)୲౰͔Β
 ܭଌ݁ՌΛݟͯɺͲ͜ͷ਺ࣈΛ͋͛Δ΂͖͔Λ
 νʔϜϝϯόʔͰߟ͑ͯࢪࡦΛग़͢ձΛઃ͚ͨ GAͷ໨ඪୡ੒ϓϩηεϨϙʔτΛϝϯόʔʹڞ༗
 ͦΕͧΕͷվળҊΛߟ͑Δ → ͨͩ͠਺ࣈΛ্͛Δͷ͸։ൃऀ໨ઢ͚ͩͩͱ


    ͘͢͝೉͍͠ (MAU Λ 5% ্͛Δ ͳͲ)
  20. ਓʹదԠ͢Δ • ։ൃऀݸਓͰ΋Կ͕࠷ॏཁ՝୊͔͸༷ʑ αʔϏεͷ ਺ࣈ৳͹͍ͨ͠! ΧϦΧϦʹ νϡʔχϯά ͍ͨ͠ʂ ૣ͘ग़ͯ͠ ਺ࣈݟͯվળ͍ͨ͠ʂ

    ਓͷ໾ʹ ๙ΊΒΕ͍ͨʂ Ժ΍͔ʹ ฻Β͍ͨ͠ ࠷ઌ୺Λ ಥ͖ਐΈ͍ͨʂ ͔͍͍ͬ͜ αʔϏε࡞Γ͍ͨʂ ύϑΥʔϚϯεΛ ͞Βʹ্͍͛ͨʂ UX! UX! ϢʔβʔςετΛ ͖ͪΜͱߦ͍͍ͨʂ ΈΜͳʹ࢖ΘΕΔ αʔϏεΛ࡞Γ͍ͨʂ ׬ᘳͳ΋ͷΛ ࡞Γ͍ͨʂ ͜͏͢Ε͹ ΋ͬͱྑ͘ͳΔʂ
  21. ධՁ੍౓ • AbemaTVͷάϨʔυ੍౓ͷҙຯ͚ͮ AbemaTVͰͷҙຯ͚ͮ S6 S5+࣮੷+α ࣮੷ʹՃ͑ͯɺϩʔϧϞσϧʹͳΓ͑Δ͔(पΓ͔Βଚܟ͞ΕΔ ਓ֨ɺٕज़ऀͱͯ͠ͷ࢟੎ɺߩݙҙཉ) S5 ϦʔυΤϯδχΞ

    + α ಛఆͷ෼໺ͰलͰٕͨज़ྗ+૯߹తͳٕज़ྗ ࠶ݱੑͷ͋Δύ ϑΥʔϚϯε S4 ϦʔυΤϯδχΞ ٕज़ʹΑͬͯݸཱ͕͓ͬͯΓɺٕज़ͰνʔϜΛϦʔυͰ͖Δ ݸͱͯ͠ɺٕज़೉қ౓ͷߴ͍Ҋ݅Ͱ΋੒ՌΛग़ͤΔ S3.5 Ұਓલ + α ࣮ݱ͍ͨ͜͠ͱ(ᐆດͳҊ݅Ͱ΋)ʹରͯ͠ ࢓ࣄ٧Ί΍εέδϡʔϧௐ੔΋ؚΊͯҰਓশͰऔΓ૊Ί ແࣄʹϦϦʔε·Ͱ͍͚࣋ͬͯΔ S3 Ұਓલ ༩͑ΒΕͨҊ݅ʹ͍ͨͯ͠ɺجຊઃܭɾৄࡉઃܭɾ࣮૷ɾςε τɾϦϦʔεɾӡ༻·ͰܾΊΒΕͨεέδϡʔϧʹैͬͯࣗ૸ Ͱ͖Δ͜ͱ S2 ൒ਓલ S1
  22. ࣗ૸Ͱ͖ΔΤϯδχΞ • اۀจԽͱͯ͠ɺ·ͣࣗ૸Ͱ͖ΔΤϯδχΞʹͳ Δ͜ͱ͕໨ඪ • ࣗ૸ͷϥΠϯͱͯ͠ɺ·ͣ S3.5 ࣮ݱ͍ͨ͜͠ͱ(ᐆດͳҊ݅Ͱ΋)ʹରͯ͠ ࢓ࣄ٧Ί΍εέδϡʔϧௐ੔΋ؚΊͯҰਓশͰऔΓ૊Ί ແࣄʹϦϦʔε·Ͱ͍͚࣋ͬͯΔ

  23. ࣗ૸Ͱ͖ΔͳΒ͹ݖݶΛ࣋ͯΔ • ࣗ૸Ͱ͖Δਓʹରͯ͠͸
 ݖݶΛݶΓͳ͘༩͑Δͱ͍͏จԽ • ࣗ૸Ͱ͖Δਓ͸ಛʹ؅ཧ͠ͳͯ͘΋
 ϓϩδΣΫτΛճ͢͜ͱ͕Ͱ͖Δ

  24. ཧ૝తͳཱͪৼΔ෣͍ ※ ΋ͪΖΜେ͖͍λεΫʹ͍ͭͯ͸
 ͜ΕͰ͸ແ͘ɺ͖ͪΜͱͨ͠ϑϩʔͰܭը͢Δ͠
 ͕͔͔࣌ؒΔ಺༰ͷ৔߹͸ɺͦΕΛઆ໌Ͱ͖Δɻ ͜ΕϢʔβʔͷརศੑߟ͑Δͱݫ͍͔͠Β ૣΊʹ௚ͯ͠ཉ͍͠Ͱ͢ ͋ɺ͡Ό͋࣍ͷϦϦʔε·Ͱʹؒʹ߹͍ͦ ͏ͳͷͰೖΕ͓͖ͯ·͢ʔ ΑΖ͓͘͠ئ͍͠·͢ʂ

  25. উखʹ՝୊Λݟ͚ͭͯରԠ͢Δ • ࣗ૸Ͱ͖Δਓ͸উखʹ
 ՝୊Λݟ͚ͭͯରԠͰ͖Δ • ܭը͢Δલʹख͕ಈ͍ͯऴΘΒ͍ͤͯΔ৔߹΋ ͋Δ • ؅ཧ͗͢͠Δͱ
 ݸਓͷύϑΥʔϚϯεΛग़͠੾Εͳ͍


    Մೳੑ͕͋Δ͕࣌͋Δ
  26. AbemaTVͷจԽ • ࣗ૸ΛͰ͖ΔਓͨͪΛूΊ͍ͯΔ • ϝϯόʔ͸ࡋྔݖΛ༩͑ɺݸਓ͕࠷େݶೳྗΛൃ شͰ͖Δ؀ڥΛ༻ҙ͍ͯ͠Δ • ؅ཧ͸࠷௿ݶ • ͳͷͰϦϞʔτ։ൃʹ׮༰

  27. Ϛωδϝϯτίετ ߴ ௿ ݸਓεΩϧ ߴ ௿ 1. νʔϜ։ൃͷೝࣝڞ༗΍ ։ൃޮ཰ఈ্͛ͷ ϓϥΫςΟεΛར༻

    2. ֤ݸਓΛ࠷େԽͱ
 Ϛωδϝϯτίετͷ࡟ݮΛ
 ηοτͰਐΊ͍ͯ͘
  28. AbemaTVͷεϓϦϯτ • λΠϜϘοΫε(εϓϦϯτ)2िؒΛ۠੾Δ • εϓϦϯτܭըϛʔςΟϯάΛ࣮ࢪ͠ɺλεΫͷ༏ઌॱҐΛܾΊɺ ݟੵ΋ΓΛߦ͍ɺ͔ͦ͜ΒεϓϦϯτͰ΍Δ΂͖λεΫΛܭը͢ Δ • ຖ೔15෼͘Β͍ͷσΠϦʔεΫϥϜΛߦ͍ɺνʔϜͷঢ়گΛ֬ೝ ͢Δ

    • εϓϦϯτϨϏϡʔͰɺ੒Ռͷ֬ೝΛߦ͏ ৘ใڞ༗ձΛ࣮ࢪ • ͦͷεϓϦϯτͰͷ໰୊఺΍վળͷͨΊʹɺ
 νʔϜͰ;Γ͔͑ΓΛߦ͏
  29. σϝϦοτ͸ʁ • ݸਓʹґଘ͢ΔͷͰଐਓԽ͢Δ • ͨͩɺAbemaTV΋FRESH΋ɺ։ൃεϐʔυΛམ ͱ͢ΑΓ΋ଐਓԽͰ૸ͬͯޙ͔ΒνʔϜʹڞ༗͢ Δମ੍ • νʔϜ಺ͷษڧձͳͲͰ
 νʔϜશମͷఈ্͛Λੵۃతʹߦ͏

  30. ·ͱΊ • AbemaTV, FRESHͷ։ൃελΠϧͷϕʔε͸
 εΫϥϜ։ൃ • ਓ਺΍νʔϜͷੑ࣭ɺঢ়گʹΑͬͯ͋·Γ
 ݻࣥͤͣʹ΍ΓํΛม͍͑ͯΔ • اۀจԽʹΑΓɺ·ཱͣࣗͰग़དྷ͍ͯΔਓ͕


    େ͖͘׆༂Ͱ͖Δମ੍ʹͳ͍ͬͯΔ • ͦΕΛޙ͔ΒΧόʔͰ͖Δ
 ମ੍ͱηοτͰߟ͍͑ͯΔ
  31. උߟ: ࠷ۙνʔϜϏϧσΟϯάͰࢀߟʹͨ͠ࢿྉ εϥΠυ • ͋ͳͨͷνʔϜͷʮ͍͍ਓʯ͸ػೳ͍ͯ͠·͔͢ʁ
 http://www.slideshare.net/MinoruYokomichi/ss-57211075 • ։ൃ૊৫Ϛωδϝϯτͷίπ
 https://speakerdeck.com/naoya/kai-fa-zu-zhi-manezimentofalsekotu •

    Netflix Culture
 http://www.slideshare.net/reed2001/culture-1798664 Web • σβΠφʔԣஅ૊৫ͷมભ
 http://techlife.cookpad.com/entry/2016/07/15/092518
  32. උߟ: ࠷ۙνʔϜϏϧσΟϯάͰࢀߟʹͨ͠ࢿྉ ຊ • ΞδϟΠϧαϜϥΠ
 http://amzn.to/2dZMY0Q
 • νʔϜ͕ػೳ͢Δͱ͸Ͳ͏͍͏͜ͱ͔
 http://amzn.to/2dZPST8 •

    ૊৫ύλʔϯ
 http://amzn.to/2ejeJG3 • σΟγϓϦϯυɾΞδϟΠϧɾσϦόϦʔ
 http://amzn.to/2ejej27 • ΤΫετϦʔϜϓϩάϥϛϯά
 http://amzn.to/2ejeyul • Team Geek
 http://amzn.to/2dZJFGP • ೔ຊاۀͷࣾһ͸ɺ
 ͳͥ͜Μͳʹ΋Ϟνϕʔγϣϯ͕
 ௿͍ͷ͔ʁ
 http://amzn.to/2dZNITT
  33. Thanks !