AbemaTV Developer Conference 2016 http://developer.abema.io/
AbemaTVͷ։ൃελΠϧϑϩϯτΤϯυΤϯδχΞ େ㟒 ߒਸ
View Slide
ࣗݾհ2015.4 - 2016.7େ㟒 ߒਸ (id: taizo)FRESH! by AbemaTVαʔόʔαΠυΤϯδχΞ ݉ εΫϥϜϚελʔAbemaTV εΫϥϜϚελʔิࠤ (݉)2016.5 - 2016.7AbemaTV ϑϩϯτΤϯυΤϯδχΞ2016.8 -
Podcast ͬͯ·͢• engineer meeting podcast ( twitter: @engineermeeting )• https://soundcloud.com/engineer-meeting• 2લ͔ΒࣾͰ׆༂͍ͯ͠ΔํʑΛήετʹݺΜͩΓɺ ແବΛ͢ΔΤϯδχΞܥPodcast• ਂϥδΦܥ IT Podcast Λࢦͯ͠·͢
ΞδΣϯμ• AbemaTV,FRESHͷ։ൃελΠϧͷϕʔε• FRESH, AbemaTVͷదԠʹ͍ͭͯ
લఏ• ࠓճɺ͕ࣗॴଐ͍ͯͨ࣌͠ظ͕த৺ ʮFRESH ͷ৽ن্ཱͪ͛ظʯ ʮAbemaTV ͷϦϦʔεޙͷӡ༻ʯ
جຊతͳ։ൃελΠϧ
ϕʔεεΫϥϜ४උ εϓϦϯτ εϓϦϯτ εϓϦϯτ
εϓϦϯτΛ͡ΊΔલͷ४උ• ΞδϟΠϧαϜϥΠ ʹ͋ΔΠϯηϓγϣϯσοΩ͕ݩ• ϝϯόʔશମʹͲ͏͍͏αʔϏεΛ࡞Δ͔ͷೝࣝ߹Θͤ
FRESHͷ߹2015-04-02, 03 ʹ࣮ࢪΞδϟΠϧαϜϥΠʹ͋Δ ΠϯηϓγϣϯσοΩΛ Ұ௨Γ ͠߹͍ίϯηϓτΠϝʔδͷ࡞ →ͬ͘͟Γ12݄಄ϦϦʔε ݟੵΓ→ ݁Ռ ํస͋Γ 2016-01-21 ϦϦʔε
εϓϦϯτ• λΠϜϘοΫε(εϓϦϯτ)2िؒΛ۠Δ• εϓϦϯτܭըϛʔςΟϯάΛ࣮ࢪ͠ɺλεΫͷ༏ઌॱҐΛܾΊɺݟੵΓΛߦ͍ɺ͔ͦ͜ΒεϓϦϯτͰΔ͖λεΫΛܭը͢Δ• ຖ15͘Β͍ͷσΠϦʔεΫϥϜΛߦ͍ɺνʔϜͷঢ়گΛ֬ೝ͢Δ• εϓϦϯτϨϏϡʔͰɺՌͷ֬ೝΛߦ͏• ͦͷεϓϦϯτͰͷվળͷͨΊʹɺ νʔϜͰ;Γ͔͑ΓΛߦ͏
Α͍ͬͯ͘Δπʔϧ• 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 ࢀߟ
ϕʔεΛϓϩδΣΫτʹదԠ͢Δͦͷ··֤ϓϩδΣΫτʹదԠ͢Δͷ͍͠• ߟྀ͠ͳ͚Ε͍͚ͳ͍ཁૉ• ৫• νʔϜ• ਓ• ঢ়گ ͳͲͳͲ• ͢Ͱʹ͋ΔϧʔϧจԽɺνʔϜϝϯόʔΛݟͯ దͳϓϥΫςΟεͷऔࣺબΛ͍ͯ͘͜͠ͱʹͳΔ
νʔϜਓʹదԠ͢ΔFRESH AbemaTV։ൃ: 20ਓલޙ։ൃҎ֎: 10ਓલޙ։ൃ: 30ਓʙ։ൃҎ֎: 100ਓʙ?εΫϥϜνʔϜଟͯ͘10ʙ15ਓ͕ݶք• ղ͕ඞཁʹͳΔ
νʔϜΛղ͢Δ• 10ਓޙ͔ΒͻͱͭͷεΫϥϜνʔϜͰ Γ͘Γ͢Δͷ͘͠ͳΔ• FRESHׂͰׂɻ ֤ϦʔμʔͱDir, ऀͷ·ͱΊΛboardͱͯ͠ ঢ়گΛѲ͢ΔΑ͏ʹͨ͠ΓϙʔτϑΥϦΦόοΫϩάΛ ཧͨ͠Γͨ͠boardserver front design iOS Android
νʔϜΛղ͢Δ• AbemaTVجຊׂͰׂ• ن͕େ͖͘ͳΔͱԣͷ࿈ܞ͕ऑ͘ͳΔ• ػೳ͝ͱʹϓϩδΣΫτΛ࡞ΓਓΛΞαΠϯ͢Δ͜ͱͰ ԣͷ࿈ܞΛڧΊΔΑ͏ʹͨ͠boardserver front design iOS AndroidProject AProject B Project C
ঢ়گʹదԠ͢ΔϕʔεεΫϥϜ։ൃͱ͍ͬͯɺ ΨϯτνϟʔτΛͻ͍ͨΓɺ ΓํΛม͑ͨΓ͢Δ߹͋Δྫ) FRESH 201511݄த०ϦϦʔε༧ఆ͕12݄લͩͬͨ࣌ʹɺ ΞϓϦ͕ॎσβΠϯ͔ΒԣσβΠϯʹ͢ΔΑ͏ʹͱ͍͏͕͕͋ͬͨ
FRESH ॎ͔Βԣ ࣄ݅• ܾ·ͬͨ࣌ͰϦϦʔε༧ఆ·ͰΓ2εϓϦϯτ(4ि)ͩͬͨɻ• ༧ఆ͍ͯͨ͠ػೳΛϦϦʔεείʔϓ͔Β֎ͯ͠ ԣରԠʹྗ(είʔϓͷมߋ)ɻظͷมߋͳ͠• ࠷ॳʹσβΠϯεϓϦϯτΛߦͬͯΰʔϧͷೝࣝ౷Ұ• ͋ͱϝϯόʔʹͤΔ• → ݁Ռɺ։ൃྃʹɻ։ൃͷ֎ؚΊͨ߹ͰϦϦʔε1݄
νʔϜͷߟ͑ํʹదԠ͢ΔνʔϜ࣌ͱ߹ʹΑͬͯࢥߟ͕มΘΔ• ՝͔Β։ൃऀͨͪͰ༷Λམͱ͠ࠐΈ͍ͨ• → FRESH• σΟϨΫλʔɾϓϥϯφʔ͕མͱ͠ࠐΜͰ͔Β ։ൃணख͍ͨ͠• → AbemaTV
νʔϜͷߟ͑ํʹదԠ͢Δ• FRESH Ͱղੳ(Ϛʔέ)୲͔Β ܭଌ݁ՌΛݟͯɺͲ͜ͷࣈΛ͋͛Δ͖͔Λ νʔϜϝϯόʔͰߟ͑ͯࢪࡦΛग़͢ձΛઃ͚ͨGAͷඪୡϓϩηεϨϙʔτΛϝϯόʔʹڞ༗ ͦΕͧΕͷվળҊΛߟ͑Δ→ ͨͩ͠ࣈΛ্͛Δͷ։ൃऀઢ͚ͩͩͱ ͍͘͢͝͠ (MAU Λ 5% ্͛Δ ͳͲ)
ਓʹదԠ͢Δ• ։ൃऀݸਓͰԿ͕࠷ॏཁ՝͔༷ʑαʔϏεͷࣈ৳͍ͨ͠!ΧϦΧϦʹνϡʔχϯά͍ͨ͠ʂૣ͘ग़ͯ͠ࣈݟͯվળ͍ͨ͠ʂਓͷʹ๙ΊΒΕ͍ͨʂԺ͔ʹΒ͍ͨ͠࠷ઌΛಥ͖ਐΈ͍ͨʂ͔͍͍ͬ͜αʔϏε࡞Γ͍ͨʂύϑΥʔϚϯεΛ͞Βʹ্͍͛ͨʂUX! UX!ϢʔβʔςετΛ͖ͪΜͱߦ͍͍ͨʂΈΜͳʹΘΕΔαʔϏεΛ࡞Γ͍ͨʂᘳͳͷΛ࡞Γ͍ͨʂ͜͏͢Εͬͱྑ͘ͳΔʂ
ධՁ੍• AbemaTVͷάϨʔυ੍ͷҙຯ͚ͮAbemaTVͰͷҙຯ͚ͮS6 S5+࣮+α࣮ʹՃ͑ͯɺϩʔϧϞσϧʹͳΓ͑Δ͔(पΓ͔Βଚܟ͞ΕΔਓ֨ɺٕज़ऀͱͯ͠ͷ࢟ɺߩݙҙཉ)S5 ϦʔυΤϯδχΞ + αಛఆͷͰलͰٕͨज़ྗ+૯߹తͳٕज़ྗ ࠶ݱੑͷ͋ΔύϑΥʔϚϯεS4 ϦʔυΤϯδχΞٕज़ʹΑͬͯݸཱ͕͓ͬͯΓɺٕज़ͰνʔϜΛϦʔυͰ͖Δݸͱͯ͠ɺٕज़қͷߴ͍Ҋ݅ͰՌΛग़ͤΔS3.5 Ұਓલ + α࣮ݱ͍ͨ͜͠ͱ(ᐆດͳҊ݅Ͱ)ʹରͯ͠ࣄ٧ΊεέδϡʔϧௐؚΊͯҰਓশͰऔΓΊແࣄʹϦϦʔε·Ͱ͍͚࣋ͬͯΔS3 Ұਓલ༩͑ΒΕͨҊ݅ʹ͍ͨͯ͠ɺجຊઃܭɾৄࡉઃܭɾ࣮ɾςετɾϦϦʔεɾӡ༻·ͰܾΊΒΕͨεέδϡʔϧʹैͬͯࣗͰ͖Δ͜ͱS2 ਓલS1
ࣗͰ͖ΔΤϯδχΞ• اۀจԽͱͯ͠ɺ·ͣࣗͰ͖ΔΤϯδχΞʹͳΔ͜ͱ͕ඪ• ࣗͷϥΠϯͱͯ͠ɺ·ͣ S3.5࣮ݱ͍ͨ͜͠ͱ(ᐆດͳҊ݅Ͱ)ʹରͯ͠ࣄ٧ΊεέδϡʔϧௐؚΊͯҰਓশͰऔΓΊແࣄʹϦϦʔε·Ͱ͍͚࣋ͬͯΔ
ࣗͰ͖ΔͳΒݖݶΛ࣋ͯΔ• ࣗͰ͖Δਓʹରͯ͠ ݖݶΛݶΓͳ͘༩͑Δͱ͍͏จԽ• ࣗͰ͖Δਓಛʹཧ͠ͳͯ͘ ϓϩδΣΫτΛճ͢͜ͱ͕Ͱ͖Δ
ཧతͳཱͪৼΔ͍※ ͪΖΜେ͖͍λεΫʹ͍ͭͯ ͜ΕͰແ͘ɺ͖ͪΜͱͨ͠ϑϩʔͰܭը͢Δ͠ ͕͔͔࣌ؒΔ༰ͷ߹ɺͦΕΛઆ໌Ͱ͖Δɻ͜ΕϢʔβʔͷརศੑߟ͑Δͱݫ͍͔͠ΒૣΊʹͯ͠ཉ͍͠Ͱ͋͢ɺ͡Ό͋࣍ͷϦϦʔε·Ͱʹؒʹ߹͍ͦ͏ͳͷͰೖΕ͓͖ͯ·͢ʔΑΖ͓͘͠ئ͍͠·͢ʂ
উखʹ՝Λݟ͚ͭͯରԠ͢Δ• ࣗͰ͖Δਓউखʹ ՝Λݟ͚ͭͯରԠͰ͖Δ• ܭը͢Δલʹख͕ಈ͍ͯऴΘΒ͍ͤͯΔ߹͋Δ• ཧ͗͢͠Δͱ ݸਓͷύϑΥʔϚϯεΛग़͠Εͳ͍ Մೳੑ͕͋Δ͕࣌͋Δ
AbemaTVͷจԽ• ࣗΛͰ͖ΔਓͨͪΛूΊ͍ͯΔ• ϝϯόʔࡋྔݖΛ༩͑ɺݸਓ͕࠷େݶೳྗΛൃشͰ͖ΔڥΛ༻ҙ͍ͯ͠Δ• ཧ࠷ݶ• ͳͷͰϦϞʔτ։ൃʹ༰
Ϛωδϝϯτίετߴ ݸਓεΩϧߴ1. νʔϜ։ൃͷೝࣝڞ༗։ൃޮఈ্͛ͷϓϥΫςΟεΛར༻2. ֤ݸਓΛ࠷େԽͱ ϚωδϝϯτίετͷݮΛ ηοτͰਐΊ͍ͯ͘
AbemaTVͷεϓϦϯτ• λΠϜϘοΫε(εϓϦϯτ)2िؒΛ۠Δ• εϓϦϯτܭըϛʔςΟϯάΛ࣮ࢪ͠ɺλεΫͷ༏ઌॱҐΛܾΊɺݟੵΓΛߦ͍ɺ͔ͦ͜ΒεϓϦϯτͰΔ͖λεΫΛܭը͢Δ• ຖ15͘Β͍ͷσΠϦʔεΫϥϜΛߦ͍ɺνʔϜͷঢ়گΛ֬ೝ͢Δ• εϓϦϯτϨϏϡʔͰɺՌͷ֬ೝΛߦ͏ ใڞ༗ձΛ࣮ࢪ• ͦͷεϓϦϯτͰͷվળͷͨΊʹɺ νʔϜͰ;Γ͔͑ΓΛߦ͏
σϝϦοτʁ• ݸਓʹґଘ͢ΔͷͰଐਓԽ͢Δ• ͨͩɺAbemaTVFRESHɺ։ൃεϐʔυΛམͱ͢ΑΓଐਓԽͰͬͯޙ͔ΒνʔϜʹڞ༗͢Δମ੍• νʔϜͷษڧձͳͲͰ νʔϜશମͷఈ্͛Λੵۃతʹߦ͏
·ͱΊ• AbemaTV, FRESHͷ։ൃελΠϧͷϕʔε εΫϥϜ։ൃ• ਓνʔϜͷੑ࣭ɺঢ়گʹΑͬͯ͋·Γ ݻࣥͤͣʹΓํΛม͍͑ͯΔ• اۀจԽʹΑΓɺ·ཱͣࣗͰग़དྷ͍ͯΔਓ͕ େ͖͘׆༂Ͱ͖Δମ੍ʹͳ͍ͬͯΔ• ͦΕΛޙ͔ΒΧόʔͰ͖Δ ମ੍ͱηοτͰߟ͍͑ͯΔ
උߟ: ࠷ۙνʔϜϏϧσΟϯάͰࢀߟʹͨ͠ࢿྉεϥΠυ• ͋ͳͨͷνʔϜͷʮ͍͍ਓʯػೳ͍ͯ͠·͔͢ʁ http://www.slideshare.net/MinoruYokomichi/ss-57211075• ։ൃ৫Ϛωδϝϯτͷίπ https://speakerdeck.com/naoya/kai-fa-zu-zhi-manezimentofalsekotu• Netflix Culture http://www.slideshare.net/reed2001/culture-1798664Web• σβΠφʔԣஅ৫ͷมભ http://techlife.cookpad.com/entry/2016/07/15/092518
උߟ: ࠷ۙνʔϜϏϧσΟϯάͰࢀߟʹͨ͠ࢿྉຊ• ΞδϟΠϧαϜϥΠ 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
Thanks !