w ϓϩάϥ
ϛϯάʹ͓͚Δֶͷ֓೦ɺ
ղऍΛҙຯ͢Δ
w खଓ͖ܕϓϩάϥ
ϛϯά
w ΦϒδΣΫ
τࢦϓϩάϥ
ϛϯά
w ؔܕϓϩάϥ
ϛϯά
ϓϩάϥϛϯά
ɾ
ύϥμΠϜ
Slide 13
Slide 13 text
w ࣌ͷਐߦ
w ٕज़ͷਐาɺ
ٕज़త੍͔Βͷղ์
w ࣏తͳࣄ
w աڈͷผݴޠͷলͱվળ
ͳͥݴޠෳ͋Δͷ͔
Slide 14
Slide 14 text
w +BWB4DSJQU
w खଓ͖ܕɺ
ΦϒδΣΫ
τࢦͳͲ
w 5ZQF4DSJQU
w ؔܕɺ
δΣωϦ
οΫͳͲ
͋ͳͨͷಘҙͱ͢Δݴޠ
ʁ
Slide 15
Slide 15 text
w ύϥμΠϜ࣍ʑ
ͱฤΈग़͞ΕΔ
w ࣗͷۀ্ѻ͍ͬͯΔݴޠͷΈ͔͠৮͍ͬͯͳ͍ͱɺ
৽͍͠ύϥμΠϜʹ৮ΕΔػձ͕ͳ͍
w ੵۃతʹଞͷύϥμΠϜʹ৮ΕͯΈΔ
w ղܾͷҾ͖ग़͠Λ͛Δ
ෆ׳ΕͳύϥμΠϜʹ৮ΕΔ
Slide 16
Slide 16 text
ϚϧνύϥμΠϜΛऔΓೖΕ࣮ͨྫ
Slide 17
Slide 17 text
w ֮͑ͨύϥμΠϜΛҋӢʹೖΕͳ͍
w खஈͷతԽආ͚Δ
w ΤϯδχΞͷࣗݾຬʹͯ͠ͳΒͳ͍
w ࠓճϚϧνύϥμΠϜʹ͖͢ͱड़͍ͨΘ͚Ͱͳ͍
w ղܾʹ͚ͨൃΛॊೈʹ͢ΔͨΊͷΤΫααΠζͰ͋Δͱଊ͑Δ
w έʔεόΠέʔεͰͷۛຯ͕ඞཁ
ҙ
Slide 18
Slide 18 text
w ܖʹΑΔઃܭɺ
%FTJHOCZ$POUSBDU
%C$ͱ
w ͋Δϝ
ιο
υΛݺͿͱ͖ɺ
ݺͿଆͰอূ͖͢ෆม݅ɺ
ࣄલ͕݅ຬͨ͞ΕΔ
w Ͱ͋Ε
w ͦͷϝ
ιο
υͷऴྃ࣌ʹอূ͖͢ෆม݅ɺ
ࣄޙ͕݅ຬͨ͞ΕΔ
w ࣮ͷޡΓͳͷ͔ɺ
ϝ
ιο
υΛ͏ଆͷޡΓ͔ΛϋοΩ
Ϧͤ͞Δ
ܖϓϩάϥϛϯά
Slide 19
Slide 19 text
w console.assert() + unassertJOWBSJBOU͕Φεεϝ
`npm i invariant`
w ಋೖ؆୯
w ܖϓϩάϥ
ϛϯάͷશ࠶ݱͰ͖ͳ͍͕
ʮ࣮ͷޡΓͳͷ͔ɺ
ϝ
ιο
υΛ͏ଆͷޡΓ͔ΛϋοΩ
Ϧͤ͞Δʯ
Λڗड͢ΔͨΊͷΞϓϩʔν
w +BWB4DSJQU։ൃʹ͓͍ͯޚతϓϩάϥ
ϛϯάɺ
ૣظϦλʔϯͳͲ
ࣝͱͯ͠༗༻
"OHVMBSͳΒ
Slide 20
Slide 20 text
w ԣஅతؔ৺ࣄ
ʢΞεϖΫ
τʣ
Λڞ௨Խ࣮ͯ͠ߦ͢ΔͨΊͷϓϩάϥ
ϛϯάख๏
w ༗໊ͳྫͱͯ͠ϩάग़ྗ
w ͋ΒΏΔϞδϡʔϧɺ
͋ΒΏΔϝ
ιο
υͰϩάͷग़ྗ༗༻
w ͨͩ͠ɺ
ͦΕΒͯ͢ʹϩάग़ྗ༻ͷίʔ
υ͕ॻ͔Ε͍ͯͨΒ
ຊʹॏཁͳॲཧΛࣔ͢ίʔ
υ͕ຒΕͯ͠·
͏
w ෭࣍తͳॲཧԣஅతؔ৺ࣄΛ͠ຒΕͳ͍Α
͏ʹ͢Δख๏
ΞεϖΫ
τࢦϓϩάϥϛϯά
Slide 21
Slide 21 text
w "OHVMBS։ൃऀʹ͓ͳ͡Έɺ
%FDPSBUPSΛ͏
w Ϋϥε໊ϝ
ιο
υ໊ͷ্ʹ%FDPSBUPSͱͯͨؔ͠͠Λهड़
wʮϩάΛग़ྗͤΑʯ
ͱ͍͏ॲཧ%FDPSBUPS෦ʹӅṭͭͭ͠ϩάग़ྗΛୡ
w %FDPSBUPSॲཧͰ
1SPYZύλʔϯ (P'
Ϧ
ϑ
ϨΫγϣϯ
ɾ
ϓϩάϥ
ϛϯάͳͲͷख๏͕༗༻
w ௐࢠʹͬͯΓ͗͢ΔͱͨͩͷಡԽ
"OHVMBSͳΒ
w ෭࡞༻Λ༻͍ͣʹҾ
ʢೖྗʣ
ͱΓ
ʢग़ྗʣ
ΛͬͨؔΛ
͍ͭ͘Έ߹ΘͤΔ͜ͱͰॲཧΛ࣮ݱ͢Δख๏
w +BWB4DSJQUɺ
ୈҰڃؔΛѻ͑ΔͷͰ࠶ݱ͍͢͠
w ؔΛ͍ͭ͘Έ߹ΘͤΔͱ͍͏Ͱ3Y+4Ͱ͓ͳ͡Έ
w ͪͳΈʹ3Y+4ϦΞΫςΟ
ϒϓϩάϥ
ϛϯάɺ
એݴܕϓϩάϥ
ϛϯά
ͳͲͷύϥμΠϜͷ࣮ݱͰ͋Γɺ
ؔܕϓϩάϥ
ϛϯάͰͳ͍
ؔܕϓϩάϥϛϯά
Slide 24
Slide 24 text
w ܕΛύϥϝʔλͱͯ͠ѻ͏
͜ͱͰɺ
ಛఆͷܕʹґଘ͠ͳ͍࣮͕ՄೳʹͳΔ
ϓϩάϥ
ϛϯάख๏
w 5ZQF4DSJQUʹ͓͍ͯArrayPromiseͳΒຖ͍ͬͯΔͣ
δΣωϦ
οΫ
ɾ
ϓϩάϥϛϯά
Slide 25
Slide 25 text
w 0QUJPO&JUIFSͱ͍ͬͨؔܕݴޠ )BTLFMM
4DBMBͳͲ
ͷٕज़Λഈआ
w 0QUJPOͱ
ʮ͕͋Δ͔ແ͍͔Λද͢ܕʯ
w &JUIFSͱ
ʮͭͷ͏
ͪͲͪΒ͔Λද͢ܕʯ
ؔܕ
ɾ
δΣωϦ
οΫΛΈ߹Θͤͯ
Slide 26
Slide 26 text
w ௐࢠʹ͍͖ͬͯͳΓ
ʮϞφ
υΔͧʔʯ
ͱ͔ݴ͍ग़ͤେମҾ͔ΕΔ
w ؔܕݴޠ͕ԿΛࠀ͘͢0QUJPO&JUIFSΛ࣮͍ͯ͠Δͷ͔Λཧղ͢Δ
w ྫ͑getOrElse()ͷߟ͑ํͳͲೲಘ͞Ε͘͢ಋೖ͍͢͠
։ൃνʔϜͷཧղΛಘΔ
Slide 27
Slide 27 text
w ٸͳ༷มߋͰɺ
5ZQF4DSJQUͷܕ͚͚ͩͰݫ͍͠Օॴ͕Ͱ͖ͯͨͱ͖
w EitherܕͰॲཧΛେ෯ʹม͑ͣʹରԠͰ͖ͳ͍ͩΖ͏͔
w 5ZQF4DSJQUʹstrictNullChecks͕͋Δ͕ສશͰͳ͍
w JGจΛڧཁͯ͘͠
Δ͋ͨΓ
w undefined, nullରࡦͷΞϓϩʔνͱͯ͠ࣄΛ͓ͬͯ͘
ͱΑ͍
ٸసʹඋ͑Δ
Slide 28
Slide 28 text
ϑϩϯ
τΤϯ
υ
ɾ
ΤϯδχΞͷ
ଞݴޠͱͷ͖߹͍ํ
Slide 29
Slide 29 text
wʮϑϩϯ
τΤϯ
υ
ɾ
ΤϯδχΞ͔ͩΒ+BWB4DSJQU
5ZQF4DSJQUֶͳ͘
ͪΌʜʯ
wʮ)5.-$44Βͳ͍ͱʜʯ
w ͪΖΜͦΕେࣄ
w ҰํͰɺ
ΤϯδχΞͱͯ͠ͷࢹΛ͛Δ͜ͱେࣄ
ϑϩϯ
τΤϯ
υ
ɾ
ΤϯδχΞͱ
ͯ͠
Slide 30
Slide 30 text
wʮ͜ͷݴޠͰ+4Ͱى͜
Γ͕ͪͳΛ͜͏ͬͯղܾͯ͠Δͷ͔ʯ
w ˠ+4ͰࣅͨΑ
͏ͳΞϓϩʔνͰղܾ͍ͯ͠ΔϥΠ
ϒϥ
Ϧ͕͋Δ
ʂ
wʮ࠷৽ͷݴޠʹ͋ͬͨ˓˓ߏจɺ
+4ʹཉ͍͠ͳʔʯ
w ˠ5$ͷϓϩϙʔβϧʹ͏ग़ͯΔ
ʂ
w ͱ͍ͬͨɺ
+BWB4DSJQUք۾ΩϟονΞοϓʹ͓͚ΔΞϯςφͷຊ͕૿͑
ൃݟ͕༰қʹͳΓɺ
ڻ͔ͳ͘
ͯࡁΉ
ଞݴޠֶशͷར
Slide 31
Slide 31 text
w ΩϟονΞοϓͷযΓɺ
ྲྀߦϥΠ
ϒϥ
Ϧͷܯռɺ
ϑ
ϨʔϜϫʔΫϓϩϨεͷউഊʜ
w ͜Εࠣࡉͳ͜ͱ
w ߄ͯΔ͜ͱͳ͍
w ຊ࣭తͳղܾखஈԿͳͷ͔Λߟ͑Δ
w ྺ࢙ʹֶͿ
w ύϥμΠϜʹֶͿ
߄ͯͳ͍ͨΊʹ