Slide 1

Slide 1 text

#devsumi 2020ొஃʢ༧ʣΛࢧ͑Δٕज़ ແବʹؤுͬͯNuxt.js + FastAPIͰσϞ࡞ͬͨ Shinichi Nakagawa a.k.a. @shinyorke

Slide 2

Slide 2 text

TL;DR • ʮΞΠπͱࣅ͍ͯΔ໺ٿબखʢଧऀʹݶ ΔʣʯΛβΫοͱݟͤΔΞϓϦΛ࡞ͬͨ • Nuxt.js + FastAPIͰ͍͍ײ͡ʹ࡞੒ • ྨࣅੑείΞܭࢉ͸Pandas. ԋࢉ͸GCPʹؙ౤͛

Slide 3

Slide 3 text

Who am I?ʢ͓લ୭Αʣ • Shinichi Nakagawa(@shinyorke) • JX௨৴ࣾSenior Engineer • Python/Data Science/SABRmetrics ⚾ • ͔ͭͯ໺ٿΛ࢓ࣄʹͯͨ͠ਓ

Slide 4

Slide 4 text

ຊ೔ͷ͓୊. σϒαϛͷൃදͰࣗ෼ͷΩϟϦΞͱ໺ٿσʔλΛֻ͚ͯ ͳΜͱͳ͘େتར෩ʹ࿩͢ҝʹσϞΛ࡞Γ·ͨ͠

Slide 5

Slide 5 text

શମ૾͸ͪ͜Β جຊతʹDocker্Ͱಈ͔ͯ͠·͢. ͳ͓, ʮVottoʯ͸ʮϘοτʯʮϘτʔʯͱಡΜͰ͍ͩ͘͞

Slide 6

Slide 6 text

ૣ଎σϞΓ·͢.

Slide 7

Slide 7 text

ͩ͜Θͬͨ͜ͱ • Nuxt.jsʢϑϩϯτΤϯυʣ • FastAPIʢόοΫΤϯυʣ • ࣅ͍ͯΔ໺ٿબखͷࢉग़ΞϧΰϦζϜͱ࣮૷

Slide 8

Slide 8 text

Nuxt Core UI - ؅ཧը໘ • BootstrapϕʔεͷAdminʢ؅ཧʣը໘ͷ༗໊ͳ ύοέʔδͱͯ͠ʮCore UIʯ͍ͬͯ͏ͷ͕͋Δ • Core UIࣗମ͸৭ΜͳFWʢAnguler,VueͳͲʣʹ ରԠ͍ͯ͠Δ,ͦͷதʹNuxt.js൛͕͋Δ. • ࠓճ͸Nuxt Core UIΛfork֦ͯ͠ு࣮૷ͨ͠. https://github.com/muhibbudins/nuxt-coreui • ͪͳΈʹݩωλ͸PyCon JP 2018ͷࣗ෼ͷൃදͰ͢ʢখ੠ʣ

Slide 9

Slide 9 text

FastAPI - όοΫΤϯυ • ࠷ॳ͸ResponderͰ࡞ΔػӡͰ͕ͨ͠ʂʁ ࣾ಺ͰFastAPI͕࢖ΘΕ͍ͯΔͱ஌ͬͯ ํ਑Λม͑ͨʢ࢖͍͔ͨͬͨʣ • ࿩Λฉ͍ͯ࡞Γ࢝Ίͨͷ͕12/30ͷ18:00͝Ζ ͦͷ೔ͷ΢νʹ80%΄Ͳ׬੒ • αΫαΫಈ͘͠ΤΤ΍Μ͜Εʢ͜ͳΈʣ

Slide 10

Slide 10 text

ৄ͍͠࿩͸…ϒϩάͰͲ͏ͧ. ೥຤ʹϒϩάԽ͠·ͨ͠, ͩ͜ΘΓϙΠϯτ͸΋ͦͪΒͰ. https://shinyorke.hatenablog.com/entry/fastapi

Slide 11

Slide 11 text

ͩ͜ΘΓϙΠϯτʢཁ໿ʣ • খ͍͞ΞϓϦέʔγϣϯ͚ͩͲ࠷ॳ͔Β ΫϦʔϯΞʔΩςΫνϟΛ໨ࢦ͠෼ׂͨ͠ • ϏδωεϩδοΫܥ͸Schemaʹू໿. DAOͬΆ͍τί͸SQLͷΈʹूத • ͋ͱͰೝূͱ͔ೖΕΒΕΔΑ͏ʹ༨ന࢒ͨ͠

Slide 12

Slide 12 text

ࣅ͍ͯΔ໺ٿબखͷࢉग़Ϟσϧ • ʮྨࣅੑείΞʯͱ͍͏ϞσϧΛ࢖ͬͨ • ଧܸ੒੷ͱकඋϙδγϣϯͰॏΈΛ͚ͭͯ ฒ΂ͯධՁ • ࣮૷ͦͷ΋ͷ͸Pandas • ϝδϟʔϦʔΨʔ19,000ਓ෼Λܭࢉ͢Δͷʹ GoogleͷྗΛआΓ·ͬͨ͘

Slide 13

Slide 13 text

ࢉग़ΞϧΰϦζϜͷৄࡉ ࣮͸ͦͬͱΞυϕϯτΧϨϯμʔʹॻ͖·ͨ͠. https://shinyorke.hatenablog.com/entry/similarity-score-python

Slide 14

Slide 14 text

࠷ޙʹ • ೥຤೥࢝ٳΈ + ि຤ + ࢓ࣄऴΘͬͨ͋ͱฏ೔ Ͱ͍͍ײ͡ʹ࢓্͛·ָ͕͔ͨͬͨ͠͠ • ྨࣅੑείΞͱࣗ෼ͷΩϟϦΞ͕Ͳ͏ؔ܎͢ Δ͔͸͜Ε͔Βॻ͖·͢ʢߏ૝͸͋Δʣ • API͸GolangͰॻ͖௚͍ͨ͠ :okimochi:

Slide 15

Slide 15 text

ଓ͖͸2/14ͷ #devsumi 2020Ͱʂ :done: ੜ֔ΠνɾΤϯδχΞͱͯ͠޷͖ͳٕज़ͰδϟϯϓΞοϓ͠ଓ͚Α͏ https://event.shoeisha.jp/devsumi/20200213/session/2420/