Slide 1

Slide 1 text

0QUJPOBM ೥ ͦͷޙ )JEFBLJ5BNBJ 1PUBUPUJQT+VMZ

Slide 2

Slide 2 text

ࣗݾ঺հ )JEFBLJ5BNBJ ɾ.POFZ'PSXBSE *OD ɾJ04ΞϓϦΤϯδχΞ ɾ͘͘͢͢ʂࢠҭͯΤϯδχΞ.FFUVQ UBNBEPO !UBNBEPO

Slide 3

Slide 3 text

IUUQTNPOFZGPSXBSEDPNFOHJOFFST@CMPHPQUJPOBM 0QUJPOBM ೥͚͋·͓ͯ͠ΊͰͱ͏͍͟͝·͢

Slide 4

Slide 4 text

͜ΕΛػʹXBSOJOHΛ๾໓͢΂͘ ౰ࣾJ04ΤϯδχΞ͕ ෦ॺΛӽ͑ͯऔΓ૊Έ·ͨ͠ ௨ৗͷػೳ։ൃͱฒߦͯ͠໿ϲ݄

Slide 5

Slide 5 text

Before

Slide 6

Slide 6 text

΍ͬͨ͜ͱͦͷ̍ 4XJGU-JOU "VUPDPSSFDU

Slide 7

Slide 7 text

Πϯσϯτͷௐ੔͚͔ͩͱࢥͬͯͨΒɺ ؆୯ͳwarning͸मਖ਼ͯ͘͠Εͨ func validate(_ input :(hoge: Fuga)) throws -> Void { func validate(_ input :(hoge: Fuga)) throws {

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

΍ͬͨ͜ͱͦͷ̎ γϡοͱ௚ͤͦ͏ͳXBSOJOHΛফ͢

Slide 10

Slide 10 text

- public final class Hoge: Fuga { + public class Hoge: Fuga { - network.request(request) { _ in } + _ = network.request(request) { _ in } ྫʣ͜͏͍͏΍ͭ

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

͋ͱ͸ͪͪ͘͘஍ಓʹ XBSOJOHΛͭͿ͍ͯͬͨ͠

Slide 13

Slide 13 text

ਏ͔ͬͨ΍ͭ

Slide 14

Slide 14 text

Ұ෦ͷϥΠϒϥϦ͕$PDPB1PET ܦ༝͡Όͳ͍ํ๏Ͱಋೖͯ͋͠Δ ʢେ൒͸$PDPB1PETܦ༝ʣ wͲͷόʔδϣϯΛ࢖ͬͯΔ͔෼͔Βͳ͍ͷͰ࠷৽ʹΞο ϓσʔτͨ࣌͠ͷӨڹൣғ͕ݟ͑ͣɺΞοϓσʔτ͠ ͯྑ͍ͷ͔ෆ໌ w͔͠΋Ұ෦ಠ࣮ࣗ૷Λ௥Ճͯ͠࢖ͬͯΔ΍ͭ΋͋Δ

Slide 15

Slide 15 text

ಠ࣮ࣗ૷Λ௥Ճͯ͠ͳ͍ ϥΠϒϥϦ wϥΠϒϥϦͷόʔδϣϯΛίϛοτϩά͔Βਪଌ ͠ӨڹൣғΛௐࠪ w$PDPB1PETʹҠߦ

Slide 16

Slide 16 text

ಠ࣮ࣗ૷Λ௥Ճͯ͠Δ ϥΠϒϥϦ w൚༻తͳػೳ௥ՃͩͬͨͷͰɺϥΠϒϥϦΛGPSL͠ ͯຊՈʹQVMMSFRVFTUΛग़ͨ͠ wऔΓࠐ·Εͳ͔ͬͨϥΠϒϥϦ͸GPSLFESFQPTJUPSZ ͷϥΠϒϥϦΛ$PDPB1PETͰΠϯετʔϧ

Slide 17

Slide 17 text

After

Slide 18

Slide 18 text

Before

Slide 19

Slide 19 text

After Ϗϧυʹ͔͔Δ͕࣌ؒϝνϟ୹ॖ͞Εͨ XBSOJOH࡟আ͚ͩͰͳ͘ɺ4XJGUରԠ΍ ίϯύΠϧΦϓγϣϯͷมߋ΋ޮՌ͕͋ͬͨͱࢥΘΕΔ

Slide 20

Slide 20 text

࠷ޙͷXBSOJOH ՝ۚͷϨγʔτ͕J04ܗࣜ ˠݱࡏରԠத

Slide 21

Slide 21 text

XBSOJOHΛ૿΍͞ͳ͍ औΓ૊Έ

Slide 22

Slide 22 text

Ұྫ ɾϏϧυ࣌ʹ4XJGU-JOU"VUPDPSSFDU࣮ߦ ɾϏϧυʹNTҎ্͔͔͍ͬͯΔॲཧͰXBSOJOH ɾ4JEFSʢNJTTQFMMʣಋೖ ɾ%BOHFSಋೖ

Slide 23

Slide 23 text

·ͱΊ w ݹ͔͘Βӡ༻͞Ε͍ͯΔϓϩμΫτͰ΋ؤுͬͯऔΓ૊Ί͹ɺXBSOJOHΛ ΄΅̌ʹग़དྷΔ w Ϗϧυ୹ॖͷऔΓ૊Έ΋ग़དྷͯϏϧυ͕࣌ؒ෼෼·Ͱ୹ॖग़དྷͨ w ෦ॺΛ·͍ͨͰXBSOJOH๾໓ʹऔΓ૊ΜͩͷͰɺࣾ಺ͷJ04ΤϯδχΞ಺Ͱ XBSOJOH΍ϦϑΝΫλϦϯάʹର͢Δҙ͕ࣝߴ·ͬͨ w XBSOJOHΛݮΒͯ͠ຬ଍͢ΔͷͰ͸ͳ͘ɺ૿΍͞ͳ͍࢓૊Έͷߏங͕େࣄ

Slide 24

Slide 24 text

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