Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Swift Reflection

Swift Reflection

About Swift Reflection Pitch

[email protected]

January 20, 2023
Tweet

Other Decks in Programming

Transcript

  1. ϦϑϨΫγϣϯ 3FGMFDUJPO


    Θ͍Θ͍TXJGUD
    TIJ[

    View Slide

  2. ·ͩ1JUDIஈ֊ͷ৘ใͳͷͰมΘ
    ΔՄೳੑ͋Γ ͳ͘ͳΔՄೳੑ΋

    ࣌఺ͷ৘ใ

    View Slide

  3. ֓ཁ

    View Slide

  4. ϦϑϨΫγϣϯͱ͸ʁ
    w ϓϩάϥϜͷதͰͦͷϓϩάϥϜʹؚ·ΕΔܕ΍ม਺ϝιουͷϝλ৘ใΛ
    ࢀরૢ࡞Ͱ͖ΔΑ͏ʹ͢Δ࢓૊Έ
    w ݴޠઃܭࣗମΛมߋ͢Δ͜ͱͳ͘ɺݴޠΛ࣮ߦ࣌ʹಈతʹมߋͰ͖Δ
    ֓ཁϦϑϨΫγϣϯͱ͸ʁ
    IUUQTYUFDIOJLLFJDPNJUBSUJDMF,FZXPSE
    ˞ϝλ৘ใσʔλͦͷ΋ͷͰ͸ͳ͘ɺͦͷσʔλΛઆ໌͢Δ৘ใ ෇ଳ৘ใ

    σʔλ
    ϝλ৘ใ
    ໊લ
    ܕ৘ใ
    IUUQTXBJJJOGPXPSEIUNM

    View Slide

  5. .JSSPSTUSVDU
    w 4XJGUͰϦϑϨΫγϣϯΛ࣮ߦ͢ΔͨΊͷ"1*Λఏڙ͢ΔTUSVDU
    w 4XJGUFWPMVUJPOͷϓϩηε͕࢝·Δલ͔Β͋ͬͨݹ͍ػೳ
    ֓ཁ4XJGUͷϦϑϨΫγϣϯ .JSSPS

    ग़ྗ݁Ռ
    GJFME/BNF0QUJPOBM OBNF

    GJFME7BMVF4QBSLZ
    GJFME5ZQF4USJOH
    GJFME/BNF0QUJPOBM BHF

    GJFME7BMVF
    GJFME5ZQF*OU
    IUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOTXJGUNJSSPS

    View Slide

  6. .JSSPSͷ໰୊఺

    View Slide

  7. .JSSPSͰͰ͖ͳ͍͜ͱ
    .JSSPSͰͰ͖ͳ͍͜ͱ
    ϝλλΠϓ͔Βܕ৘ใ͕औಘͰ͖ͳ͍ DBTF໊Λऔಘ͢Δखஈ͕ͳ͍
    δΣωϦοΫҾ਺͔Β۩ମతͳϝλ৘ใΛऔಘͰ͖ͳ͍
    "OZ)BTIBCMFʹม׵Մೳ͔Θ͔Βͳ͍ͷͰΤϥʔ

    View Slide

  8. .JSSPSͰͰ͖ͳ͍͜ͱ
    w Πϯελϯε͕ͳ͍ͱܕ৘ใ͕Θ͔Βͳ͍
    w ந৅Խͨ͠ܕ͔Β࣮ࡍͷܕͷ৘ใΛऔΓग़ͤͳ͍
    .JSSPSͰͰ͖ͳ͍͜ͱ
    $VTUPN4USJOH$POWFSUJCMFʹ४ڌ
    ࣮͸ίϯύΠϥ͸
    ΋ͬͱ৭Μͳ͜ͱΛ஌͍ͬͯΔ

    View Slide

  9. ఏҊ಺༰
    IUUQTGPSVNTTXJGUPSHUQJUDISF
    fl
    FDUJPO

    View Slide

  10. 3FGMFDUJPOϞδϡʔϧ
    w ϦϑϨΫγϣϯΛ࣮ߦ͢ΔͨΊͷߴϨϕϧͷ"1*Λఏڙ͢ΔϞδϡʔϧ
    w طଘͷ.JSSPSΑΓ΋ϦϑϨΫγϣϯΛΑΓ؆୯ʹΑΓૢ࡞͠΍͘͢͢Δ
    w ։ൃऀ͸͜Ε·ͰΑΓ΋͔ͳΓଟ͘ͷϦϑϨΫγϣϯ৘ใΛऔಘͰ͖Δ
    ఏҊ಺༰3F
    fl
    FDUJPOϞδϡʔϧ

    View Slide

  11. .JSSPSΛ֦ு͠ͳ͍ཧ༝
    .JSSPS͸4XJGUϞδϡʔϧʹ͋ΔɻϦϑϨΫγϣϯ͸શͯͷ։ൃऀ͕ඞཁͳ
    ༁Ͱ͸ͳ͍ɻ4XJGUϞδϡʔϧ͸$PSFͷ"1*͚ͩஔ͘΂͖
    .JSSPSͷݱࡏͷઃܭ͸ɺࠓճఏҊ͍ͯ͠Δ"1*ͷઃܭʹ͸ͳ͍͍͔ͭ͘ͷύ
    ϑΥʔϚϯεͷ໰୊Λղܾ͢Δͷʹద͍ͯ͠Δɻ۩ମతʹ͸Πϯελϯεͷ
    ஋Λऔಘ͢Δ࣌ʹɺDIJMESFOͷϑΟʔϧυͷܕ΋ଈ࣌ʹ FBHBSMZ
    σϚϯάϧ
    ͢ΔɻࠓճͷఏҊͷ৔߹ɺҰͭͷܕ৘ใͷΈཉ͍͠৔߹͸஗Ԇͯ͠ MB[JMZ
    Ұ
    ͚ͭͩऔಘ͍ͨ͠έʔε͕͋ΔͷͰ߹͍ͬͯͳ͍
    ݹ͍"1*Ͱ4XJGUFWPMVUJPOͷϓϩηεΛܦ͍ͯͳ͍ɻࠓճɺ"1*ͷ࠷దͳܗ
    Λݟ͚ͭΔͨΊʹ΋ίϛϡχςΟͷϑΟʔυόοΫΛ΋Β͏ػձΛઃ͚Δ
    ఏҊ಺༰3F
    fl
    FDUJPOϞδϡʔϧ.JSSPSΛ֦ு͠ͳ͍ཧ༝

    View Slide

  12. ར༻Πϝʔδ
    ఏҊ಺༰3F
    fl
    FDUJPOϞδϡʔϧར༻Πϝʔδ
    3F
    fl
    FDUJPOϞδϡʔϧΛJNQPSU
    ϝλ৘ใ͔Β5ZQFܕΛ࡞੒
    ϑΟʔϧυ͔Β৭ʑͳ৘ใΛऔಘͰ͖Δ

    View Slide

  13. ར༻Πϝʔδ
    ఏҊ಺༰3F
    fl
    FDUJPOϞδϡʔϧར༻Πϝʔδ
    $BTFܕΛੜ੒
    ϓϩύςΟ͔Β৭ʑͳ৘ใΛऔಘͰ͖Δ

    View Slide

  14. ར༻Πϝʔδ
    ఏҊ಺༰3F
    fl
    FDUJPOϞδϡʔϧར༻Πϝʔδ
    δΣωϦοΫҾ਺ͷ৘ใΛऔಘ
    Կ͔ͷ"SSBZͰ͋Δ͔͚ͩΛݟ͍ͯΔ
    %JDUJPOBSZͰ͋Δ͔͚ͩΛݟ͍ͯΔ

    View Slide

  15. ࣮૷ৄࡉ
    ఏҊ಺༰࣮૷ৄࡉ

    View Slide

  16. ఏҊ಺༰࣮૷ৄࡉܕҰཡ
    5ZQFTUSVDU
    3F
    fl
    FDUJPOϞδϡʔϧͷϝΠϯΤϯτϦϙΠϯ
    τɻBTͷӈଆʹॻ͚Δ͋ΒΏΔܕΛද͢͜ͱ͕
    Ͱ͖Δ
    'JFMETUSVDU
    TUSVDUͷ֨ೲϓϩύςΟ
    DMBTTͷ֨ೲϓϩύςΟ
    λϓϧͷݸʑͷཁૉ
    $BTFTUSVDU FOVNͷݸʑͷDBTF
    1BSUJBM5ZQFTUSVDU (FOFSJDͳܕͷϥοϓ͍ͯ͠Δ෦෼
    ྫ"SSBZ*OUͷ"SSBZ
    ܕҰཡ

    View Slide

  17. 5ZQFTUSVDU
    w 3F
    fl
    FDUJPOϞδϡʔϧͷϝΠϯΤϯτϦϙΠϯτ
    w 4XJGUͰBTͷӈଆʹॻ͚Δ͋ΒΏΔܕΛද͢͜ͱ͕Ͱ͖Δ
    ఏҊ಺༰࣮૷ৄࡉ5ZQFTUSVDU
    4XJGUͷϝλλΠϓʹ࠶ͼม׵

    View Slide

  18. 'JFMETUSVDU
    w TUSVDU·ͨ͸DMBTTʹ֨ೲ͞ΕͨϓϩύςΟɺ·ͨ͸λϓϧͷཁૉ
    ఏҊ಺༰࣮૷ৄࡉ'JFMETUSVDU

    View Slide

  19. $BTFTUSVDU
    w FOVNͷDBTFͷҰͭΛද͢
    ఏҊ಺༰࣮૷ৄࡉ$BTFTUSVDU

    View Slide

  20. 1BSUJBM5ZQFTUSVDU
    w (FOFSJDͳܕͷϥοϓ͍ͯ͠Δ෦෼Λද͢
    ఏҊ಺༰࣮૷ৄࡉ1BSUJBM5ZQFTUSVDU

    View Slide

  21. WBSQBSUJBM1BSUJBM5ZQF \HFU^
    ఏҊ಺༰࣮૷ৄࡉ1BSUJBM5ZQFTUSVDU

    View Slide

  22. GVODDSFBUF XJUI5ZQF
    5ZQF
    ఏҊ಺༰࣮૷ৄࡉ1BSUJBM5ZQFTUSVDU
    1BSUJBM5ZQF͔Β৽͍͠4XJGUͷܕͷΠϯελϯε΋ੜ੒Ͱ͖Δ
    <*OU 4USJOH %PVCMF "SSBZ'MPBU>
    "*OU #4USJOH $%PVCMF %"SSBZ'MPBU
    δΣωϦοΫҾ਺ͷํ͸֎ଆ͔Β౰ͯ͸ΊΒΕΔ

    View Slide

  23. কདྷͷݕ౼ࣄ߲
    ఏҊ಺༰কདྷͷݕ౼ࣄ߲

    View Slide

  24. 3VOUJNFϞδϡʔϧ
    ఏҊ಺༰কདྷͷݕ౼ࣄ߲3VOUJNFϞδϡʔϧ
    w ϦϑϨΫγϣϯػೳΛఏڙ͢ΔͨΊʹ͸4XJGU3VOUJNFͷϧʔνϯ΍σʔλ
    ߏ଄͕ඞཁ͕ͩɺ΄ͱΜͲͷ։ൃऀ͸͜͏͍ͬͨػೳΛ௚઀ૢ࡞͢Δ͜ͱ͸
    ͳ͍
    w ͦ͜Ͱ3VOUJNFͱ௨৴͢Δઐ༻ϞδϡʔϧΛઃ͚͔ͯͳΓ௿Ϩϕϧͷ"1*Λఏ
    ڙ͢Δ

    ྑ͍͜ͱ
    w 3F
    fl
    FDUJPOϞδϡʔϧͷΑ͏ͳߴϨϕϧͷ"1*Λߏங͠΍͘͢Δ
    w ௿Ϩϕϧͷػೳͷ࠶࣮૷͢Δ͜ͱͰѱ༻Ͱ͖ͳ͍Α͏ʹ͢Δ

    View Slide

  25. ΑΓଟ͘ͷϦϑϨΫγϣϯ৘ใͷఏڙ
    ఏҊ಺༰কདྷͷݕ౼ࣄ߲ΑΓଟ͘ͷϦϑϨΫγϣϯ৘ใͷఏڙ
    w ଐੑ΍ؔ਺ɺܭࢉϓϩύςΟ DPNQVUFEQSPQFSUZ
    ͷ৘ใ͸औಘͰ͖ͳ͍
    w ఏڙͰ͖Δ͕ίʔυαΠζ͕૿͑ΔͷͰίετͱൺֱͯ͠ݕ౼͢Δ

    View Slide

  26. ؔ࿈ػೳ
    ؔ࿈ػೳ

    View Slide

  27. 0QU*O3FGMFDUJPO.FUBEBUB
    w 3F
    fl
    FDUBCMFͱ͍͏৽͍͠ϚʔΧʔϓϩτίϧΛ௥Ճͯ͠ίϯύΠϧ࣌νΣο
    ΫͰ͖ΔΑ͏ʹͯ͠ɺϦϑϨΫγϣϯϝλσʔλ ໊લͳͲͷจࣈྻ৘ใ
    ΛΑ
    Γܕ҆શͰηΩϡΞʹѻ͑ΔΑ͏ʹ͢Δ
    w ඞཁͳ΋ͷʹ͚ͩϦϑϨΫγϣϯσʔλΛग़ྗ͢ΔͷͰόΠφϦαΠζΛޮ
    ཰ԽͰ͖Δ
    w ϦϑϨΫγϣϯϝλσʔλͷग़ྗΦϑʹͯ͠͠·͍ ͦ͏͍͏ϑϥά͕͋Δ
    ɺ
    ͜ΕΛ࢖͍ͬͯΔػೳ͕ಈ͔ͳ͘ͳΔͱ͍͏ϦεΫ͕ͳ͘ͳΔ 4XJGU6*ͳͲ

    ؔ࿈ػೳ0QU*O3F
    fl
    FDUJPO.FUBEBUB
    IUUQTGPSVNTTXJGUPSHUTFPQUJOSF
    fl
    FDUJPONFUBEBUB

    View Slide

  28. $VTUPN.FUB"UUSJCVUFT
    w ϥΠϒϥϦͰΧελϜͷϝλσʔλΛఆٛͰ͖Α͏ʹ͢ΔɻͦΕΛ࣮ߦ࣌ʹ
    ୳ͯ͠Կ͔Ͱ͖ΔΑ͏ʹ͢Δ
    w ৽͍͠!SVOUJNF.FUBEBUBΛ௥Ճ
    w ͜ͷଐੑ͕෇͍ͨܕ͸ΧελϜଐੑͱͯ͠࢖༻Ͱ͖Δ ௥ՃͷҾ਺΋ࢦఆͰ͖
    Δ

    w ϦϑϨΫγϣϯ"1*ͰಛఆͷΧελϜଐੑ͕෇͍ͨ͢΂ͯͷએݴΛऩूͰ͖Δ
    w Ϣʔεέʔεಛఆͷଐੑͷ෇͍ͨςετͷΈΛ࣮ߦ͢ΔͳͲ
    IUUQTGPSVNTTXJGUPSHUQJUDIDVTUPNNFUBEBUBBUUSJCVUFT
    ؔ࿈ػೳ$VTUPN.FUB"UUSJCVUFT

    View Slide