×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ϞόΠϧ։ൃͷͨΊͷ ΞʔΩςΫνϟೖ @AbemaTV Hack
Slide 2
Slide 2 text
2 About me ௩ຊࢤ https://twitter.com/itometeam https://github.com/itome https://medium.com/@itometeam 0.5min
Slide 3
Slide 3 text
ΞʔΩςΫνϟͬͯͳʹʁ 5min
Slide 4
Slide 4 text
4 ΞʔΩςΫνϟͬͯͳʹʁ 5min ΞʔΩςΫνϟ(ઃܭ)ʹͨ͘͞Μͷҙຯ͕͋Δ ɾCPUͳͲϋʔυΣΞͷ੍ޚͷํࣜͱͯ͠ͷΞʔΩςΫνϟ ɾωοτϫʔΫͷΞʔΩςΫνϟ ɾιϑτΣΞͷΞʔΩςΫνϟ ɾ…etc ←ࠓ͜͜ʹ͍ͭͯ͠·͢
Slide 5
Slide 5 text
5 ΞʔΩςΫνϟͬͯͳʹʁ 5min ͦͷ·͑ʹ
Slide 6
Slide 6 text
6 ΞʔΩςΫνϟͬͯͳʹʁ 5min ͦͦΞʔΩςΫνϟͬͯ Ͳ͏ͯ͠ඞཁͳΜͩΖ͏ʁ
Slide 7
Slide 7 text
ΞʔΩςΫνϟ͕ਁಁ͢Δલͷ ιϑτΣΞ։ൃ 3min
Slide 8
Slide 8 text
8 ΞʔΩςΫνϟ͕ਁಁ͢ΔલͷιϑτΣΞ։ൃ 3min ͱͱϓϩάϥϛϯάʹଟ͘ͷϕετɾ ϓϥΫςΟεʢεϜʔζͳ։ൃɾอकɾӡ༻ ͷͨΊʹकΔ͖ϧʔϧʣ͕͋Δ
Slide 9
Slide 9 text
9 ΞʔΩςΫνϟ͕ਁಁ͢ΔલͷιϑτΣΞ։ൃ 3min ྫ͑ɿ ׂ౷࣏ʢDivide and Conquerʣ ͦͷ··Ͱղܾ͢Δ͜ͱ͕͍͠ʮେ͖ͳʯɺ ͍͔ͭ͘ͷʮখ͞ͳʯʹׂͯ͠ɺݸผʹղܾ͢Δ
Slide 10
Slide 10 text
10 ΞʔΩςΫνϟ͕ਁಁ͢ΔલͷιϑτΣΞ։ൃ 3min ྫ͑ɿ ಉܕݪཧʢIsomorphism Principleʣ ʮܗʹͩ͜ΘΔʯͱ͍͏ݪཧɺຊ࣭తʹಉ͜͡ͱιʔείʔυͰ ಉ͡Α͏ʹѻ͏͜ͱͰʮҟʯΛཱͪ͘͢͢Δɻ
Slide 11
Slide 11 text
11 ΞʔΩςΫνϟ͕ਁಁ͢ΔલͷιϑτΣΞ։ൃ 3min ྫ͑ɿ ઢܗݪཧʢLinearity Principleʣ ॲཧͷྲྀΕΛઢʹ͢Δݪଇɻ͋Δػೳ͍͔ͭ͘ͷখ͞ͳػೳΛ ઢతʹॏͶ߹Θ࣮ͤͯݱ͢Δͷ͕Α͍ɻ
Slide 12
Slide 12 text
12 ΞʔΩςΫνϟ͕ਁಁ͢ΔલͷιϑτΣΞ։ൃ 3min ྫ͑ɿ ୯Ұݪଇ มߋ͢Δཧ༝͕ಉ͡ͷूΊɺมߋ͢Δཧ༝͕ҧ͏ͷ ͚Δݪଇɻ1ͭͷϞδϡʔϧɺΫϥεؔʹมߋ͢Δཧ༝͕ ̎ͭҎ্͍͚͋ͬͯͳ͍ɻ
Slide 13
Slide 13 text
13 ΞʔΩςΫνϟ͕ਁಁ͢ΔલͷιϑτΣΞ։ൃ 3min ଞʹɿ DRYݪଇ KISSݪଇ ڽूɾ݁߹ݪଇ ։์ɾดݪଇ ݁ՌͷہॴԽ ܁Γฦ͠ͷ࠷খԽ ϩδοΫͱσʔλͷҰମԽ ରশੑݪଇ ϙϦϞʔϑΟζϜ ใͷӅṭ ΧϓηϧԽ શੑɾॆੑɾϓϦϛςΟϒ ؔ৺ͷ ϙϦγʔͱ࣮ͷ ࢀরͷҰੑ ςετ༰қੑ ୯७ݪཧ ໌ূݪཧ ڻ͖࠷খͷݪଇ ੑ ࢀরಁաੑ ݆ͷݪଇ ϘʔΠεΧτϧʔϧ GOFσβΠϯύλʔϯ σϧϝϧͷ๏ଇ SOLIDݪଇ ҆ఆੑͷݪଇ ֊ݪཧ ґଘੑٯసͷݪଇ ૬ޓӡ༻ੑ ࠶ར༻ ΠϯλʔϑΣ ަੑ ܖʹΑ ޚతϓ Ӫ δϣ
Slide 14
Slide 14 text
14 ΞʔΩςΫνϟ͕ਁಁ͢ΔલͷιϑτΣΞ։ൃ 3min ୯ҰػೳͷΞϓϦέʔγϣϯɺঢ়ଶͷগͳ͍ΞϓϦέʔγϣϯͰ͋Ε ͜ΕΒͷݪଇʹै͏͜ͱͰมߋʹڧ͍ΫϦʔϯͳίʔυ͕ॻ͚Δ
Slide 15
Slide 15 text
15 ΞʔΩςΫνϟ͕ਁಁ͢ΔલͷιϑτΣΞ։ൃ 3min ͔࣌͠͠ྲྀΕɻɻɻ
Slide 16
Slide 16 text
16 ΞʔΩςΫνϟ͕ਁಁ͢ΔલͷιϑτΣΞ։ൃ 3min ΞϓϦέʔγϣϯΑΓଟػೳʹ ΞϓϦέʔγϣϯͷঢ়ଶΑΓෳࡶʹ ɾϝοηʔδػೳ ɾ௨ػೳ ɾࣸਅɺಈըࡱӨ ɾܾࡁػೳ ɾϝσΟΞͷ࠶ੜ ɾݸਓؒૹۚ ɾը૾ิਖ਼ ɾϩάΠϯ͍ͯ͠Δʁ ɾܾࡁใొ͞Ε͍ͯΔʁ ɾ௨ڐՄ͍ͯ͠Δʁ ɾ֎෦αʔϏε࿈ܞ͍ͯ͠Δʁ
Slide 17
Slide 17 text
17 ΞʔΩςΫνϟ͕ਁಁ͢ΔલͷιϑτΣΞ։ൃ 3min ։ൃͷෳࡶԽʹΑ͍ͬͯΖΜͳ͕ग़ͯ͘Δ ɾͨΓతͳ࣮ͰϕετɾϓϥΫςΟε͔Β֎Εͯ͠·͏͜ͱ͕ଟ͍ ɾνʔϜ։ൃͰɺϝϯόʔͷٕज़ྗʹΑͬͯίʔυͷ࣭ʹ͕ࠩग़Δ ɾٕज़ྗʹ͕ࠩͳͯ͘ɺϓϩδΣΫτશମͰॻ͖ํ͕౷ҰͰ͖ͳ͍
Slide 18
Slide 18 text
18 ΞʔΩςΫνϟ͕ਁಁ͢ΔલͷιϑτΣΞ։ൃ 3min ϓϩδΣΫτશମͰઃܭΛ౷Ұ͠Α͏ʂ ͞Βʹͦͷઃܭʹै͏͚ͩͰɺϕετϓϥΫςΟεͳ։ൃ ͕Ͱ͖ΔΑ͏ʹϧʔϧΛܾΊΑ͏ʂ MVCɺFluxͳͲͷΞʔΩςΫνϟ͕ొ
Slide 19
Slide 19 text
19 ΞʔΩςΫνϟͬͯͳʹʁ 5min ؓٳ
Slide 20
Slide 20 text
20 ΞʔΩςΫνϟͬͯͳʹʁ 5min ΞʔΩςΫνϟͱ طଘͷϕετɾϓϥΫςΟεʹଇͬͨɺ ϓϩδΣΫτશମͷ࣮ύλʔϯͷ͜ͱ
Slide 21
Slide 21 text
21 ΞʔΩςΫνϟͬͯͳʹʁ 5min ౷Ұ͞ΕͨΞʔΩςΫνϟΛಋೖ͢Δ͜ͱͰ ɾΞʔΩςΫνϟͷϧʔϧʹैͬͯ։ൃΛ͢Εɺ ɹطଘͷϕετɾϓϥΫςΟεΛҙࣝ͠ͳͯ͘ʢ͋Δ͍Βͳͯ͘ʣ ɹมߋʹڧ͍ΫϦʔϯͳίʔυΛॻ͚ΔΑ͏ʹͳΔ ɾ։ൃνʔϜͷ୭͕ॻ͍ͨίʔυͰɺ ɹଞͷਓ͕؆୯ʹಡΊΔɺ·ͨमਖ਼ΛͰ͖ΔΑ͏ʹͳΔ
Slide 22
Slide 22 text
దͳΞʔΩςΫνϟબఆͷίπ 3min
Slide 23
Slide 23 text
23 దͳΞʔΩςΫνϟબఆͷίπ 3min ɾͲͷΞʔΩςΫνϟΛબͿ͔ʹਖ਼ղɾෆਖ਼ղͳ͍ ɾجຊతʹͲΜͳΞʔΩςΫνϟͰɺ ɹͲΜͳΞϓϦέʔγϣϯ։ൃ͕Ͱ͖Δɻ
Slide 24
Slide 24 text
24 దͳΞʔΩςΫνϟબఆͷίπ 3min ΞʔΩςΫνϟΛߟ͑Δͱ͖ʹߟྀ͢Δ͜ͱ ɾΞϓϦέʔγϣϯͷෳࡶ͞ ɾ։ൃνʔϜͷਓɾٕज़ྗ ɾσϑΝΫτελϯμʔυͳ࣮
Slide 25
Slide 25 text
25 దͳΞʔΩςΫνϟબఆͷίπ 3min ΞʔΩςΫνϟΛߟ͑Δͱ͖ʹߟྀ͢Δ͜ͱ ɾΞϓϦέʔγϣϯͷෳࡶ͞ ɾ։ൃνʔϜͷਓɾٕज़ྗ ɾσϑΝΫτελϯμʔυͳ࣮
Slide 26
Slide 26 text
26 దͳΞʔΩςΫνϟબఆͷίπ 3min ɾΞϓϦέʔγϣϯͷෳࡶ͞ γϯϓϧͳΞϓϦ։ൃͰ͋Εɺίʔυ͕ʹͳΓ͍͢Flux ͳͲͷΞʔΩςΫνϟΑΓɺMVCMVVMͷ΄͏͕ૣ͘։ൃ͕Ͱ͖Δ ҰํɺFluxReduxɺMVIͷΑ͏ͳΞʔΩςΫνϟίʔυͷ੍͕ ڧ͍ͨΊɺେنͳ։ൃͰഁͮ͠Β͍ ͨͩ͠ɺίʔυৗʹෳࡶԽ͍ͯ͘͠ͷͳͷͰɺݟۃΊ͕ඞཁ
Slide 27
Slide 27 text
27 దͳΞʔΩςΫνϟબఆͷίπ 3min ΞʔΩςΫνϟΛߟ͑Δͱ͖ʹߟྀ͢Δ͜ͱ ɾΞϓϦέʔγϣϯͷෳࡶ͞ ɾ։ൃνʔϜͷਓɾٕज़ྗ ɾσϑΝΫτελϯμʔυͳ࣮
Slide 28
Slide 28 text
28 దͳΞʔΩςΫνϟબఆͷίπ 3min ɾ։ൃνʔϜͷਓɾٕज़ྗ ։ൃϝϯόʔ͕ଟ͍͚ΕɺΞʔΩςΫνϟʹΑΔ੍͕ڧ͍ํ͕Α͍ ΞʔΩςΫνϟͷ֓೦ࣗମ͕͍͠߹ɺϝϯόʔશһ͕ͦΕΛशಘ͢Δ ίετ։ൃͷʹؚ·ΕΔɻ ։ൃϝϯόʔͷେ෦͕׳Ε͍ͯΔΞʔΩςΫνϟ͕͋ΕɺͦΕΛ ·ͣݕ౼͢Δ
Slide 29
Slide 29 text
29 దͳΞʔΩςΫνϟબఆͷίπ 3min ΞʔΩςΫνϟΛߟ͑Δͱ͖ʹߟྀ͢Δ͜ͱ ɾΞϓϦέʔγϣϯͷෳࡶ͞ ɾ։ൃνʔϜͷਓɾٕज़ྗ ɾσϑΝΫτελϯμʔυͳ࣮
Slide 30
Slide 30 text
30 దͳΞʔΩςΫνϟબఆͷίπ 3min ɾσϑΝΫτελϯμʔυͳ࣮ Ͱ͖Δ͚ͩελϯμʔυͳΞʔΩςΫνϟΛબΜͩํ͕ɺϥΠϒϥϦ͕ ॆ࣮͍ͯͨ͠ΓɺυΩϡϝϯτStack OverflowͷճͳͲͷࣝʹ ΞΫηε͍ͨ͢͠ΊΑ͍ AndroidͰ͋ΕMVVM͕ެࣜʹαϙʔτ͞Ε͍ͯΔɻiOSʹެࣜͷ ࣮ͳ͍͕ɺClean ArchitectureFluxʹΑΔ࣮ྫ͕ଟ͍
Slide 31
Slide 31 text
31 దͳΞʔΩςΫνϟબఆͷίπ 3min Ҏ্ͷΑ͏ͳߟྀ͖͢ΛΫϦΞͰ͖͍ͯΕɺ جຊతʹԿΛબΜͰͳ͍
Slide 32
Slide 32 text
32 దͳΞʔΩςΫνϟબఆͷίπ 3min ͨͩ͠ɺෳͷઃܭΛࠞͥͳ͍Α͏ʹ͢Δ A͞Μ B͞Μ Flux͕͖ͳͷͰɺࣗͷϩάΠϯը໘ FluxΛ࠾༻͠·͢ʂ MVCʹ׳Ε͍ͯΔͷͰɺͷ୲͍ͯ͠Δ ϓϩϑΟʔϧը໘MVCΛͱʹઃܭ͠·͢ʂ
Slide 33
Slide 33 text
33 దͳΞʔΩςΫνϟબఆͷίπ 3min ͨͩ͠ɺෳͷઃܭΛࠞͥͳ͍Α͏ʹ͢Δ A͞Μ B͞Μ B͞Μͷίʔυ͕ಡΊͳ͍ɻɻɻ A͞Μͷίʔυ͕ಡΊͳ͍ɻɻɻ C͞Μ A͞Μͷ୲ՕॴͱB͞Μͷ୲Օॴʹ ಉ͡Α͏ͳमਖ਼Λ͍ͨ͠ͷʹ ઃܭ͕શ͘ҧ͍ͬͯ͠ɻɻɻ
Slide 34
Slide 34 text
͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min
Slide 35
Slide 35 text
35 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾMVC ɾMVVM ɾClean Architecture ɾFlux ɾMVI ࠓհ͢ΔΞʔΩςΫνϟ
Slide 36
Slide 36 text
36 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾMVC ɾMVVM ɾClean Architecture ɾFlux ɾMVI ࠓհ͢ΔΞʔΩςΫνϟ
Slide 37
Slide 37 text
37 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾMVC Model View Controller ΞϓϦέʔγϣϯͷϩδοΫΛ୲͢Δ ը໘ͷඳըΛ୲͢Δ Model - ViewͷؒʹཱͬͯͦΕͧΕͷೖग़ྗΛ நԽ͢Δ ex) View͔Βड͚औͬͨΫϦοΫΠϕϯτΛ ɹʮσʔλΛऔಘ͍ͨ͠ʯͱ͍͏ϦΫΤετͱͯ͠ ɹ ModelʹૹΔ
Slide 38
Slide 38 text
38 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾMVC ϝϦοτ σϝϦοτ ModelʹϩδοΫͷॲཧΛͤΔ ͜ͱͰɺView͕ංେԽͮ͠Β͘ͳΔ Controller͕ؒʹཱͭ͜ͱʹΑͬͯ ModelͱView͕ૄ݁߹ʹͳΔ ֤෦ΛͲ͏࣮͢Δ͔݁ہ ͦΕͧΕͷ࣮ऀʹҕͶΒΕ͍ͯΔ Ͳ͜ʹॻ͚͍͍͔ܾΊΒΕ͍ͯͳ͍ ͜ͱ͕ଟ͍
Slide 39
Slide 39 text
39 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾMVC ɾMVVM ɾClean Architecture ɾFlux ɾMVI ࠓհ͢ΔΞʔΩςΫνϟ
Slide 40
Slide 40 text
40 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾMVVM ModelɾView ViewModel MVCͱಉ͡ Viewͷঢ়ଶཧɺߋ৽Λߦ͏ Viewͷঢ়ଶͱViewModelͷঢ়ଶৗʹ ಈዲ͞Ε͍ͯͯɺViewModelͷߋ৽͙͢ʹ Viewʹө͞ΕɺΫϦοΫͳͲͷViewͷΠϕϯτ ViewModelܦ༝ͰModelʹ͑ΒΕΔ
Slide 41
Slide 41 text
41 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾMVVM https://qiita.com/rmakiyama/items/779cf6407f70b40e4ee7 ΑΓ
Slide 42
Slide 42 text
42 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾMVVM ϝϦοτ σϝϦοτ ViewModelͷঢ়ଶΛߋ৽͢Δ͚ͩͰ ࣗಈతʹView͕ߋ৽͞ΕΔͨΊɺ Viewͷঢ়ଶཧ͕Θ͔Γ͍͢ ViewModel - Viewͷঢ়ଶΛSync ͤ͞ΔΈ͕ඞཁ (RxʹΑΔঢ়ଶมߋ௨ͳͲ) ViewModel͕ංେ͍͢͠
Slide 43
Slide 43 text
43 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾMVC ɾMVVM ɾClean Architecture ɾFlux ɾMVI ࠓհ͢ΔΞʔΩςΫνϟ
Slide 44
Slide 44 text
44 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾClean Architecture https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html ΑΓ
Slide 45
Slide 45 text
45 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾClean Architecture MVCͳͲͷΞʔΩςΫνϟΛ ϨΠϠʔ͝ͱͷΛ໌֬Խͯ͠ ࠶ઃܭͨ͠ͷ σʔλͷྲྀΕৗʹ ʮ֎ˠˠ֎ʯͱͳΔΑ͏ʹ ઃܭ͞Ε͓ͯΓɺUseCase͕ σʔλͷྲྀΕͷؒʹཱͬͯ ϩδοΫΛׂ͢Δ
Slide 46
Slide 46 text
46 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾClean Architecture ϝϦοτ σϝϦοτ ֤ϨΠϠʔͷ͕໌֬ͳͨΊɺ ԿΛͲ͜ʹॻ͔͕࣮͘ऀʹΑͬͯ มΘΔ͜ͱ͕গͳ͍ DDD(υϝΠϯۦಈઃܭ)Λͱʹ ͍ͯ͠ΔͨΊɺClean Architecture Ͱྑ͍ίʔυΛॻ͘ʹDDDͷࣝ ͕ඞཁʹͳΔ UseCase͕ॲཧΛࡉ͔͘ ׂ͢ΔͨΊɺϩδοΫͷ࠶ར༻ੑ͕ ߴ·Δ
Slide 47
Slide 47 text
47 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾMVC ɾMVVM ɾClean Architecture ɾFlux ɾMVI ࠓհ͢ΔΞʔΩςΫνϟ
Slide 48
Slide 48 text
48 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾFlux https://facebook.github.io/flux/ ΑΓ
Slide 49
Slide 49 text
49 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾFlux ୯ํσʔλϑϩʔͷදతͳ ΞʔΩςΫνϟ ΞϓϦέʔγϣϯͷঢ়ଶStoreͷΈʹ Αͬͯཧ͞ΕɺͦΕҎ֎Storeͷঢ়ଶΛ ߋ৽͢ΔͨΊͷϞδϡʔϧ ঢ়ଶͷߋ৽ඞͣ View → Action → Dispatcher → Store ͷॱʹσʔλ͕ྲྀΕΔ͜ͱͰߦΘΕΔ
Slide 50
Slide 50 text
50 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾFlux ϝϦοτ σϝϦοτ ঢ়ଶ͕Storeʹू͞ΕΔͨΊ ཧ͕͍͢͠ ಉظతͳঢ়ଶߋ৽Λجຊʹ ͍ͯ͠ΔͨΊɺ௨৴ͳͲͷඇಉظ ॲཧͱͷ࿈ܞʹ͕ඞཁ ΞʔΩςΫνϟϨϕϧͰςετ༰қੑ ͕ߟ͑ΒΕ͍ͯΔ ঢ়ଶͷߋ৽͕Actionͱ݁ͼͭͨ͘Ί ͲͷΑ͏ͳঢ়ଶߋ৽͕͋Δ͔Λ Ұཡ͍͢͠
Slide 51
Slide 51 text
51 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾMVC ɾMVVM ɾClean Architecture ɾFlux ɾMVI ࠓհ͢ΔΞʔΩςΫνϟ
Slide 52
Slide 52 text
52 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾMVI
Slide 53
Slide 53 text
53 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾMVI Fluxͱಉ༷ʹ୯ํσʔλϑϩʔͷ ΞʔΩςΫνϟ Intent, Action, Result, Stateͱ͍͏ σʔλͱɺಁաతͳؔͷΈͰ࣮ ͢Δ
Slide 54
Slide 54 text
54 ͍Ζ͍ΖͳΞʔΩςΫνϟͷհ 6min ɾMVI ϝϦοτ σϝϦοτ ঢ়ଶߋ৽ͷϩδοΫͷࢀরಁաੑ ͕୲อ͞Ε͍ͯΔͨΊɺςετ͕ ॻ͖͍͢ FluxΑΓ֤Ϟδϡʔϧͷׂ͕ ࡉԽ͞Ε͍ͯΔͨΊɺ ࣮ऀʹΑΔίʔυͷϒϨ͕গͳ͍ ϘΠϥʔϓϨʔτ͕ଟ͘ɺ؆୯ͳ࣮Λ ͢Δ͚ͩͰଟ͘ͷίʔυΛॻ͘ඞཁ͕ ͋Δ
Slide 55
Slide 55 text
·ͱΊ 2min
Slide 56
Slide 56 text
56 ·ͱΊ 2min ΞʔΩςΫνϟʹۜͷؙͳ͍ దͳΞʔΩςΫνϟʹଇͬͯ։ൃΛߦ͏͜ͱͰɺ ϓϩάϥϛϯάͷϕετϓϥΫςΟεΛϓϩδΣΫτશମͰकΔ͜ͱ͕Ͱ͖Δ ΞʔΩςΫνϟͷઃܭطଘͷΞʔΩςΫνϟͷબʹ ϕετϓϥΫςΟεΛΔ͜ͱ͕େ
Slide 57
Slide 57 text
57 ·ͱΊ 2min ͋Γ͕ͱ͏͍͟͝·ͨ͠ @AbemaTV Hack https://twitter.com/itometeam https://github.com/itome https://medium.com/@itometeam