http://sapporo.rubykaigi.org/2012/ja/schedule/details/53.html
4VSWJWJOH1SPKFDUT"GUFSUIF(JU)VC3FWPMVUJPO"O0SEJOBSZ1SPHSBNNFST(VJEF.JUTVUBLB.JNVSB&JXB4ZTUFN.BOBHFNFOU *ODBTBLVTBSC129݄16༵
View Slide
NF129݄16༵
129݄16༵
XPSL129݄16༵
IUUQDPEFSXBMMDPNUFBNFJXBTZTUFNNBOBHFNFOU129݄16༵
DPNNVOJUZ129݄16༵
IUUQXXXNFFUVQDPNUPLZPSBJMTFWFOUT129݄16༵
3VCZ,BKBʹͳΓ·ͨ͠129݄16༵
IUUQKQSVCZJTUOFUNBHB[JOF129݄16༵
Δͼ·ͰهࣄΛॻ͍ͯ͘ΕΔํҰॹʹฤूΛ͢ΔํΛืू͍ͯ͠·͢IUUQKQSVCZJTUOFUNBHB[JOF129݄16༵
ࠓ͞ͳ͍͜ͱ129݄16༵
ࠓ͞ͳ͍͜ͱ✓ίʔυϨϏϡʔͷϕετϓϥΫςΟε✓ΩϥΩϥͨ͜͠ͱ✓ࠈͷΈ͞Θ✓*%0-129݄16༵
ࠓͷ͓129݄16༵
͓ͷ༰ιʔγϟϧίʔσΟϯά͕࢝·ͬͨӬͰੜ͖ΔͨΊɺ.Z$PEFΛ8F$PEFͱͳΔΑ͏ʹؾΛ͚ͭͨ͜ͱ129݄16༵
Ӭͷਓͨͪ129݄16༵
R u b y i s t ͨ ͪ129݄16༵
Φ ϒ ਥ ͨ ͪ129݄16༵
͜ͷͰى͖ͨڥͷมԽ129݄16༵
৬ʹ(JU)VC͕͖ͬͯͨ129݄16༵
ಋೖͷ͖͔͚ͬ✓ʮίʔυϨϏϡʔʯ✓େਓ OͷϓϩδΣΫτ✓νʔϑϓϩάϥϚʔ VSTNʹΑΔϨϏϡʔ129݄16༵
ϨϏϡʔ͚ͬ͜͏େม✓ࢦఠޱ಄ PS*3$✓มߋΛ͏ͷ͕େม✓ݟΔ͖ର͕ࢁ129݄16༵
ͦ͜Ͱ(JU)VCͰ͢Α✓ͲΜͲΜϨϏϡʔͰ͖Δڥʹ✓ίϝϯτΛͤΔ✓QVMMSFRVFTUͰϨϏϡʔґཔ129݄16༵
ࣗͨͪͷπʔϧ࡞Γ✓࠷ॳ̍ਓ͕࡞ͬͨϓϩμΫτ✓ผͷ୭͔͕͕ࣗཉ͍͠ػೳՃΛউखʹΔΑ͏ʹͳͬͨ✓ࠓ·Ͱಉ͡ϓϩδΣΫτʹͳͬͨ͜ͱແ͍ਓ͕ಉ͡ίʔυΛ͍͡ΔΑ͏ʹͳͬͨ129݄16༵
ձࣾͷதʹ(JU)VCͰى͖͍ͯΔιʔγϟϧͳ׆ಈ͕ൃੜ͢ΔΑ͏ʹͳͬͨ129݄16༵
มԽͷ·ͱΊ✓ଞͷϓϩδΣΫτͷίʔυΛݟΕΔΑ͏ʹͳͬͨ✓ϓϩδΣΫτ֎ͷϝϯόʔϑΟʔυόοΫΛͩͤΔڥʹͳͬͨ✓ϝϯόʔશһ͕ಉ͡ίʔυΛڞ༗͢ΔΑ͏ʹͳͬͨ129݄16༵
ʢʼʻʣ✓QVTI͢ΔͨͼʹೖΔίϝϯτͷʑ✓ࣄ͕ਐ·ͳ͍✓Ԝ129݄16༵
͚ͬ͜͏ਏ͍129݄16༵
ͦΜͳதͰ͕ࣗίʔυΛॻ͖ଓ͚ΔͨΊʹԿ͕Ͱ͖Δ͔Λߟ͑ͯΈͨ129݄16༵
ٯڥΛνϟϯεʹ✓ฐࣾʹɺ͍͢͝ਓ͕͍ͬͺ͍͍Δ✓ͦΜͳ͍͢͝ਓ͔ΒݟࣺͯΒΕͣʹབྷΜͰΒ͑Δͷνϟϯε✓ड͚ͨࢦఠΛʹ͚͍͚ͭͯɺΑ͍श׳Λʹ͚ͭΕΔͣ129݄16༵
ࢥߟ͕ωΨςΟϒϑΟʔυόοΫʹ͓͍ͪΒͳ͍Α͏ʹҙࣝΛม͑ͨ129݄16༵
ͳͥࢦఠ͕ଟ͍͔Λߟ͑ͨ✓ʮӬͷNBTUFSϒϥϯνʹมͳίʔυ͕ແ͍ʯΛ࣮ݱ͢ΔͨΊʹɺΘͨ͠ʹΓͯͳ͍͜ͱ͕ଟ͍129݄16༵
ӬͷNBTUFSϒϥϯνʹ͍Ε͍͍ͯΑ͏ͳίʔυΛॻͨ͘ΊʹΘ͕ͨ͠ؾΛ͚ͭΔΑ͏ʹͳͬͨ/ݸͷ͜ͱ129݄16༵
ίʔυͷܗΛؾʹ͢Δ129݄16༵
ίʔυͷܗΛؾʹ͢Δ✓͏͚ͨࢦఠ✓ίʔυʹ͍ΕΔۭനվߦͷҐஔ͕όϥόϥ✓ॻ͖ํʹϜϥ͕͋Δ129݄16༵
ྫɿۭനͷ͍ΕํࢦఠΛ͏͚Δ)BTIͷॻ͖ํ{a: 1, b: 2 }ࢦఠΛ͏͚ΔϒϩοΫͷॻ͖ํ[1, 2, 3].map{ |a| a + 1}129݄16༵
ྫɿۭനͷ͍ΕํࢦఠΛ͏͚Δ)BTIͷॻ͖ํ{a: 1, b: 2 }ࢦఠΛ͏͚ΔϒϩοΫͷॻ͖ํ[1, 2, 3].map{ |a| a + 1}ˢ͜ͷεϖʔεԿ129݄16༵
ྫɿۭനͷ͍ΕํࢦఠΛ͏͚Δ)BTIͷॻ͖ํ{a: 1, b: 2 }ࢦఠΛ͏͚ΔϒϩοΫͷॻ͖ํ[1, 2, 3].map{ |a| a + 1}͜ͷεϖʔεԿ ˢ129݄16༵
ྫɿۭനͷ͍ΕํࢦఠΛ͏͚Δ)BTIͷॻ͖ํ{a: 1, b: 2 }ࢦఠΛ͏͚ΔϒϩοΫͷॻ͖ํ[1, 2, 3].map{ |a| a + 1}͜͜ʹεϖʔε͍Εͳ͍ͷ ˢ129݄16༵
Ͳ͏ͯ͠େࣄ͔✓վߦۭനίʔυͷҰ෦ͳͷͰؾʹ͠ͳ͚Ε͍͚ͳ͍✓ίʔυͷݟ͕ͨѱ͍ͱϨϏϡϫʔ͕ຊ࣭Ҏ֎ͷ͜ͱͰؾΛͱΒΕͯ͠·͏✓ݟͨͷޙʹ࠶ϨϏϡʔʹͳΔͷͰແବ͕ൃੜ͢Δ129݄16༵
࣮ફͨ͜͠ͱ✓ࢦఠ͞Εۭͨനվߦͷ͍ΕํΛཧղͯ͠ɺίʔυΛॻ͘ͱ͖ʹ֬ೝ͢Δ✓ଞͷਓ͕ॻ͍ͨίʔυΛϨϏϡʔ͢Δͱ͖ҙࣝ͢Δ✓Πϯλʔωοτʹެ։͞Ε͍ͯΔ͍ΖΜͳίʔσΟϯάϧʔϧΛݟͯࣗͱͷҧ͍Λ୳ͯ͠ɺΑ͍ͷऔΓೖΕΔ129݄16༵
આ໌Ͱ͖ΔίʔυΛॻ͘129݄16༵
આ໌Ͱ͖ΔίʔυΛॻ͘✓͏͚ͨࢦఠ✓͜ͷมͲ͏͍͏ҙຯͰ͔͢✓͜ͷߏԿͰ͜͏ͳΔΜͰ͔͢129݄16༵
ྫɿςετσʔλͷηοτΞοϓobject.instance_variable_set :@user, 'takkanm'129݄16༵
ྫɿςετσʔλͷηοτΞοϓobject.instance_variable_set :@user, 'takkanm'lΘ͚͕Θ͔Βͳ͍Αz129݄16༵
Ͳ͏ͯ͠େࣄ͔✓ࣗͰΘ͔Γ໊͍͢લΛ͚ͭͨͱࢥͬͯɺਓʹཧղͰ͖ͳ͍͜ͱ͋Δ✓࠷ऴతʹίϛοτ͞ΕΔͷಈ͚ͩ͘Ͱͳ͘ҙਤ͕͖ͬΓ͍ͯ͠ͳ͍ͱ͍͚ͳ͍129݄16༵
࣮ફͨ͜͠ͱ✓ม໊ߏʹΜͩΒ૬ஊ✓ଞͷਓͷίʔυ͔Β׳༻తͳ୯ޠΛֶͿ✓આ໌Ͱ͖ΔΑ͏ʹॻ͚ΔΑ͏ʹɺԿॻ͖͢129݄16༵
ಓ۩ΛΔ129݄16༵
ಓ۩ΛΔ✓͏͚ͨࢦఠ✓ͦΕ˓˓ͰͰ͖ΔΑ✓ʷʷͬͯͳ͍ͷͰ͔͢129݄16༵
ྫɿϑΝΠϧͷSFBEFile.read(Rails.root + ‘/lib/foo.csv’)129݄16༵
ྫɿϑΝΠϧͷSFBEFile.read(Rails.root + ‘/lib/foo.csv’)l1BUIOBNFͳΒͬͱΓΑ͏͋ΔΑͶz129݄16༵
ྫɿϑΝΠϧͷSFBEFile.read(Rails.root + ‘/lib/foo.csv’)l3BJMTSPPUKPJO bMJCGPPDTW`SFBEz129݄16༵
ྫɿྻڍ͍ͨ͠ͱ͖class Todo < ActiveRecord::BaseSTATUS = %w(done doing ready)end129݄16༵
ྫɿྻڍ͍ͨ͠ͱ͖class TodoSTATUS = %w(done doing ready)end[email protected]ΛͬͨΒͲ͏Ͱ͔͢ʁzclass Todo < ActiveRecord::BaseSTATUS = %w(done doing ready)end129݄16༵
Ͳ͏ͯ͠େࣄ͔✓ϓϩάϥϚͱͯ͠3VCZ3BJMTͷಓ۩ΛΑ͘Βͳ͍ͱ͍͚ͳ͍✓ϓϩάϥϚͱͯ͠ৗʹΞϯςφΛష͍ͬͯΔඞཁ͕͋Δ129݄16༵
࣮ફͨ͜͠ͱ✓υΩϡϝϯτΛோΊΔ✓45,͢Δ✓ଞͷϓϩδΣΫτͷ(FNpMFΛݟΔ129݄16༵
"QQFOEJY"129݄16༵
՝֎׆ಈΛ͢Δ129݄16༵
ֶΜͩ͜ͱΛΞτϓοτ͢Δ✓ࣾͰֶΜͩ͜ͱΛΞτϓοτ͢Δ✓ࣗͷཧղཱ͍ͬͯΔॴΛΔ͍͍ػձʹͳΔ129݄16༵
ωοτ্ͷ׆ಈ✓$PEFSXBMM✓όοξͰ৫ͷংྻ͕ݟ͑Δ✓3BJMTͷόοξ͕ཉͯ͘͠ύονΛॻ͘✓2"UNBSLJU✓Ϩϐϡςʔγϣϯ͕ଞͷਓʹෛ͚ͳ͍Α͏ʹ࣭ʹ͑Δ✓3VCZϦϑΝϨϯεϚχϡΞϧ✓ಡΜͰ͍Δͱ͖ʹؒҧ͍ʹؾ͍ͨΒ#VHใࠂ129݄16༵
ίϛϡχςΟʹͰΔ✓"TBLVTBSC✓3BJMTษڧձ✓3VCZJTU.BHB[JOFฤू✓ࡳຈ3VCZձٞͰ͢129݄16༵
ࣗͷมԽʹ͍ͭͯ129݄16༵
มΘͬͨ͜ͱ✓QVTI͢Δͷָ͕͘͠ͳͬͨ✓·ͩ·ͩποί·ΕΔ͚ͲલΑΓۤͰͳ͘ͳͬͨ✓ଞͷਓʹֶΜͩࣄΛ͑ΕΔΑ͏ʹ✓ͭΒ͘ͳ͍Α͏ʹؾΛ͚ͭΔ✓ڭ͑Δ͜ͱͰߋʹߟ͕͑ਂ·Δ͜ͱ129݄16༵
;ͭ͏ͷ͜ͱͰ✓͍͢͝ਓ͕;ͭ͏ʹߦͳ͍ͬͯΔࣄ͚ͩͲɺΘͨ͠ʹؾΛ͚ͭͳ͍ͱͰ͖ͳ͍ࣄ͕ଟ͔ͬͨ✓͋ͨΓ·͑ͱݴΘΕ͍ͯΔࣄΛͪΌΜͱΕΔΑ͏ʹྗ͠ͳ͍ͱ͍͚ͳ͍129݄16༵
·ͱΊ✓ձࣾͰίʔυΛॻ͘ڥձࣾ֎ͰίʔυΛॻ͘ڥࠩҟ͕ͳ͘ͳͬͯ͘Δ͜ͱͰɺ্ୡ͢Δνϟϯε͕૿͑ͨ✓ਏͯ͘ΒͣʹૉʹࢦఠΛड͚ͱΊֶͯΜͰ͍͘͜ͱ͕େࣄ✓ίʔυΛָ͘͠ॻ͘ͱ͍͏͜ͱΛੜۀʹ͢ΔͷͳΒɺ͋ͨΓ·͑ͷ͜ͱΛਖ਼͘͠ΕΔΑ͏ʹৗʹҙࣝ͢Δ͜ͱ͕େࣄ129݄16༵