Slide 1

Slide 1 text

։ൃظؒ2ϲ݄Ͱ Elasticsearch ΛϓϩμΫτʹ ࢖ͬͯϦϦʔεͨ͠࿩ PHPΧϯϑΝϨϯεઋ୆ 2019/01/26 Ί΋Γʔ(@m3m0r7)

Slide 2

Slide 2 text

ͩΕʁ Ί΋Γʔ(@m3m0r7) Ͱ͢ɻ ը૾͸͏ͪͷϋϜελʔͷ Lily ͪΌΜͰ͢ɻ ౦ژͷ࿡ຊ໦ʹ͋Δ גࣜձࣾ GameWith ͱ͍͏ ձࣾͰಇ͍ͯ·͢ɻ ͦͷੲɺPHPͰJavaͷόΠτίʔυΛ ಡΜͰͨͳͲ

Slide 3

Slide 3 text

ͱ͜ΖͰɺΈͳ͞Μ GameWith ͸͝ଘ஌Ͱ͔͢ʁ

Slide 4

Slide 4 text

GameWith ʹ͍ͭͯ

Slide 5

Slide 5 text

ࠓ೔͸ήʔϜ߈ུʹ͍͓ͭͯ࿩͠·͢

Slide 6

Slide 6 text

GameWith ʹ͍ͭͯ ήʔϜ߈ུʮGameWithʯͰ͕͢ɺ ࣮͸΢ΣϒαΠτҎ֎ʹ΋ΞϓϦ͕͋Γ·͢

Slide 7

Slide 7 text

GameWith ʹ͍ͭͯ ήʔϜ߈ུʮGameWithʯͰ͕͢ɺ ࣮͸΢ΣϒαΠτҎ֎ʹ΋ΞϓϦ͕͋Γ·͢

Slide 8

Slide 8 text

ࠓ೔͸͜͜ͷݕࡧػೳͷ όοΫΤϯυͷ։ൃͷ࿩Λ͠·͢

Slide 9

Slide 9 text

θϩϕʔε͔Βͷ։ൃͰҙࣝͨ͜͠ͱ

Slide 10

Slide 10 text

θϩϕʔε͔Βͷ։ൃͰҙࣝͨ͜͠ͱ • ҙࣝͨ͜͠ͱ͸5఺ • ᶃ ୭Ͱ΋։ൃͰ͖ΔΑ͏ʹ͢ΔϝϯλϦςΟ • ᶄ ৽͍͜͠ͱʹ௅ઓ͢ΔϝϯλϦςΟ • ᶅ ࠳͚ͳ͍ϝϯλϦςΟ • ᶆ ਏ͍ঢ়گΛָ͠ΉϝϯλϦςΟ • ᶇ ࢒ۀ͸͠ͳ͍ͧͱ͍͏ڧ͍ϝϯλϦςΟ

Slide 11

Slide 11 text

͜ͷҙࣝΛ΋ͱʹ։ൃ͍͖ͯ͠·ͨ͠

Slide 12

Slide 12 text

ٕज़બఆͱΠϯϑϥߏ੒

Slide 13

Slide 13 text

ٕज़બఆͱΠϯϑϥߏ੒ • શจݕࡧΤϯδϯ͸ࢥྀʹࢥྀΛॏͶElasticsearchΛબఆͨ͠ • Groongaͱ͍͏બ୒ࢶ΋͋ͬͨ • ݕࡧੑೳ͸ Elasticsearch ΑΓ Groonga ͷ΄͏্͕Β͍͠ • ࢀߟ: http://blog.createfield.com/entry/2014/04/21/120023 • ৗ࣌઀ଓ͕਺ສ௒͑Δ͔΋஌Εͳ͍ͷͰݫ͍͔͠΋͠Εͳ͍ͱ͍͏ݒ೦ ͕͋Γࠓճ͸আ֎ • खܰʹεέʔϧ͔ͨͬͨ͠ • ήʔϜͷ߈ུ৘ใΛऔΓѻ͍ͬͯΔͷͰήʔϜݻ༗ͷݻ༗໊ࢺ͕සग़͢Δ͜ ͱΛߟྀͨ͠ઃܭʹ͢Δඞཁ͕͋ͬͨ

Slide 14

Slide 14 text

ٕज़બఆͱΠϯϑϥߏ੒ • ࠷ॳ͸৽ͨͳऔΓ૊ΈͱϝϦοτΛՃຯͯ͠GoΛબ୒͠Α͏ͱ͍ͯͨ͠ • ݴޠࣗମͷύϑΥʔϚϯε͕Α͍ • ίϯύΠϧͷ࣌ؒ΋ૣ͍͠ • ͳʹΑΓॻ͘ͷָ͕ • APIͷσβΠϯΛ͢ΔͨΊʹ goa ͱ͍͏ϑϨʔϜϫʔΫ͕༻ҙ͞Ε͍ͯΔ • ϚΠΫϩαʔϏεͱͯ͠ఏڙ͍ͨ͠ͷʹଧͬͯ෇͚ͩͬͨ • APIυΩϡϝϯτ (Swagger) ΋উखʹు͖ग़ͯ͘͠ΕΔͷͰ • υΩϡϝϯτ͸͋Μ·Γߟྀ͠ͳͯ͘΋Αͦ͞͏

Slide 15

Slide 15 text

଴ͯΑ

Slide 16

Slide 16 text

ͦ΋ͦ΋ฐࣾ Go ॻ͚Δਓ͕΄ͱΜͲ͍ͳ͔ͬͨ

Slide 17

Slide 17 text

ٕज़બఆͱΠϯϑϥߏ੒ • GameWith ͸ PHP ΛϝΠϯͱͯ͠ѻ͍ͬͯΔձࣾ • ͦ΋ͦ΋౰࣌͸ଞϝϯόʔ͕৽͍͠ݴޠΛֶͿ͕࣌ؒͳ͔ͬͨ • Կ͔͠ΒΠϯγσϯτ͕ൃੜͨ͠৔߹ʹରॲͰ͖Δϝϯόʔ͕ݶΒΕͯ͠ ·͏ɻ • ࢒Γͷ։ൃظ͕ؒ͜ͷ࣌఺Ͱ 1.5 ϲ݄͘Β͍ʹͳ͍ͬͯͨ • ϨϏϡʔͰ͖Δϝϯόʔͷ͕࣌ؒऔΕͳ͍ɾϓϩδΣΫτʹδϣΠϯͰ͖ ͳ͍ • PHPͰ͋Ε͹୭Ͱ΋։ൃͰ͖Δ

Slide 18

Slide 18 text

PHPɺࢲୡΛٹͬͯ͘ΕΔͷ͸Ωϛ͔͍͠ͳ͍

Slide 19

Slide 19 text

ٕज़બఆͱΠϯϑϥߏ੒ • GoͰ͸ͳ͘PHPΛબΜͩ • ͦ΋ͦ΋ElasticsearchͰPHP޲͚ϥΠϒϥϦ͕͋Γɺࠔͬͨͱ͖ʹࢀߟʹͳ Γͦ͏ • Πϯγσϯτ͕ൃੜͨ͠ࡍʹαʔόʔαΠυΤϯδχΞͰ͋Ε͹ɺͲΜͳϝ ϯόʔͰ΋ରԠͰ͖ɺ࠷ѱͷࣗମ͕ى͖ͯ΋αʔϏεͷ෮چ΍ҡ͕࣋଎΍͔ ʹͰ͖Δ • LaravelͰඞཁͦ͏ͳCRUDΛΧόʔͰ͖ΔͷͰ։ൃ޻਺ΛݮΒͤͦ͏ • ݸਓతʹ pthreads ΍ Swoole ͳͲΛ࢖ͬͨฒྻɾඇಉظॲཧ΋ࢼ͔ͨͬͨ͠ • ࢼͤ͸ͨ͠΋ͷͷύϑΥʔϚϯενϡʔχϯάʹ࣌ؒΛऔΒΕͦ͏Ͱɹ࣮ݱʹ͸ࢸ Βͣ… ݕࡧAPI͸ Elasticsearch + PHP 7.2 + Laravel 5.6 Ͱ։ൃ͢Δ͜ͱʹͳΓ·ͨ͠

Slide 20

Slide 20 text

ͬ͘͟ΓΠϯϑϥͷߏ੒Λ ࢥ͍ු͔΂Δ

Slide 21

Slide 21 text

ٕज़બఆͱΠϯϑϥߏ੒ ※μογϡϘʔυͱ͸GameWithͷϥΠλʔ͕࢖༻͢Δ؅ཧը໘ͷ͜ͱͰ͢

Slide 22

Slide 22 text

ٕज़બఆͱΠϯϑϥߏ੒ • ͳͥ͜ͷߏ੒ʹ͠Α͏ͱͨ͠ͷ͔ • શจݕࡧΤϯδϯ͸ΞϓϦ͔Β͸ࢀরɺμογϡϘʔυ͔Β͸ॻ͖ࠐΈ͕ߦ ΘΕΔɻ • ήʔϜͷ߈ུهࣄ͸සൟʹߋ৽͞ΕΔͨΊɺߋ৽৘ใ΍࡟আ৘ใΛΩϡʔ Ͱॲཧ͔ͨͬͨ͠ͷͰɺAmazon SQSΛՃ͑ͨ • Elasticsearchͷ৑௕ԽͷͨΊσʔλϊʔυ͕2୆Ҏ্ඞཁͩͬͨ • ࠓճͷϓϩμΫτͰ͸ͲΕ͚ͩͷΞΫηε਺͕͋Δ͔࢑ఆͰ͔͠ग़ͤͳ͔ͬ ͕ͨ1୆ͩͱϊʔυ͕յΕͨࡍͷରॲ͕Ͱ͖ͳͦ͞͏Ͱ͋ΔͨΊ

Slide 23

Slide 23 text

ٕज़બఆͱΠϯϑϥߏ੒ - ࣮ࡍͷߏ੒

Slide 24

Slide 24 text

༨ஊ

Slide 25

Slide 25 text

͜ͷΠϯϑϥߏ੒Λ GameWith ͷ Tech ϒϩάʹ ॻ͍ͨͱ͜Ζɺelastic ͷํ͔ΒΠϯϑϥߏ੒ʹ͍ͭͯ ΞυόΠεΛ௖͚·ͨ͠ɻ

Slide 26

Slide 26 text

։ൃ؀ڥ

Slide 27

Slide 27 text

ٕज़બఆͱΠϯϑϥߏ੒ • ։ൃ؀ڥ͸DockerͰߏ੒ͨ͠ • DockerΛ࢖͏͜ͱʹΑΓɺԿ͕؀ڥʹ͋Δͷ͔໌֬ʹΘ͔ΔΑ͏ʹͳͬͨ • GameWith ͸ Vagrant Λ࢖͏෩ை͕͋ΓɺͲ͏͍ͬͨϛυϧ΢ΣΞ͕͋ Δ͔ɺͲ͏͍͏ߏ੒ʹͳ͍ͬͯΔͷ͔೺Ѳͮ͠Β͔ͬͨ • ։ൃ؀ڥͱϓϩμΫγϣϯ؀ڥͰඞཁͳ؀ڥͷࠩҟΛແ͔ͨͬͨ͘͠ • ϓϩμΫγϣϯ؀ڥʹ͸͋Δ͕ɺ։ൃ؀ڥʹ͸ͳ͍ɺͱ͍͏ঢ়ଶΛ࡞Γ ͨ͘ͳ͔ͬͨ • ࣾ಺ͰDockerΛϓϩμΫγϣϯʹར༻͢Δͷ͸͜ͷϓϩδΣΫτ͕ॳΊͯ • ৽͍͠௅ઓΛ͢Δ͜ͱ͸͍͍͜ͱɻ৽͍͜͠ͱʹ௅ઓΛͨ͠ͱ͍͏લྫ Λ࡞ΓपΓͷϝϯόʔ΋ɺࣗΒਐΜͰ௅ઓ͍ͯ͘͠෩౔ʹ͍͖͔ͯͨͬ͠ ͨ

Slide 28

Slide 28 text

σϓϩΠ

Slide 29

Slide 29 text

ٕज़બఆͱΠϯϑϥߏ੒ • σϓϩΠ͸ Deployer Ͱ • ॻ͘ͷ؆୯ͦ͏ • ։ൃ޻਺͕ 1.5 ϲ݄ͱ୹͍ͷͰɺ͘͢͝େࣄ • PHP ͱ૬ੑ͕ྑͦ͞͏ • GameWith ࣗମ͸ rsync Ͱ͹Β·͘Α͏ʹͳ͍ͬͯͨ • Capistrano Ͱ΋͍͍ͷͰ͸ͱࢥ͕ͬͨ Ruby Λॻ͚Δϝϯόʔ͕গͳ͍ • ࣮ࡍ͍ͯ͠Δͷ͸ pull ͚ͩ • ͨͩɺ Elasticsearch Ͱ࢖༻͢ΔϢʔβʔࣙॻͷϏϧυͳͲ΋σϓϩΠί Ϛϯυʹೖ͍ͬͯΔ

Slide 30

Slide 30 text

࣮ࡍͷ։ൃ

Slide 31

Slide 31 text

࣮ࡍͷ։ൃ • ݕࡧγεςϜࣗମͷνʔϜߏ੒͸4໊ମ੍ • αʔόʔαΠυΤϯδχΞ × 1 • GameWith ͷ΢Σϒ໘ͷ։ൃ΍վम΋݉຿ • ΠϯϑϥΤϯδχΞ × 1 • ଞͷΠϯϑϥ໘ͷλεΫ΋݉຿ • σΟϨΫλʔ × 1 • GameWith ͷ΢Σϒ໘ͷσΟϨΫγϣϯ΋݉຿ • ίʔυϨϏϡϫʔ × 1 • ෦௕ • ଞʹiOS, AndroidΤϯδχΞ

Slide 32

Slide 32 text

Ϧιʔεগͳ͗͢໰୊ʹ௚໘

Slide 33

Slide 33 text

Ί͛ͳ͍΋Μ

Slide 34

Slide 34 text

࣮ࡍͷ։ൃ - ঢ়گ೺ѲΛԁ׈ʹਐΊΔͨΊʹࢥ͍͍ͭͨλεΫΛશͯ Issue Խ͓ͯ͘͠ - ͲΜͳʹࠣࡉͳ͜ͱ΋ Issue ʹॻ͍ͯ๨Εͳ͍Α͏ʹ͍ͯͨ͠

Slide 35

Slide 35 text

࣮ࡍͷ։ൃ - ঢ়گ೺ѲΛԁ׈ʹਐΊΔͨΊʹࢥ͍͍ͭͨλεΫΛશͯ Issue Խ͓ͯ͘͠ - ػೳͷઃܭΛߟ͑ͭͭಉ࣌ʹ։ൃΛ͍͖ͯ͠ɺࢥ͍͍ͭͨΒIssueʹίϝϯτ Λ͚ͭΔ

Slide 36

Slide 36 text

API ͷσβΠϯ

Slide 37

Slide 37 text

࣮ࡍͷ։ൃ • طʹ GameWith ΞϓϦಠࣗͷ API ͕ଘࡏ͍ͯ͠Δ • ݕࡧγεςϜଆ΋࢓༷Λ߹ΘͤΑ͏͔೰Μͩ΋ͷͷɺԼهͷ pros, cons ͔ ΒɺಠࣗͰσβΠϯ͢Δ͜ͱʹ͠·ͨ͠ɻ • pros • Ϟμϯͳ API σβΠϯ͕Ͱ͖Δ • Laravel ͷϧʔςΟϯάָ͕ʹͳΔʢ㲈։ൃ޻਺ͷ୹ॖʣ • GameWith ຊମαΠτͱ͸ҧͬͨ΋ͷͱͯ͠ѻ͍͔ͨͬͨʢ㲈ϚΠΫ ϩαʔϏεԽʣ • cons • ϞϊϦγοΫʹͳͬͯ͠·͏ͱɺطʹ͋Δٕज़తෛ࠴ʹߋʹٕज़తෛ ࠴͕ੵΈॏͳͬͯख஗ΕʹͳΔ • ͜ͷͱ͖ɺಉ࣌ʹ GameWith ຊମαΠτ͸ PHP 7.x ʹҠߦ͢Δ४උ Λ͍ͯͨͨ͠Ίɺ৮Εͨ͘ͳ͔ͬͨ

Slide 38

Slide 38 text

࣮ࡍͷ։ൃ • طʹ GameWith ΞϓϦಠࣗͷ API ͕ଘࡏ͍ͯ͠Δ • ݕࡧγεςϜͷ API ͷઃܭ͸͜͏͍ͨ͠ͱ͍͏***ҙࢥදࣔ***Λͯ͠ɺઃܭʹ ؔͯ͠ͷσΟεΧογϣϯΛۃྗݮΒ͠։ൃ޻਺ͷ࡟ݮΛߦ͏ ※͋͘·ͰҙࢥදࣔͳͷͰɺͦͷ͋ͱ͍͔ͭ͘ͷ࣮૷Մ൱΍ຊ౰ʹAPI σβΠϯ͸Ϟμϯ͔ɺͳͲؚΊͯͷσΟεΧογϣϯ͸ߦͬͯ·͢

Slide 39

Slide 39 text

Swagger Λ࢖ͬͯ API ͷυΩϡϝϯτΛੜ੒

Slide 40

Slide 40 text

࣮ࡍͷ։ൃ • Swagger Λ࢖ͬͯ API ͷυΩϡϝϯτΛੜ੒͍ͯͬͨ͠ • ։ൃ޻਺͕ͲΜͳʹਏͯ͘΋υΩϡϝϯτΛॻ͘ͷ͚ͩ͸ଵΒͳ͔ͬͨ

Slide 41

Slide 41 text

࣮ࡍͷ։ൃ • Swagger Λ࢖ͬͯ API ͷυΩϡϝϯτΛੜ੒͍ͯͬͨ͠ • Swagger ͷੜ੒ʹ͸ zircote/swagger-php Λ༻͍·ͨ͠

Slide 42

Slide 42 text

Ϣχοτςετ

Slide 43

Slide 43 text

࣮ࡍͷ։ൃ • PHPUnit Λ࢖͍ϢχοτςετΛඞͣॻ͍ͨ • ϢχοτςετΛॻ͍ͯɺ࣮૷ͨ͠ API ͷΤϯυϙΠϯτ͕ઈରʹಈ࡞͢Δ อূ͕΄͔ͬͨ͠ • ͨͩɺ޻਺ͷ໰୊΋͋Γॻ͍ͨͷ͸ϛογϣϯΫϦςΟΧϧͳՕॴͩ ͚ɻ • ͜ͷΤϯυϙΠϯτ͸ઈରʹಈ͘ͱ͍͏৺ཧత҆શੑɻ

Slide 44

Slide 44 text

ϦϦʔε͢Δ·Ͱ

Slide 45

Slide 45 text

ϓϩμΫγϣϯʹϦϦʔε͢Δ·Ͱ • ϓϩμΫγϣϯ؀ڥ༻ͷίϚϯυΛ͍͔ͭ͘༻ҙͨ͠ • هࣄΛ౤ೖ͢ΔͨΊͷ artisan ίϚϯυ • هࣄΛ࡟আ͢ΔͨΊͷ artisan ίϚϯυ • ϢʔβʔࣙॻΛϏϧυ͢ΔͨΊͷ artisan ίϚϯυ • etc…

Slide 46

Slide 46 text

ϓϩμΫγϣϯʹϦϦʔε͢Δ·Ͱ • ϓϩμΫγϣϯ؀ڥΛߏங • QA (Quality Assurance) Λ࣮ࢪ͢ΔͨΊʹϓϩμΫγϣϯ؀ڥͷߏஙΛ͢Δඞ ཁ͕͋ͬͨ • iOS, AndroidΤϯδχΞɺσΟϨΫλʔ͔Β࣮ࡍͷσʔλΛݟͯ֬ೝΛ͠ ͍ͨཁ๬ʹ౴͑ΔͨΊ • ϓϩμΫγϣϯ؀ڥͷ Elasticsearch ʹهࣄΛ౤ೖ͍ͯ͘͠ • هࣄͷ݅਺͕਺ेສ݅͋Γ͕͔͔࣌ؒΔ͠ɺࣦഊ͢Δͱ౤ೖ͠௚͠ͳͷ Ͱਏ͔ͬͨ

Slide 47

Slide 47 text

ϓϩμΫγϣϯʹϦϦʔε͢Δ·Ͱ • QA (Quality Assurance) ͷ࣮ࢪ • ΠϯςάϨʔγϣϯςετ ΋݉Ͷͯ iOS, Android ΤϯδχΞɺαʔόʔαΠ υΤϯδχΞɺσΟϨΫλʔɺ෦௕ͷશһ͕ू݁ͯ͠ɺ࣮ࡍʹεϚϗΛ৮Δɻ ͜͜Ͱग़ͨόά΍ػೳͷ࣮૷ʹ͍ͭͯͷϑΟʔυόοΫΛड͚ͯ ௐ੔Λ͍ͯ͘͠

Slide 48

Slide 48 text

ϓϩμΫγϣϯʹϦϦʔε͢Δ·Ͱ • ෛՙςετͷ࣮ࢪ • ΠϯϑϥΤϯδχΞʹґཔΛ͠ɺ Gatling Λ༻͍ͯෛՙςετͷ࣮ࢪΛߦͬ ͨɻ

Slide 49

Slide 49 text

ϦϦʔε

Slide 50

Slide 50 text

ϦϦʔε - ແࣄϦϦʔεʂ࠳͚ͳ͍ͰલʹਐΉ͜ͱେࣄʂ

Slide 51

Slide 51 text

ϦϦʔεͨ͋͠ͱ

Slide 52

Slide 52 text

ϦϦʔεͨ͋͠ͱ ৼΓฦΔͱ։ൃظؒ 1.5 ϲ݄΄ͲͰ͜Ε͚ͩͷίϛοτΛͯ͠͠·ͬͨ

Slide 53

Slide 53 text

ϦϦʔεͨ͋͠ͱ ։ൃʹܞΘͬͨਓͰɺৼΓฦΓΛߦͬͨ

Slide 54

Slide 54 text

ϦϦʔεͨ͋͠ͱ χΫΞβϒͰম೑৯΂ͨ

Slide 55

Slide 55 text

ϦϦʔεͨ͋͠ͱ GameWith Tech Blog Ͱॻ͍ͯΈͨɻ͸ͯͿ͍ͬͺ͍͍ͭͯͯخ͍͠ https://tech.gamewith.co.jp/entry/2018/09/21/122154

Slide 56

Slide 56 text

ͦΕͰ΋ɺ͍Ζ͍Ζ໰୊ʹ௚໘ͨ͠

Slide 57

Slide 57 text

௚໘ͨ͠໰୊ • ϦϦʔεͨ͋͠ͱʹ͍͔ͭ͘όά͕ग़͖ͯͨ໰୊ • GameWith ຊମαΠτͷରԠ͕૿͑ͨ • ໘઀ͷԠื͕ଟ͍࣌ظʹॏͳͬͯɺ໘઀ϥογϡ໰୊ • MTG͕ଟ͘ͳͬͨ໰୊ • ϦϦʔεऴΘͬͨ͋ͱʹΞαΠϯͨ͢͠΂ͯͷλεΫͷܹࢗ ͕෺଍Γͳ͍ͱײ͡Δ໰୊

Slide 58

Slide 58 text

ͦΕͰ΋ϦϦʔεͰ͖ͨͷͰΊͰͨ͠ΊͰͨ͠

Slide 59

Slide 59 text

·ͱΊ

Slide 60

Slide 60 text

·ͱΊ • ࠓճ͸։ൃʹҙࣝͨ͜͠ͱʹଇͬͯɺٕज़બఆͷࡍʹ୭Ͱ΋Ͱ͖Δ΋ͷΛબΜͩ • ͦͷ্Ͱͦͷ෼໺ͷ৽͍͠΋ͷΛऔΓೖΕ͍ͯͬͨʢDocker΍ PHP 7.2ͳͲʣ • ໌೔ɺࣗ෼͕ަ௨ࣄނʹ͋ͬͨΒʁͱ͍͏͜ͱΛߟ͑ͳ͕ΒਐΊΔͱࣗવͱ୭ʹͰ΋Ͱ ͖Δ΋ͷʹͳ͍ͬͯ͘ײ͕͋͡Δ • ඞཁͦ͏ͳλεΫ͸ Issue ʹϝϞΛ࢒ͨ͠΄͏͕͍͍ • ಛʹ݉೚ͷ৔߹ͩͱ๨ΕΔ͜ͱ΋͋ͬͨΓ͢Δ • ͋Δఔ౓୭͔͕ਐΊͳ͍ͱϓϩδΣΫτ͸ਐ·ͳ͍ • ୭ͷ࢓ࣄ͚ͩͬʁͱଞਓ͝ͱʹ͢ΔͷͰ͸ͳ͘ɺԼ஍Λࣗ෼͔Β཰ઌͯ͠࡞͍ͬͯ͘ • APIσβΠϯΛઌʹܾΊ͍ͯͳ͚Ε͹ɺϓϩδΣΫτ͕੒ޭ͔ͨ͠Ͳ͏͔΋ո͍͠ • Πϯϑϥͷߏ੒Λߟ͑ͭͭίʔυΛॻ͍͍ͯ͘ • Πϯϑϥͷߏ੒ʹΑͬͯॻ͘ίʔυ͕ҟͳΔͷͰɺઌʹΠϯϑϥͷઃܭΛ಄ʹࢥ͍ු͔ ΂Δ

Slide 61

Slide 61 text

·ͱΊ • ίʔυΛॻ͘͜ͱΛ᪳᪯͠ͳ͍ • ᪳᪯͢ΔͱɺͦΕ͚ͩͰ͕࣌ؒͳ͘ͳͬͯ͠·͏ͷͰɺ᪳᪯͠ͳͯ͘΋͍͍Α͏ͳ࢓૊ ΈΛ࡞ΔɻʢϢχοτςετΛॻ͘ͳΓɺQAΛ࣮ࢪ͢ΔͳΓʣ • ผνʔϜͱԁ׈ͳ࿈ܞΛ͢ΔͨΊʹυΩϡϝϯτΛॻ͘ • API͕Ͳ͏ͳ͍ͬͯΔ͔͸ɺΞϓϦνʔϜ͸஌Βͳ͍ɻ͔ͩΒͦ͜ɺϢϏΩλ εݴޠͰ͋ΔυΩϡϝϯτ͸࢒͓ͯ͘͠ɻ • υΩϡϝϯτ͕ͳ͚Ε͹ΞϓϦνʔϜ͸αʔόʔαΠυͷίʔυΛಡΉɺฉ ͘ͱ͍͏ίετ͕ൃੜͯ͠͠·͍ɺ͕࣌ؒ΋͍ͬͨͳ͍ • ͦΕʹɺ͋ͱ͔ΒಡΈฦͤΔ͠ɺ໌೔ަ௨ࣄނʹ͋ͬͯ΋҆৺Ͱ͖Δ • θϩϕʔεͷ։ൃʹ͸ෛՙςετ͸࣮ࢪ͠Α͏ • ϦϦʔε௚ޙʹαʔόʔ͕མͪΔͷ͸൵͍͠ؾ࣋ͪʹͳΔͷͰ • MTG͸அࣺ཭͠Α͏

Slide 62

Slide 62 text

ൃද͸Ҏ্Ͱ͢

Slide 63

Slide 63 text

WE ARE HIRING ! ࢲୡ͸ҰॹʹήʔϜۀքΛ੝Γ্͛ͯ͘ΕΔ ஥ؒΛ୳͍ͯ͠·͢ʂ ͝ڵຯ͕͋Δํ͸ @m3m0r7 ·Ͱ͝࿈བྷ͓ئ͍͠·͢

Slide 64

Slide 64 text

THANK YOU