How to survivein post Rails'world.SHIBATA HiroshiEiwa System Management,Inc.
View Slide
1SPpMF
SHIBATA Hiroshia.k.a hsbttDiary commiter[email protected]
http://twitter.com/hsbt/http://www.hsbt.org/http://github.com/hsbt/
asakusa.rb
RubyKaigi2010
Theme
ConflictsandResolutionsিಥͱղܾ
ࠓ͢͜ͱITCU͕ʹӬγεςϜϚωδϝϯτʹೖ͔ࣾͯ͠ΒؒͰಘΒΕͨ3VCZͱ3BJMTͰָ͘͠աͨ͢͝Ίʹඞཁͳ͜ͱʹ͍ͭͯ͝հ͠·͢ɻ
ConflictLearningMethodologyResolution
ࠓ͞ͳ͍͜ͱtDiary
RubyKaigi2009
SapporoRubyKaigi02
݄ӬγεςϜϚωδϝϯτೖࣾ
ursmhsbt͜Μʹͪண੮͍ͯ͠·͢
1SPHSBNNFS`T4QFD
hobby tDiary(cgi) gentoowork excel railsecosystem before rails post rails
beforeRailsIUUQXXXqJDLSDPNQIPUPT!/
tDiaryHikiKagemai
sourceforge
RubyForge
RAA
postRailsIUUQXXXqJDLSDPNQIPUPTQBUDBSE
(JU)VC
3VCZ3BJMT1SPHSBNNJOH
EnumratorIUUQXXXqJDLSDPNQIPUPTSBDIFMLJMMTFNP
͓͔Β·ͰͷΛ߹ܭͨ͠Λද͍ࣔͨ͠
ITCUղs = 0[1, 2, 3, 4, 5].each do |v|s += vends
ursmղ(1..5).inject(&:+)
Railsղ(1..5).sum
͓͔Β·ͰͷΛුಈখʹͨ͠ྻΛ࡞͍ͨ͠
hsbtղv = [][1, 2, 3, 4, 5].each do |i|v << i.to_fendv
VSTNղ(1..5).map(&:to_f)
͓͔Β·Ͱͷͷ͏ͪΛ࠷ॳʹӽ͑ͨΛऔΓग़͍ͨ͠
͓͔Β·Ͱͷͷ͏ͪΛӽ͑ͨશͯΛऔΓग़͍ͨ͠
͓ SZ
map / injectreject / detectselect / each
)BTIFSJUJT
Symbol{:ruby => ‘programming’}
ͨͱ͑IBTIͷLFZͩͬͨΓɺΞΫηαͷҾͰ͢Πϯελϯεม໊ͩͬͨΓɺBMJBT@NFUIPEͷҾͰ͢ϝιου໊ͩͬͨΓͱɺจࣈʹҙຯ͚͍ͮͨ࣌͠ʹ͑·͢ɻhttp://d.hatena.ne.jp/secondlife/20051026/1130319610
h1 = {‘ruby’ => ‘programming’}h2 = {‘ruby’ => ‘programming’}h1.each {|k,v| p k.object_id}=> 2164547280h2.each {|k,v| p k.object_id}=> 2164501920IUUQSBJMTPOFEHFCMPHTQPUDPNVTJOHTZNCPMTIUNM
h1 = {:ruby => ‘programming’}h2 = {:ruby => ‘programming’}h1.each {|k,v| p k.object_id}=> 388828h2.each {|k,v| p k.object_id}=> 388828
metaprogramming
send / method_missingblock / Proc / lambdaincluded / extendedeval / instance_eval
)PX
VSTNITCU͜Μʹͪண੮͍ͯ͠·͢
(JU)VCTPNNFMJF
WatchϑΥϧμߏ ίϛοτϝοηʔδCommitsHistory
HJUDMPOF
CVOEMFJOTUBMMCVOEMFPQFO
)'"
happy hacking!
HJUDPNNJUHJUQVTI
pull requestgit format-patch origin/masteror
3VCZJTUʹͰ͖Δ͜ͱIUUQKQSVCZJTUOFUNBHB[JOF 8IBU8F$BO%P
Head FirstRails
CFGPSF3BJMTͷ࣌ͷؾ࣋ͪ
ΦϨͬͯεήʔײ
ΦϨͬͯεήʔײৄ͍͜͠ͱΑ͘Θ͔Βͳ͍͚Ͳɺ3VCZͰιέοτΛ͏ίʔυΛॻ͍ͯΈͨΒ͍ͱ؆୯ʹಈ͍ͯ͠·ͬͨ࣌ͷؾ
ΦϨͬͯεήʔײ3VCZΛ࢝Ίͱͨ͠--ͷଟ͘ɺιέοτεϨουɺ(6*ɺਖ਼نදݱͱ͍ͬͨগ͠ෑډͷߴ͍ٕज़ཁૉͷΠϯλʔϑΣʔεΛɺγϯϓϧͰ͍͍͢ܗͰఏڙͯ͘͠Ε͍ͯΔ
ΦϨͬͯεήʔײ͕ࣗ༨Γৄ͘͠ͳ͍ٕज़Ͱ͋ͬͯɺඞཁ࠷খݶͷϝιουݺͼग़͠Ͱ͜ΕΒͷٕज़ཁૉΛମݧ͢Δ͜ͱ͕Ͱ͖ɺखܰʹʮΦϨͬͯεήʔʯײΛຯΘ͑ΔͷͰ͋Δɻ
QPTU3BJMTͷ࣌ͷؾ࣋ͪ
ͬͱΦϨͬͯεήʔײ
ΦϨͬͯεήʔײIUUQXXXNBDIVKQEJBSZIUNMQ
HJUIVC
ͬͱΦϨͬͯεήʔײHJUIVCͰͱΓ͋͑ͣGPSLͯࣗ͠Έʹվͯ͠QVTI͓͍ͯͨ͠Β͍ͭͷؒʹ͔GPSLݩʹऔΓࠐ·Ε͓ͯྱ·ͰݴΘΕͨ࣌ͷؾ
ͬͱΦϨͬͯεήʔײΦϨͬͯεήʔײ
TPVSDFGPSHFGFFECBDL
social communication
εήʔײͷՃஔIUUQXXXqJDLSDPNQIPUPTWJMMFT
HJUIVCFYQMPSFS
PUIFSMBOHVBHF
HJUIVCTQBDF
U%JBSZPOHJUIVC
U%JBSZ3FMFBTFE
HJUIVCFYQMPSF
(PPE3VCZ-JGF