「『Swift実践入門』刊行記念 Tech Talks」での発表資料です。
https://connpass.com/event/50546/
ʰ4XJGU࣮ફೖʱ ੍࡞ͷཪҴඌঘಙ8%#13&44ฤू෦ʢٕज़ධࣾʣʰ4XJGU࣮ફೖʱץߦه೦5FDI5BMLT
View Slide
લఏ͜͜ʹ͍Βͬ͠ΌΔΑ͏ͳษڧ৺ͳํʑɺࣥ͝චऀʹͳΓ͏Δํʑͩͱࢥ͍·͢ͷͰɺͦͷલఏͰ͓͍͖ͤͯͨͩ͞·͢
ͲΜͳࡶࢽɾॻ੶Λ ࡞͍ͬͯΔ͔ ʢࣗݾհʹ͔͑ͯʣ
8%#13&44wץͷִ݄ࢽw7PMຊൃചʂwདྷि7PMͷاըձٞ
8%#13&44QMVTwץߦ։࢝wطץ
γϦʔζۙץධൃചத݄ൃച༧ఆ
੍࡞ڥ
ओͳπʔϧw(JU)VCͰݪߘཧwNEJOBPͰݪߘςΩετͷมw"EPCF*O%FTJHOͰࢴ໘ϨΠΞτwDPEFHFOTXJGUͰαϯϓϧίʔυநग़ ʢຊॻ༻ͷ৽ฌثʣ
(JU)VCͰݪߘཧwஶऀͱฤूऀ͕͏wه๏.BSLEPXOwͦΕͧΕͷ࡞ۀɺ8*1ʢ8PSL*O1SPHSFTTʣͳ 1VMM3FRVFTUΛग़ͯ͠ߦ͏૿ʢະఆʣʹ ͚ͯݱࡏਐߦதͷ1VMM3FRVFTU
NEJOBPͰݪߘͷมwฤूऀ͕͏w.BSLEPXOͰॻ͔ΕͨݪߘΛɺ8%#13&448%#13&44QMVT༻ͷ*O%FTJHOλά͖ςΩετʹม͢Δw ݟग़͠ɺຊจɺऍͳͲͷจࣈؔΛࣗಈϨΠΞτw ը૾ɺදͳͲͷผΦϒδΣΫτͷखಈw!OBPZB͞Μɺ!IPLBDDIB͞Μɺ!UZQFTUFS͞ΜΒ࡞wࣗͰ໊͚ͨΘ͚Ͱͳ͍Ͱ͢
"EPCF*O%FTJHOͰ ࢴ໘ϨΠΞτwϨΠΞτ୲ऀ͕͏͜ͷϖʔδʹਤද͕ͳ͍ͷͰɺ*O%FTJHOλά͖ςΩετΛ ྲྀ͠ࠐΊ΄΅ϨΠΞτྃ
͜͜·Ͱͷπʔϧʹ͍ͭͯৄ͘͠ɺ ͷ(JU)VC,BJHJͰͷൃදࢿྉ ʮ(JU)VCͰࡶࢽɾॻ੶Λ࡞ΔʯΛ͝ཡ͍ͩ͘͞IUUQXXXTMJEFTIBSFOFUJOBPHJUIVCLBJHJ
DPEFHFOTXJGUͰίʔυநग़wஶऀͱฤूऀ͕͏wຊॻ༻ʹஶऀ͞Μ͕৽։ൃwίϚϯυҰൃͰɺݪߘςΩετ͔ΒίʔυΛൈ͖ग़͠ɺ༻ͷ1MBZHSPVOEϑΝΠϧΛੜ͢ΔwશମͰͷίʔυย͕͋ΔͨΊɺखಈͩͱϛε͕ൃੜ͢Δwಈ࡞֬ೝͰ͖ΔͨΊɺࢴ໘ͷ্࣭ʹ׆༂
͜Μͳײ͡Ͱɺষ͝ͱͷ1MBZHSPVOEϑΝΠϧΛɺ ίʔυย͝ͱʹϖʔδΛ͚ͯੜͯ͘͠ΕΔ
ץߦ·Ͱͷཪ
ϑΣʔζwاըwࣥචw૬ޓϦϥΠτwฤूw੍࡞
اըͷਐΊํwίϯηϓτɺରಡऀɺରൣғͳͲΛݻΊΔwৄࡉͳΞτϥΠϯʢ࣍ʣʹམͱ͠ࠐΉʮରಡऀͷ͏ͪҰ൪લఏࣝͷͳ͍ํ͕ɺ ɹΞτϥΠϯΛಡΉ͚ͩͰɺຊॻͷετʔϦʔΛ ɹཧղͰ͖ΔΑ͏ʹ͍ͯͩ͘͠͞ʯ
اըεέδϡʔϧwɿΩοΫΦϑwɿΞτϥΠϯܾఆϲ݄ؒݟग़͠ʢץߦ࣌ʣ
ࣥචͷਐΊํw!JTILBXB͞Μɺલͷجຊষ͔Βॻ͘w!ZVTFJOJTIJZBNB͞Μɺޙͷ࣮ફষ͔Βॻ͘ʮಡऀͷํ͕ιʔείʔυදͳͲΛಡΈඈͯ͠ɹຊจ͚ͩΛಡΜͰɺେҙ͑ΔΑ͏ʹॻ͍ͯ ɹ͍ͩ͘͞ʯ
ࣥචεέδϡʔϧwɿࣥචελʔτwɿશষߘϲ݄͓ؒҰਓ͋ͨΓ݄ষϖʔε
͔͜͜Β͕ຊ൪ຊॻͰɺ͔͜͜ΒͷϒϥογϡΞοϓʹ ྗΛ͗·ͨ͠ߘ ॳߍೖߘ
૬ޓϦϥΠτͷਐΊํw୲ষΛަͯ͠૬ޓϦϥΠτΛߦ͏w ڞஶʹΑΔσϝϦοτΛͳͨ͘͢Ίw આ໌ͷաෆɺ༻ޠͷෆ౷Ұɺจମͷ૬ҧwࣥචऀຊਓ͡Όͳ͍ͱमਖ਼Ͱ͖ͳ͍ͷɺ*TTVFԽ͢ΔwϨϏϡϫʔͷํʹΑΔϨϏϡʔฒߦͯ͠ߦ͏ʮଞਓͷจষΛมߋ͢Δͷؾ͕ͻ͚Δ͔ͱɹࢥ͍·͕͢ɺࣗ͝ͷจষΛਪᏏ͍ͯ͠Δͱɹ͓ࢥ͍ʹͳͬͯϦϥΠτ͍ͯͩ͘͠͞ʯ
૬ޓϦϥΠτͷεέδϡʔϧwɿ૬ޓϦϥΠτɺϨϏϡʔελʔτwɿ૬ޓϦϥΠτɺϨϏϡʔྃwɿϑΟʔυόοΫͷରԠྃϲ݄ؒ
ฤूͷਐΊํw૬ޓϦϥΠτͱಉ༷ʹɺϦϥΠτߦ͏wෳষʹؔΘΔϑΟʔυόοΫɺ*TTVFԽ͢Δwͦͷষݻ༗ͷϑΟʔυόοΫɺݪߘதʹ˒Ͱׅͬͯίϝϯτ͢Δw ˒˓˓ͳͲͷ˒ϥΠϒϥϦ͕͋Γ·͢ɻw ˒ͳͥɺ☓☓ͳͷ͔͕ͪΐͬͱΘ͔Γ·ͤΜͰͨ͠˒
ฤूεέδϡʔϧwɿฤू෦ߍਖ਼ελʔτwɿฤू෦ߍਖ਼ྃwɿฤू෦࠶ߍਖ਼ྃw શମతʹେ͖͘มΘͬͨͷͰ͏Ұw ߘ࣌ʹൺɺഒɺϖʔδ૿͍͑ͯͯযΔwɿฤू෦࠶ʑߍਖ਼ྃw 4XJGUରԠɺඇॏཁ߲ͷআͳͲͨͨ͠ΊࠩΛ֬ೝϲ݄ؒʢ4XJGU߹Θͤʹมߋͨͨ͠Ίͱɺح݄ ɹࡶࢽͷ࡞ۀΛ͍ͯ͠ΔͨΊΏͬ͘Γϖʔεʣ
੍࡞ͷਐΊํw*O%FTJHOͰ࡞ͬͨຊ൪ήϥͷஶऀ͝ߍਖ਼݁Ռɺ͜Ε·ͰͲ͓Γ1VMM3FRVFTUͰΒ͏wͦΕΛϨΠΞτ୲ऀʹ͑ΔͷೖΕͰw͜ͷஈ֊Ͱͷมߋ࡞ۀϛε͕ൃੜ͍͢͠ͷͰɺ ฤूஈ֊ͰۃྗΫΥϦςΟΛ্͓͛ͯ͘ʮʯͱ͔ ࠩςΩετͷ൪߸
੍࡞εέδϡʔϧwɿॳߍwɿ೦ߍʢෳճʣwɿҹॴೖߘʂϲ݄ؒ
ࣈͰΞϐʔϧ͜ͷຊɺΑΓྑ͍ຊΛࢦͯ͠ ΈΜͳͰྗΛ߹ΘͤͯΛ͔͚ա͗ ͘Β͍͔͚ͯ࡞ͬͯ͠·͍·ͨ͠ͷͰɺ ʮ͕ΜͬͨΞϐʔϧʯΛ͍ͤͯͩ͘͞͞
(JU)VCwίϛοτɿ w1VMM3FRVFTUɿw*TTVFɿߘ ॳߍೖߘ
ϛʔςΟϯάͱΧϯρϝwϛʔςΟϯάɿճw ͍͍݄ͩͨҰ͘Β͍wΧϯρϝɿճw ༧ఆΑΓΕ͕ੜͨ͡ͱ͖ʹߦ͏w େஶऀ͞Μ͓ೋਓͰɻͨ·ʹશһͰw ʮ૭ͷͳ͍ձٞࣨͰͰ͔͢ʁʯ
ʮ*TTVFରԠɺ˒ରԠɺಈ࡞֬ೝͰ ͓ೋਓͦΕͧΕ͔͔࣌ؒΔ ͱ͍͏ݟੵΓͰ͢Ͷɻٳ࣌ؒɺฏຖ࣌ؒɺ࡞ۀ͍ͯͩ͘͠͞ʯ ͳͱ͖ͷϗϫΠτϘʔυ
ߍਖ਼wॴཁ࣌ؒɿ࣌ؒw ࡞ۀw ͋ͨΓ࣌ؒwϑΟʔυόοΫʢ˒*TTVFʣɿ ʢલड़ͨ͠ฤूϑΣʔζͰͷͷͰ͢ɻߘஈ֊ॳߍ ɹҎޙͷͷɺܭଌͯ͠ͳ͍ͷͰؚ·Ε͍ͯ·ͤΜʣ
·ͱΊ
͓ೋਓ͔ͩΒͦ͜ɺ͏·͍ͬͨ͘wࣄલʹ໘ࣝͳ͠w ஶऀ͞ΜͲ͏͠ɺஶऀ͞Μͱฤूऀwϲ݄ؒͱ͍͏ظϓϩδΣΫτw͜͜·Ͱઆ໌͖ͯͨ͠Α͏ͳաෛՙw͝స৬ɺ͓ࢠ༷ͷੜɺظग़ுɺւ֎సۈͳͷʹɺ͔ͤͬ͘ͷٳʹɺ૭ͷͳ͍ձٞࣨͰͷ ΧϯρϝதͰ͋ͬͯɺݥѱͳงғؾʹͳͬͨΓ ͨ͜͠ͱҰ͋Γ·ͤΜͰͨ͠☺
4XJGUͷఆ൪ॻΛࢦ͍ͨ͠վగΛॏͶͳ͕ΒɺѪ͞ΕΔ4XJGUͷఆ൪ॻʹͳΔ͜ͱΛඪʹ͍ͯ͠·͢ɻͰɺॳ൛͕ͪΌΜͱചΕͳ͍͜ͱʹɺվగͰ͖·ͤΜɻͥͻɺ͝ߪಡ͍ͩ͘͞ɻͦͯ͠ྑ͍ຊͰͨ͠ΒɺपғͷํʹקΊ͍ͯͩ͘͞ʂ
͝੩ௌ͋Γ͕ͱ͏ ͍͟͝·ͨ͠