「プロを目指す人のためのRuby入門」輪読会グループより参加
ϑΟϤϧυϒʔτΩϟϯϓ🎍৽य़ྠಡձ&910🎍3VCZຊ ೖʙνΣϦʔຊྠಡձνʔϜ1BSVˍIBSVHVDIJ.BFEB
View Slide
͜ͷྠಡձʹ͍ͭͯ։࠵01 ฏຖʙ࣌ॴ02EJTDPSEͷྠಡձϘΠενϟϯωϧରऀ033VCZͷֶशظؒΘͣ04ݱࡏ05 νΣϦʔ🍒ຊୈষϞδϡʔϧϝϯόʔ ໊
͜ͷྠಡձͷಛ࠷ۙϑΟϤϧυϒʔτΩϟϯϓʹ͝ࢀՃͷํɾ͜Ε͔Β3VCZΛֶͿํେܴʂϥδΦࢀՃɾࠁૣୀɾ୯ൃࢀՃɺͦͷଞͳΜͰ0,ʂ༗ΓͰͷ͝ࢀՃͰɺਐߦυϥΠόʔಡΈखൃݴͷॱ൪͕དྷͯԿճͰ͝ԕྀແ͘ύε0,ʂ
ɾྠಡձͬͯͲΜͳงғؾʁɾࢀՃ͢ΔͱͲΜͳޮՌ͕͋ΔʁྠಡձϝϯόʔͷΛΞϯέʔτܗࣜͰूΊ͖ͯ·ͨ͠ɻࠓճͦͷूܭ݁ՌΛݟͳ͕Βɺྠಡձͷྑ͞Λ͓͠͠·͢ɻ
͜ͷΞϯέʔτͷ֓ཁର01 3VCZຊྠಡձϝϯόʔճ0203࣮ࢪظؒ dͷؒ࣍ͷεϥΠυ͔ΒΞϯέʔτ݁ՌΛ͝Ҋ͠·͢ɻϝϯόʔ͔ΒدͤΒΕͨશͯͷΛܝࡌ͠·ͨ͠ʂ
ຊΛਓͱҰॹʹಡΉ͜ͱͰɺͲΜͳྑ͍͜ͱ͕͋Δͷ͔͔Βͳ͔ͬͨྠಡͱ͍͏ݴ༿͢ΒΒͳ͔ͬͨ༏लͳਓ͕ͨͪدͬͯूͬͯࣝΛߴΊ͍ͯΔ࣮ྗ͕ࣝͳ͍ͱͦͷʹډͮΒͦ͏͔͜͠·ͬͨɺܕ͍ۤ͠ΠϝʔδͰͨ͠ɻࣗΈ͍ͨʹԿͷࣝͳ͍ਓ͕ߦ͍͍ͬͯΜͩΖ͏͔ʁྠಡձͬͯԿʙʁͱ͍͏ΠϝʔδԿਓ͔ͷਓ͕%JTDPSEͷͱ͋Δνϟϯωϧʹू·͍ͬͯΔɺࠓͬͯΔͳʙɻͱ͍͏Πϝʔδ͍͖ͳΓೖΔͱͼͬ͘Γ͞ΕΔͩΖ͏͔ΒɺԿ͔͖͔͚͕ͬ͋Εͳʙɻͱ͍͏Πϝʔδ಄ͷྑ͍ਓɾཧղ͕ਐΜͰ͍Δਓ͕ࢀՃ͢Δͷؒײ͕ڧ్ͯ͘த͔ΒࢀՃͮ͠Βͦ͏Ϩϕϧ͕ߴͦ͏Ͱ͍͍͚ͭͯͳ͍͔ҙݟΛٻΊΒΕͯԿݴ͑ͳͦ͞͏Ͱා͍ϫΠϫΠͱͨ͠งғؾͰ͋Δ͕ɺ͖ͪΜͱ3VCZֶΜͰ͍͘ͱ͍͏Πϝʔδɻʢτϛʔ͞Μ͕ओ࠵͞Ε͍ͯͨνΣϦʔຊྠಡձͷΠϝʔδɻʣྠಡձͬͯԿΛ͢Δձͳͷ͔ɺͲ͜Ͱ͍ͭ։࠵͞Ε͍ͯΔͷ͔ɺԿݟ͑ͳ͍ಾͷձͩͳʙͱࢥ͍ͬͯ·ͨ͠🤔 ಡΉਓ͕༰ΛΈΜͳʹઆ໌͢ΔʢͳͷͰຊͷ༰Λཧղ͍ͯ͠ͳ͍ͱ͍͚ͳ͍ʣΑ͏ͳײ͔͡ͱࢥͬͯෑډ͕ߴ͘ײ͍ͯ͡·ͨ͠ɻ Ͱ͍͟ࢀՃͯ͠ΈΔͱɺຊʹॻ͍ͯ͋Δ༰ΛΈΜͳͰߟ͍͑ͯ͘ελΠϧͩͬͨͷͰཧղؔͳ͘ࢀՃ͢Δ͜ͱ͕Ͱ͖·ͨ͠ɻΈΜͳͰڭՊॻΛಡΉձɻͦΕҎ্ͷ͜ͱແ͍ΠϝʔδͰͨ͠ɻϓϩάϥϛϯά͕ࣝ͋Δఔߴ͘ͳ͍ͱɺ͍͍͚ͭͯͳ͍ΠϝʔδͰೖΓʹ͍ɻࢀՃऀΈΜͳ͕ΨνΨνʹͳͬͯҰੜݒ໋ษڧ͍ͯ͠Δͱݴ͏ΠϝʔδɻྠಡձʹࢀՃ͢Δલͷʮྠಡձશൠʹର͢ΔʯΠϝʔδͳΜͰ͔ͨ͠ʁ
MTίϚϯυΛ௨ͯ͠3VCZྗͷແ͞Λ௧ײͨ͠ͷͰɺೖͱνΣϦʔຊΛ͔ͬ͠ΓಡΈ͍ͨ͠ͱલʑ͔Βࢥ͍͔ͬͯͨΒͬͱϑΟϤϧυੜͱίϛϡχέʔγϣϯΛऔΓ͔ͨͬͨɻฏຖස͕ߴ͍ͷͰɺਓݟΓͳࣗͰྑ͘ͳΕͦ͏ͩͱࢥ͔ͬͨΒίʔυΛॻ͘ͷ͕ۤखͩͬͨͷͱɺࣗͷதͰ3VCZΛશવཧղͰ͖͍ͯͳ͍ؾ͕࣋ͪ͋ͬͯҰ͔Βษڧ͔ͨͬͨ͠Γ߹͍͕ཉ͔ͬͨ͠!IBSVHVDIJZVNB͞Μʹɺ͍͍Ͱ͢Αʙͱ͝հ͍ͨͷͰɻ3VCZʹରͯ͠ͷཧղ͕ઙ͍ͱࢥ͍͔ͬͯͨΒɻΦϒδΣΫτࢦʹ͍ͭͯཧղͰ͖Δͱࢥ͔ͬͨΒɻਓͰֶश͍ͯͯ͠Γ߹͍Λ૿͔͔ͨͬͨ͠Βɻֶ͍शظؒΛ༗ҙٛʹաͨ͢͝ΊʹɺԿΒ͔ͷܗͰ'#$ͷίϛϡχςΟʹࢀՃ͍͖͍ͯͨ͠ɻͰɺͳ͔ͳ͔ࢀՃ͢Δ͖͔͚͕ͬ ͳ͔ͬͨɻͦΜͳ࣌ʹɺQBSV͞Μ͔Β%JTDPSEͰ৽͍͠ྠಡձ։࠵ͷ͓Β͕ͤ͋ΓɺΤΠϠʔͰࢀՃͯ͠ΈΑ͏ͱ͍͏ؾ࣋ͪʹͳ͔ͬͨΒɻIUUQTEJTDPSEDPNDIBOOFMTνΣϦʔຊ͕ਓͰಡΈਐΊΒΕͣɺ3VCZͷशಘʹߦ͖٧·͍ͬͯͨͷͰ୭͔ͱ͔ͨͬͨ͠ͷͰτϛʔ͞Μ͕ओ࠵͍ͯͨ͠νΣϦʔຊྠಡձͷงғؾ͕ͱͯྑ͘ɺʮؒΛ࡞Δʯʴʮ3VCZ͕Θ͔ΔΑ͏ʹͳΓ͍ͨʯͱ͍͏ࢥ͍Ͱɺ ࢀՃͤͯ͞Β͍·ͨ͠ɻ🍒ຊͷ༰Λࠓͦ͜ཧղ͔͔ͨͬͨ͠Β💪νΣϦʔຊΛಡΉϓϥΫςΟεΛ͍ͯͨ͠ͷͰɺͦͪΒΛ݉ͶͯࢀՃ͠·ͨ͠ɻʢͳͷͰ࠷ॳͷࠒνΣϦʔຊॳݟͰͬͯ·͕ͨ͠ɺҰਓͰಡΉͷͱҧͬͯղઆͯ͘͠ΕΔਓ͕͍ΔͷͰΉ͠Ζྑ͔ͬͨͰ͢ɻʣʮύϧ͞Μʹ༠ΘΕͯʯͩͬͨͱࢥ͍·࣭͢λΠϜʹͯɺݽֶ͕͖͍ͭͱ૬ஊ͍ͯͨ͠ͱ͜Ζɺͪΐ͏Ͳډ߹Θͤͨ1BSV͞Μʹ༠͍͍ͬͯͨͩͨͨΊɻͨ͘͞Μͷਓͱܨ͕Δ͜ͱͰΑΓֶͼΛಘΔ͜ͱ͕Ͱ͖Δ͔ΒɻͲ͏ͯ͜͠ͷྠಡձʹࢀՃ͠Α͏ͱࢥ͍·͔ͨ͠ʁ
࣭ɾٙɾؾ͖ͮͳͲԿͰΣϧΧϜɻΦϒδΣΫτࢦϓϥΫςΟεΛऴ͍͑ͯΔ͔൱͔ͳͲͰࣝϨϕϧʹ͕ࠩ͋ͬͯɺ࣭ΣϧΧϜͳงғؾ͍͠Օॴͷఆظతͳ෮शճʹΑͬͯɺ3VCZʹৄ͘͠ͳ͍ํͰࢀՃ͍͋͢͠ͱɺIBSVHVDIJ͞Μ͕ใͰॻ͔Ε͍ͯͨ͜ͱ͕Ұ൪ͬ͘͠Γ͖·ͨ͠1BSV͞Μͷ৭Μͳਓʹؾݣ͍Ͱ͖ΔਓฑͰʮɾ֎ʯͱ͍͏۠ผ͕ͳ͘ͳͬͯ৽͘͠ࢀՃͯ͘͠ΕΔਓʹͱ͙ͬͯ͢ʮʯʹײ͡ΕΔΑ͏ʹͳ͍ͬͯΔΜͩͱࢥ͍·͢ɻΘ͍Θ͍͔͍͋ͨͨർΕͨͱ͖ʹർΕͨͱݴ͑Δ࢝·ΔલͷΞΠεϒϨΠΫͰ͕ΈɺྠಡதͰͬ͘͟ΒΜʹࢥͬͨ͜ͱΛݴ͍߹͑Δงғؾͩͱࢥ͍·͢ɻؒҧͬͨ͜ͱݴͬͯେৎͱ͍͏৺ཧతͳ҆શ͕͋Δɻଟগઢͯࣝ͠ͷ۷ΓԼ͛ʹରͯ͠ҙཉతͳํ͕ଟ͍ɻ૬ஊͳͲʹͳͬͯฉ͍ͯ͘ΕΔɻʹελʔτɻ࠷ॳQBSV͞Μͷ։ձτʔΫͰ͔ͳงғؾ͔Β࢝·ͬͯʢલճͷ-5ձͷQBSV͞Μͷ࢘ձͷΑ͏ͳงғؾͰ͢ʣɺ<⚡ॳΊͯͷ-5ձ7PMaͷಈըac'+03%#005$".1ʢϑΟϤϧυϒʔτΩϟϯϓʣ> IUUQTCPPUDBNQGKPSEKQQBHFTؾ͘͞ɾਅ໘ɾԺ͔ɾษڧ৺ɾ༏͍͠ਓ͕ू·͍ͬͯΔϓϥΫςΟεͰࠔͬͨͱ͖ʹ૬ஊ͢Δͱ͍ͭ୭͔ΞυόΠεΛ͘Εͯॿ͚߹͑Δ͜ͷྠಡձͷงғؾͲΜͳײͩ͡ͱࢥ͍·͔͢ʁʙఔͷࡶஊλΠϜ͕͋Γ·͢ɻ࣍ʹͦͷͷਐߦ͞Μʹότϯλον͞Ε·͢ɻਐߦ͞Μ͔ΒͦͷͷಡΈखॱͰࢦ໊͠ͳ͕Βྠಡ͕ਐߦ͠·͢ɻʹͳͬͨΒͦͷͷؾ͖ͮͱৼΓฦΓΛఔ)BDL.%ʹೖྗ͍͖ͯ͠·͢ɻ࠷ޙʹؾ͖ͮΛॻ͘ਓ͕ಡΈ্͍͖͛ͯɺਐߦ͞Μ͕ৼΓฦΓΛಡΈ্͍͛ͯͬͯऴྃͱ͍͏ײ͡Ͱ͢ɻʢԿ͔ݸผʹࠔ͍ͬͯΔ͜ͱ͕͋ΕɺΕΔϝϯόʔͰҰॹʹղܾ͍ͯ͘͠ײ͡ɻʣർΕͨͱ͖ʹྠಡձʹࢀՃ͢ΔͱݩؾʹͳΕΔ͠༊͞ΕΔͲΜͳਓࢀՃ͍͢͠งғؾͰ͋Δͱࢥ͍·͢ɻʢಛʹॳࢀՃͷํେܴͷͱ͜Ζɻʣͱʹ͔͘օ͞Μ༏ͯ͘͠ɺͲΜͳ࣭ʹݏͳإͻͱͭͤͣ͑ͯ͘ΕΔɻʢಛʹIBSVHVDIJ͞Μɺകຊ͞Μɺ௩͞ΜྫΛަ͑ͳ͕Βઆ໌ͯͩ͘͠͞ΓɺຊʹΘ͔Γ͍͢ʂʣओ࠵ऀͷ1BSV͞ΜͷԹ͔͍ਓฑ͕શ໘ʹग़͍ͯΔྠಡձͷงғؾͱͯΦʔϓϯͰΤϧΧϜͳงғؾͰ͢😄ओ࠵ͷ1BSV͞Μͷʰ୭औΓ͜΅͞ͳ͍ʱͱ͍͏ཧ೦ͷ௨Γɺཧղ͕ബ͍ਓ͕͍ΕཧղͰ͖Δ·Ͱ͖߹ͬͯͩ͘͞Δͱ͍͏༨༟Λ࣋ͬͯʑ։࠵͞Ε͍ͯΔྠಡձͩͳʙͱײ͍ͯ͡·͢✨͋Γ͕ͯ͐ʙ🙏Θ͔Βͳ͍ɾཧղͰ͖ͳ͍ΣϧΧϜͳงғؾؾ᥄ʑͱ͍͏ײ͡Θ͔Βͳ͍ਓͷϖʔεʹ߹Θͤͯ͘Εͯɺࠔ͍ͬͯΔਓ͕͍ͨΒΈΜͳͰॿ͚߹͏ɺΞοτϗʔϜͳงғؾɻࡶஊ͢Δͱ͖ࡶஊɺֶͿͱֶ͖Ϳͱ͔ͬ͠ΓϝϦϋϦΛ͚ͭͯΕ͍ͯΔɻ
ྠಡձͷ࣌ؒଳ͕ͷதͷͭͷϚΠϧετϯʹͳͬͨͨΊɺλεΫͷظݶΛগ͠ҙࣝ͢ΔΑ͏ʹͳΓ·ͨ͠ɻ FY͔࣌Βྠಡձ͕࢝·Δ͔ΒɺΩϦ͕͍͍Α͏ʹ͜ͷλεΫ͜͜·ͰऴΘΒ͍ͤͨͳ͊ͳͲΛߟ͑ΔΑ͏ʹͳΓ·ͨ͠ؾܰʹֻ͚Ͱ͖Δ͕ؒ૿͑·ͨ͠ɻ͋ͱຊΛ۷ΓԼ͛ͯಡΉश׳͕͖ͭ·ͨ͠ɻϚΠΫΛͬͨձը໘ڞ༗ͷ࿅शʹͳΓɺͨΓલʹͰ͖ΔΑ͏ʹͳͬͨɻྠಡձͰΛग़͢͜ͱͰɺ-5ձͳͲਓલͰ͋·Γ߅ͳͤ͘ΔΑ͏ʹͳͬͨɻྠಡձͰυϥΠόʔʢαϯϓϧίʔυͷೖྗ୲ʣΛ͢Δ͜ͱͰɺϖΞϓϩΛਃ͠ࠐΜͩࡍʹͦΜͳʹۓுͤͣʹྟΉ͜ͱ͕Ͱ͖ͨɻฏຖɺྠಡձϝϯόʔʹձ͓ͬͯޓ͍ʹݚᮎΛੵΜͰ͍͘͜ͱͰɺϦεϖΫτ৴པײ͕େ͖͘ͳͬͨɻҰɺIBSVHVDIJ͞ΜاըͷδϟϯέϯϓϩάϥϜ࡞ͷϞϒϓϩاը͕͋ΓɺͬͯΈͨΒϞϒϓϩָ͍ͬͯ͠ͳͬͯࢥ͍·ͨ͠ʂ࣌Λ۠Γͱͯ͠ɺͷษڧͷϦζϜ͕࡞ΕΔΑ͏ʹͳٕͬͨज़ॻͷಡΈํ͕ͩΜͩΜΘ͔ΔΑ͏ʹͳ͖ͬͯͨΦϯϥΠϯͰͷίϛϡχέʔγϣϯͷۤखײ͕ͳ͘ͳͬͨϓϥΫςΟεΛਐΊΔεϐʔυ͕֨ஈʹ্͕ͬͨϓϥΫςΟεͷਐΈ͕ྑ͘ͳͬͨɻʢྠಡձͰϓϥΫςΟεͷ࣭ͨ͠Γɺಉ͡ϓϥΫςΟεΛ͍ͬͯΔਓͷܹΛड͚ͨΓɺ ϓϩάϥϜࣗମΛಡΈԼ͢श׳͕͍ͭͨ͜ͱ͔Βɻʣ%JTDPSE্Ͱͷग़͠ʹؔ͢Δ߅͕গͳ͘ͳͬͨɻ3VCZ͕ҎલΑΓ͖ʹͳͬͨɻ͜Ε·Ͱશ͘ཧղͰ͖ͳ͔ͬͨΫϥεͱϞδϡʔϧͷ͜ͱ͕ཧղͰ͖ΔΑ͏ʹͳ͖ͬͯͨ͜ͱͰ͢💪͜ͷྠಡձʹࢀՃͯ͠ ΊͪΌͪ͘ΌΛײ͡ΒΕ͍ͯ·͢💪ֶशͷश׳͕͍ͭͨΈΜͳಉ͡Α͏ͳͱ͜ΖͰͭ·͍ͮͯΔΜͩͳͱࢥ͍มͳྼײ͕ͳ͘ͳͬͨؾܰʹ૬ஊͰ͖Δਓ͕Ͱ͖·ͨ͠νΣϦʔຊΛಡΉ͜ͱɺ3VCZͷίʔυΛॻ͘͜ͱָ͕͘͠ͳͬͨɻϦϞʔτͰͷίϛϡχέʔγϣϯͷۤखҙ͕ࣝগ͠১͞Εͨɻਓͱܨ͕Δ͜ͱָ͕͘͠ͳͬͨɻ͜ͷྠಡձʹࢀՃͯ͠มԽͨ͜͠ͱ͋Γ·͔͢ʁ͋Δ߹ɺͦΕԿͰ͔͢ʁ
༷ʑͳόοΫϘʔϯ͕͓͋Γͷํ͕ࢀՃͯͩ͘͠͞Δɺଟ༷ੑͩͱࢥ͍·͢ʂঁੑଟ͘ࢀՃ͍ͯ͠ΔͷͰੑࠩΛؾʹͤͣࢀՃ͍͢͠ͷͰͳ͍Ͱ͠ΐ͏͔ʁྠಡձͷ༰ͰΘ͔Βͳ͍ͱ͜Ζ͕͋Εɺ͍ͭ͘͜͠Β͍ڭ͑ͯΒ͑·͢ɻྠಡձҎ֎ʹΘ͔Βͳ͍ͱ͜Ζ͕͋ͬͨΒྠಡձޙʹ૬ஊʹͬͯΒ͑·͢ɻޕޙ͔࣌ΒͳͷͰࣄͯ͠ΔਓࢀՃ͍͔͢͠ɻॳ৺ऀʹ༏͍͠ɻͭ·͍͍ͮͯΔͱ͜Ζ͕͋ΕɺօҰॹʹͳ͔ͬͯΔ·Ͱٞ͢ΔɻલޙʙఔͷࡶஊλΠϜ͕͋ΓɺϓϥΫςΟεͰͷෆ҆ͳͲͷϝϯλϧέΞ͕Ͱ͖Δɻʢ'#$શମʹݴ͑Δ͜ͱ͔ɻʣϓϥΫςΟεͰ͔Βͳ͍ͱ͜Ζ͕͋ΕɺҰॹʹΜͰ͘ΕͨΓɺॿ͚߹ͬͯ͘ΕΔૉఢͳ͕͍ؒΔɻू·͍ͬͯΔϝϯόʔͷਓͱͷް͞ɻෳͷਓ͕ͦΕͧΕͷ࣋ͭܦݧࣝΛ࣋ͬͯू·Δ͜ͱͷੌ͞Λ࣮ײͨ͠ϝϯόʔશһ͕ॿ͚߹͍ͳ͕ΒֶͿମ੍͕ࣗવͱͰ͖͍ͯΔͱ͜ΖϫΠϫΠָ͘͠ɺ3VCZʹ͍ͭͯΨονϦͱֶΔͱ͜ΖऔΓΜͰ͍ΔϓϥΫςΟεͰͷࠔͬͨΛ૬ஊ͢ΔͱɺઌʹਐΜͰ͍Δϝϯόʔ͕ΞυόΠεΛ͘ΕͯͱͯษڧʹͳΔͱಉ࣌ʹΔؾ͕ग़Δ࢝·Δલͷ͘Β͍ͷؒʹɺ࣭ͨ͠ΓΈΛڞ༗ͨ͠ΓͰ͖Δͱ͜Ζ͕ଞͷྠಡձʹͳ͍ಛͩͱࢥ͍ͬͯ·͢ɻ͋ͱɺͱʹ͔͘༏͍͠ਓ͕ଟ͍ͷͰ࣭͍͢͠ʴ༹͚ࠐΈ͍͢งғؾͰ͋Δͱࢥ͍·͢ɻ༏͍͠ੈք✨ॳΊͯͷਓͰࢀՃͯ͘͢͠ɺΘ͔Βͳ͍ͱΛ্͍͛͢ͱ͜Ζ😄ຊͷ༰͕શવΘ͔Βͳͯ͘0,ʢͪΌΜͱڭ͑ͯ͘ΕΔʣΘ͔Βͳ͍ͬͯݴ͍͍͢νΣϦʔຊΛ௨ͯ͠3VCZͷ͕ࣝʹ͘3VCZͷجຊΛ͔ͬ͠ΓཧղͰ͖Δ͜ͱɻͪΐͬͱͨ͠ίʔυͷॻ͖ํΛݟֶͯΔ͜ͱɻԣͷܨ͕Γ͕Ͱ͖ͯɺؾܰʹ૬ஊͰ͖Δ͜ͱɻΞοτϗʔϜͰྠಡձσϏϡʔʹ࠷దɻͱ͍ͬͯݱஈ֊ͰϞδϡʔϧͷষΛಡΈਐΊ͍ͯΔͷͰɺνΣϦʔຊͷޙͷষΛҰਓͰಡΜͰ͍ͯ ʮΑ͘Θ͔Βͳ͍ͳʔʯͬͯਓɺϥδΦࢀՃͰ͍͍ͷͰɺͪΐͬͱ͖ʹ͘Δͱ͍͍ͱࢥ͍·͢ɻ৭ΜͳಛΛ࣋ͬͨਓ͕͍ͯงғؾ͕໘ന͍ɻΏΔʔ͍ײ͡ͳͷͰɺਓݟΓͳਓͰେৎʂ ͳͣ͜ͷྠಡձͷΞϐʔϧϙΠϯτԿͩͱࢥ͍·͔͢ʁ
ڵຯͷ͋ΔྠಡձΛݟ͚ͭͨΒɺͪΐͬͱ༐ؾΛग़ͯ͠ࢀՃͯ͠ΈΑ͏ʂ৽͍͠ੈք͕͕͍͔ͬͯ͘ʁ