Slide 1

Slide 1 text

өͬͨΒ࿩͢

Slide 2

Slide 2 text

͜Μ͹Μ͸

Slide 3

Slide 3 text

PͪΌΜ @p1ch_jp

Slide 4

Slide 4 text

͓·͑ͩΕ w ॴଐ w גࣜձࣾσΟʔɾΤψɾΤʔ w Կͯ͠Δ w ϑϩϯτΤϯυΤϯδχΞ

Slide 5

Slide 5 text

͸͍

Slide 6

Slide 6 text

ࠓ೔ͳΜͰ͕͢

Slide 7

Slide 7 text

-5ότϧͱ͍͏͜ͱͰ Ժ΍͔͡Όͳ͍Ͱ͢Ͷ

Slide 8

Slide 8 text

͸͍

Slide 9

Slide 9 text

΅͕͘͜͜ʹ͍Δ ܦҢͳΜͰ͕͢

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

ͳΜ΍͔Μ΍Ͱ

Slide 13

Slide 13 text

͏͔ͬΓϦϯάʹ ্͕Δ͜ͱʹͳͬͯ͠·ͬͨ

Slide 14

Slide 14 text

͔͠΋ͳ͔ͥ όοΫΤϯυͰ

Slide 15

Slide 15 text

ϏϏͬͯ·͢

Slide 16

Slide 16 text

ԿΛ࿩͢ͷ͔

Slide 17

Slide 17 text

ຊ೔ͷ΅͘ͷςʔϚ

Slide 18

Slide 18 text

όοΫΤϯυͱ ͍͏͜ͱͳΜͰ͕͢

Slide 19

Slide 19 text

ͨͿΜདྷͯΔਓͷ ΄ͱΜͲͷਓ͕

Slide 20

Slide 20 text

σβΠφʔ ϑϩϯτΤϯυΤϯδχΞ 03

Slide 21

Slide 21 text

ΑͶʁ

Slide 22

Slide 22 text

ͳʹΑΓ ΅ࣗ͘਎͕ৄ͘͠ͳ͍

Slide 23

Slide 23 text

ͱ͍͏Θ͚Ͱ

Slide 24

Slide 24 text

ࠓ೔͸Ͱ͢Ͷ

Slide 25

Slide 25 text

࣮຿ͰΞϨίϨͯ͠ಘͨ ҝʹͳΔ஌ݟͷڞ༗ͱ͔

Slide 26

Slide 26 text

ͦ͏͍͏ͷ Ͱ͖ͯ·ͤΜ

Slide 27

Slide 27 text

ԿΛ࿩͔͢ͱݴ͏ͱʜ

Slide 28

Slide 28 text

࠷ۙझຯͰ࡞ͬͨAPI ͷ࿩Ͱ΋ ͠Α͏ͱࢥ͍·͢

Slide 29

Slide 29 text

גࣜձࣾσΟʔɾΤψɾΤʔσβΠϯຊ෦αʔϏεσβΠϯ෦%&(( ౻ݪ৻ଠ࿠BLB1$IBO APIʹͳΖ͏ FROKAN x UIT #2 - ೥๨ΕLT ότϧ

Slide 30

Slide 30 text

૝ఆௌߨऀ

Slide 31

Slide 31 text

૝ఆௌߨऀ w ීஈɺ࢓ࣄͰ͸ϑϩϯτΤϯυΛॻ͍͍ͯΔ͕ɺझຯ΍ ݸਓ։ൃͰόοΫΤϯυ΋ॻ͍͍͖͍ͯͨਓ w มͳAPI͕ੜ͑ͯΔͷΛݟ͚ͭΔͱָ͘͠ͳͬͪΌ͏ਓ

Slide 32

Slide 32 text

͜͏ͳΔͱΑͦ͞͏ w ॳֶऀʹ΋ෛ୲ͷগͳ͍ٕज़ελοΫΛ஌ͬͯɺ࣮ࡍʹ (FUUJOH4UBSU͢Δػӡ͕ߴ·Δ w ͱ͸ݴ͑Կͭ͘Ε͹͑͑ͶΜ໰୊Λղফͯ͠ɺ࣮ࡍʹ (FUUJOH4UBSU͢Δػӡ͕ߴ·Δ

Slide 33

Slide 33 text

Ͱ

Slide 34

Slide 34 text

ࠓ೔ɺग़ͯ͘Δ੒Ռ෺ શ෦JSONͳΜͰ

Slide 35

Slide 35 text

Έͳ͞Μ΋͓खݩʹ

Slide 36

Slide 36 text

1PTUNBO

Slide 37

Slide 37 text

ͱ͔

Slide 38

Slide 38 text

1PTUXPNBO

Slide 39

Slide 39 text

ͱ͔

Slide 40

Slide 40 text

*OTPNOJB

Slide 41

Slide 41 text

ͱ͔ى্ͪ͛ͳ͕Β ฉ͍͍͚ͯͨͩΔͱ

Slide 42

Slide 42 text

ָ͍͔͠΋͠Ε·ͤΜ

Slide 43

Slide 43 text

ΈΜͳ͕ى্ͪ͛ͯΔؒʹ ΅͕͘ञΛҿΉ࣌ؒ

Slide 44

Slide 44 text

͸͍

Slide 45

Slide 45 text

ࠓճ࡞ͬͨ΋ͷ 0

Slide 46

Slide 46 text

P-Chan API

Slide 47

Slide 47 text

IUUQTBQJQDIBOJN

Slide 48

Slide 48 text

 ಡΜͰυϝΠϯͷ೗͘

Slide 49

Slide 49 text

 ΅͘ʹؔ͢Δ৘ใ͕ฦΓ·͢

Slide 50

Slide 50 text

GET /identification GET /accounts GET /assets PATCH /assets

Slide 51

Slide 51 text

 ࢖༻ٕज़

Slide 52

Slide 52 text

 ͜Μͳײ͡Ͱ͢

Slide 53

Slide 53 text

 ࠓ೔͸

Slide 54

Slide 54 text

 ୈҰষɺίίΒ΁Μ

Slide 55

Slide 55 text

 ୈೋষɺίίΒ΁Μ

Slide 56

Slide 56 text

 ʹผ͚ͯ঺հ͍͖ͯ͠·͢

Slide 57

Slide 57 text

ͱΓ·αʔόʔΛى্ͪ͛ͯ ੩తͳ৘ใΛฦͯ͠ΈΔ 1

Slide 58

Slide 58 text

 ίίΒ΁Μͷ࿩

Slide 59

Slide 59 text

 ͜ͷষ͸ݴ͍͍ͨ͜ͱ ͻͱ͔ͭ͠ͳ͍

Slide 60

Slide 60 text

 झຯor ݸਓ։ൃ && ॳΊͯͷαʔόʔαΠυNode.js

Slide 61

Slide 61 text

TypeScript + Express Ͱ૊΋͏

Slide 62

Slide 62 text

5ZQF4DSJQU &YQSFTT w &YQSFTTӫރ੝ਰͷܹ͍͠ք۾ʹ͓͍ͯ͸௝͘͠ɺރΕ ͭͭ΋ݱ໾Ͱ࢖͑ΔͷͰʢރΕͯΔ΋ͷ͸৘ใྔ͕๛෋ w 5ZQF4DSJQUϑϩϯτ͸·ͩ54ͱ૬ੑͷྑ͍ϑϨʔϜϫʔ Ϋͦ͏͡Όͳ͍ϑϨʔϜϫʔΫ͋Δ͕ɺόοΫΤϯυ͸ ͍͍ͩͨ૬ੑ͍͍ɻϑϩϯτͱҧͬͯXFCQBDLͷઃఆ Ͱ͠ΜͲ͍ͱ͔ͳͯ͘ɺجຊUTDίϚϯυͰઓ͑ΔͷͰ ྑ͞Έ͕͋Δɻ

Slide 63

Slide 63 text

 ࠷ۙ͸Nest.jsͱ͔͕ ྲྀߦͬͯ·͕͢

Slide 64

Slide 64 text

 Ұ൪ॳΊ͸ΦʔιυοΫεʹ ExpressͰ૊Ή͜ͱΛΦεεϝ σΟεͬͯ͸ͳ͍Αɺ510ͶʢҰԠ

Slide 65

Slide 65 text

 P-Chan APIͷ৔߹͸ ͜ΕͰ

Slide 66

Slide 66 text

GET /identification

Slide 67

Slide 67 text

GET /accounts

Slide 68

Slide 68 text

 ͋ͨΓΛฦͯ͠·͢

Slide 69

Slide 69 text

 ͸͍

Slide 70

Slide 70 text

 ͱΓ·͜ΕͰAPI૊Ί·ͨ͠

Slide 71

Slide 71 text

 ͱ͸ݴ͑͜Ε͚ͩ͡Ό Կ΋໘ന͘Ͷ͑

Slide 72

Slide 72 text

 όοΫΤϯυͳΒͰ͸ͷ

Slide 73

Slide 73 text

 औ͖ͬͯͨσʔλΛ อଘͨ͠Γɺు͖ग़ͨ͠Γ

Slide 74

Slide 74 text

 ͦ͏͍͏ͷ͍ͨ͠

Slide 75

Slide 75 text

σʔλΛऔ͖ͬͯͯอଘͯ͠ ు͖ग़͢·ͰͷΞϨίϨ 2

Slide 76

Slide 76 text

ͲΜͳΤϯυϙΠϯτ ੜ΍͔͢ͳʔͱࢥ͍ͬͯͨΒ

Slide 77

Slide 77 text

͜ΜͳIssue͕ͨͬͯͨͷͰ

Slide 78

Slide 78 text

ݮΔ΋Μ͡Όͳ͍͍͍͔͠

Slide 79

Slide 79 text

͜ΜͳΤϯυϙΠϯτΛ ༻ҙ͠·ͨ͠

Slide 80

Slide 80 text

PATCH /assets GET /assets ࢿ࢈৘ใͷฦ٫ͱߋ৽

Slide 81

Slide 81 text

αϯϓϧσʔλͰ΋ ͍͍͔ͱࢥͬͨΜͰ͕͢

Slide 82

Slide 82 text

໘നΈʹ͚ܽΔͷͰ

Slide 83

Slide 83 text

ʢϦΞϧΨνσʔλฦ͠·͢ʣ

Slide 84

Slide 84 text

͜ΕΒͷΤϯυϙΠϯτ͸ ओʹ2ͭͷ޻ఔͰ੒ΓཱͬͯΔ

Slide 85

Slide 85 text

PuppeteerͰ σʔλΛऔͬͯ͘Δ޻ఔ Prisma FrameworkͰ σʔλΛग़͠ೖΕ͢Δ޻ఔ Prisma Framework

Slide 86

Slide 86 text

PuppeteerͰ σʔλΛऔͬͯ͘Δ޻ఔ Prisma FrameworkͰ σʔλΛग़͠ೖΕ͢Δ޻ఔ Prisma Framework

Slide 87

Slide 87 text

Puppeteer ࢖͏ͳΒσϓϩΠઌ͸Α͘ߟ͑Α͏ w ZEIT Nowɺv2͔Β͸FaaSతͳײ͡ʹͳͬͨͷͰɺ͋Μ ·ΓϔουϨεϒϥ΢βΛͿΜճ͢Έ͍ͨͳέʔεΛ૝ఆ ͞Ε͍ͯͳ͍ɻλΠϜΞ΢τ͕10 ඵɻ ՝ۚͰ5 ෼ʹ  w ͓ͱͳ͘͠GAE/SE λΠϜΞ΢τ60ඵ ͱ͔ɺGoogle Cloud Functions λΠϜΞ΢τ540ඵ ͱ͔࢖ͬͨ΄͏͕ ྑ͍ w ͨͿΜP-Chan API͸ɺ͖͡ʹ৐Γ׵͑Δ

Slide 88

Slide 88 text

PuppeteerͰ σʔλΛऔͬͯ͘Δ޻ఔ Prisma FrameworkͰ σʔλΛग़͠ೖΕ͢Δ޻ఔ Prisma Framework

Slide 89

Slide 89 text

ࠓ೔Ұ൪஌ͬͯ΄͍͠΍ͭ

Slide 90

Slide 90 text

͋ͨΓ·͑ͳΜͰ͕͢

Slide 91

Slide 91 text

ϑϩϯτΤϯυͰ͸Ͱ͖ͳ͍ όοΫΤϯυͷ໘ന͞ͱͯ͠

Slide 92

Slide 92 text

σʔλͷӬଓԽ͕͋Δ

Slide 93

Slide 93 text

2019೥ͷ ΞϓϦέʔγϣϯ։ൃʹ͓͍ͯ

Slide 94

Slide 94 text

େମͷ৔߹ɺORMͱ͍͏ྨͷ ϥΠϒϥϦΛ࢖͏͜ͱʹΑͬͯ

Slide 95

Slide 95 text

SQLΛ௚ॻ͖͢Δ͜ͱͳ͘ ؆୯ʹDB΁ͷCRUD͕Ͱ͖ΔΑ͏ʹ

Slide 96

Slide 96 text

ͱ͸ݴ͑

Slide 97

Slide 97 text

ॳֶऀʹͱͬͯ

Slide 98

Slide 98 text

ίʔυ͕ Ұ൪ΰνϟΓΨνͳ෦෼Ͱ͋Γ

Slide 99

Slide 99 text

ORMಠࣗͷϚΠάϨʔγϣϯϧʔ ϧ΍ه๏Ͱ୤མ͕ͪ͠

Slide 100

Slide 100 text

ͦ͜Ͱࠓճ࢖ͬͨͷ͕

Slide 101

Slide 101 text

Prisma Framework

Slide 102

Slide 102 text

ORM Migration Sequel Pro ͬΆ͍΍ͭ

Slide 103

Slide 103 text

࢖͍ํ͸؆୯

Slide 104

Slide 104 text

εΩʔϚΛఆٛ͢Δ Prettier΋αϙʔτ͞ΕͯΔΑ TDIFNBQSJTNB

Slide 105

Slide 105 text

ϚΠάϨʔγϣϯͷੜ੒ͱ࣮ߦ prisma2 lift save && prisma2 lift up 5FSNJOBM

Slide 106

Slide 106 text

͜Μͳײ͡Ͱ௥Ճͨ͠Γ DPOUSPMMFSTBTTFUTUT

Slide 107

Slide 107 text

͜Μͳײ͡Ͱfindͨ͠Γ DPOUSPMMFSTBTTFUTUT

Slide 108

Slide 108 text

ΊͪΌͪ͘Ό௚ײతͳ ΦϒδΣΫτͷૢ࡞Ͱ׬݁

Slide 109

Slide 109 text

·ͩ·ͩ͜Ε͔ΒͳORM͚ͩͲɺ ৮ͬͨײ͡ɺखʹೃછΉؾ͕͢Δ

Slide 110

Slide 110 text

ҰԠTypeScript ORMքͷԦऀ TypeORMͱͷൺֱ

Slide 111

Slide 111 text

vs TypeORM (1/2) w ޙൃͷͨΊɺશମతʹ·ͩ·ͩউͯͳ͍ʢػೳͷଟ͞ɺ ରԠ͢Δσʔλϕʔεͷଟ͞ɺ࣮ࡍͷར༻ྫͳͲͳͲʣ w ͱ͸ݴ͑ɺ๏ਓ͕։ൃ฼ମͳͷͰɺ։ൃεϐʔυ͕҆ఆ ͍ͯ͠Δʢ࠷௿Ͱ΋ִिͰΞϓσ͢Δͱݴͬͯͨʣ w TypeORM ʹൺ΂ͯରԠ͢Δσʔλϕʔε͕ߜΒΕͯΔ ͷ͸ɺܽ఺Ͱ΋͋Δ͕ར఺Ͱ΋͋Γͦ͏

Slide 112

Slide 112 text

vs TypeORM (2/2) w Photon JS ORM૚ Lift JS Migration૚ ͕ಠཱͯ͠ ಈ͘ͱ͍͏ͷ͸NodeͬΆͯ͘޷͖ʢ޷Έͷ໰୊ w ԿΑΓɺ·ͩv0.xͰ͋ΓProductionͰͷ࢖༻͸ਪ঑͞ Ε͍ͯͳ͍ͷͰɺશମతʹࠓޙʹظ଴ͱ͍͏ײ͡ w ʢTypeScript Ͱॻ͚ΔORM͕ͦΜͳʹଟ͘ͳ͍தͰɺ બ୒ࢶ͕૿͑Δ͜ͱࣗମɺ݁ߏՁ஋͕͋Γͦ͏ʣ

Slide 113

Slide 113 text

·ͱΊ 3

Slide 114

Slide 114 text

·ͱΊ w όοΫΤϯυ͜ͱ͸͡Ί͸ʮTypeScript + Express + Prisma Frameworkʯ͕͍͍͔΋͠Εͳ͍Α w ࣗ෼ͷ৘ใΛίϯςϯπʹͨ͠ΒɺແݶʹΤϯυϙΠϯ τΛ࡞ΕΔͷͰɺʮͱ͸ݴ͑Կ࡞Ε͹͑͑ͶΜ໰୊ʯͰ ΤλΔͱ͔ͳͦ͞͏ɺΦεεϝ

Slide 115

Slide 115 text

 ࠓ೔঺հͨ͠APIͳΜͰ͕͢

Slide 116

Slide 116 text

 ୭ಘ͔͸෼͔Βͳ͍͚Ͳ

Slide 117

Slide 117 text

 ಛʹೝՄػߏͱ͔ ੵΜͰͳ͍ΜͰ

Slide 118

Slide 118 text

 ୭Ͱ΋ୟ͚·͢

Slide 119

Slide 119 text

ͱ͍͏Θ͚Ͱ

Slide 120

Slide 120 text

Ҏ্

Slide 121

Slide 121 text

גࣜձࣾσΟʔɾΤψɾΤʔσβΠϯຊ෦αʔϏεσβΠϯ෦%&(( ౻ݪ৻ଠ࿠BLB1$IBO APIʹͳΖ͏ FROKAN x UIT #2 - ೥๨ΕLT ότϧ

Slide 122

Slide 122 text

Ͱͨ͠

Slide 123

Slide 123 text

͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠