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

How to survive in post Rails' world

How to survive in post Rails' world

Eabad423977cfc6873b8f5df62b848a6?s=128

SHIBATA Hiroshi

October 10, 2011
Tweet

More Decks by SHIBATA Hiroshi

Other Decks in Programming

Transcript

  1. How to survive in post Rails' world. SHIBATA Hiroshi Eiwa

    System Management,Inc.
  2. 1SPpMF

  3. SHIBATA Hiroshi a.k.a hsbt tDiary commiter shibata.hiroshi@gmail.com

  4. http://twitter.com/hsbt/ http://www.hsbt.org/ http://github.com/hsbt/

  5. asakusa.rb

  6. None
  7. RubyKaigi 2010

  8. Theme

  9. Conflicts and Resolutions িಥͱղܾ

  10. ࠓ೔࿩͢͜ͱ ITCU͕೥ʹӬ࿨γε ςϜϚωδϝϯτʹೖࣾͯ͠ ͔Β൒೥ؒͰಘΒΕͨ3VCZ ͱ3BJMTͰָ͘͠աͨ͢͝ Ίʹඞཁͳ͜ͱʹ͍ͭͯ͝঺ հ͠·͢ɻ

  11. Conflict Learning Methodology Resolution

  12. ࠓ೔࿩͞ͳ͍͜ͱ tDiary

  13. Conflict Learning Methodology Resolution

  14. RubyKaigi2009

  15. SapporoRubyKaigi02

  16. ೥݄೔ Ӭ࿨γεςϜϚωδϝϯτೖࣾ

  17. ursm hsbt ͜Μʹͪ͸ ண੮͍ͯ͠·͢

  18. 1SPHSBNNFS`T 4QFD

  19. hobby tDiary(cgi) gentoo work excel rails ecosystem before rails post

    rails
  20. before Rails IUUQXXXqJDLSDPNQIPUPT!/

  21. tDiary Hiki Kagemai

  22. sourceforge

  23. RubyForge

  24. RAA

  25. post Rails IUUQXXXqJDLSDPNQIPUPTQBUDBSE

  26. None
  27. None
  28. (JU)VC

  29. Conflict Learning Methodology Resolution

  30. ursm hsbt ͜Μʹͪ͸ ண੮͍ͯ͠·͢

  31. Conflicts and Resolutions িಥͱղܾ

  32. 3VCZ3BJMT 1SPHSBNNJOH

  33. Enumrator IUUQXXXqJDLSDPNQIPUPTSBDIFMLJMMTFNP

  34. ͓୊ ͔Β·Ͱͷ੔ ਺Λ߹ܭͨ͠஋Λ ද͍ࣔͨ͠

  35. ITCUղ౴ s = 0 [1, 2, 3, 4, 5].each do

    |v| s += v end s
  36. ursmղ౴ (1..5).inject(&:+)

  37. Railsղ౴ (1..5).sum

  38. ͓୊ ͔Β·Ͱͷ੔਺ Λුಈখ਺ʹͨ͠഑ ྻΛ࡞੒͍ͨ͠

  39. hsbtղ౴ v = [] [1, 2, 3, 4, 5].each do

    |i| v << i.to_f end v
  40. VSTNղ౴ (1..5).map(&:to_f)

  41. ͓୊ ͔Β·Ͱͷ੔਺ͷ ͏ͪΛ࠷ॳʹӽ͑ͨ ਺஋ΛऔΓग़͍ͨ͠

  42. ͓୊ ͔Β·Ͱͷ੔਺ͷ ͏ͪΛӽ͑ͨ਺஋ શͯΛऔΓग़͍ͨ͠

  43. ͓୊ SZ

  44. map / inject reject / detect select / each

  45. )BTIFSJUJT

  46. Symbol {:ruby => ‘programming’}

  47. ͨͱ͑͹IBTIͷLFZͩͬͨ ΓɺΞΫηαͷҾ਺Ͱ౉͢Πϯ ελϯεม਺໊ͩͬͨΓɺ BMJBT@NFUIPEͷҾ਺Ͱ౉͢ ϝιου໊ͩͬͨΓͱɺจࣈʹ ҙຯ͚͍ͮͨ࣌͠ʹ࢖͑·͢ɻ http://d.hatena.ne.jp/secondlife/20051026/1130319610

  48. h1 = {‘ruby’ => ‘programming’} h2 = {‘ruby’ => ‘programming’}

    h1.each {|k,v| p k.object_id} => 2164547280 h2.each {|k,v| p k.object_id} => 2164501920 IUUQSBJMTPOFEHFCMPHTQPUDPNVTJOHTZNCPMTIUNM
  49. h1 = {:ruby => ‘programming’} h2 = {:ruby => ‘programming’}

    h1.each {|k,v| p k.object_id} => 388828 h2.each {|k,v| p k.object_id} => 388828
  50. meta programming

  51. send / method_missing block / Proc / lambda included /

    extended eval / instance_eval
  52. Conflict Learning Methodology Resolution

  53. )PX

  54. VSTN ITCU ͜Μʹͪ͸ ண੮͍ͯ͠·͢

  55. (JU)VC

  56. (JU)VC TPNNFMJF

  57. Watch ϑΥϧμߏ੒ ίϛοτϝοηʔδ Commits History

  58. HJUDMPOF

  59. CVOEMFJOTUBMM CVOEMFPQFO

  60. )'"

  61. happy hacking!

  62. HJUDPNNJU HJUQVTI

  63. pull request git format-patch origin/master or

  64. 3VCZJTUʹͰ͖Δ͜ͱ IUUQKQSVCZJTUOFUNBHB[JOF  8IBU8F$BO%P

  65. Head First Rails

  66. meta programming

  67. Conflict Learning Methodology Resolution

  68. CFGPSF 3BJMT ͷ࣌ͷؾ࣋ͪ

  69. ΦϨͬͯ͹εήʔײ

  70. ΦϨͬͯ͹εήʔײ ৄ͍͜͠ͱ͸Α͘Θ͔Βͳ͍ ͚Ͳɺ3VCZͰιέοτΛ ࢖͏ίʔυΛॻ͍ͯΈͨΒ͍ ͱ΋؆୯ʹಈ͍ͯ͠·ͬͨ࣌ ͷؾ෼

  71. ΦϨͬͯ͹εήʔײ

  72. ΦϨͬͯ͹εήʔײ 3VCZΛ࢝Ίͱͨ͠--ͷଟ͘ ͸ɺιέοτ΍εϨουɺ (6*ɺਖ਼نදݱͱ͍ͬͨগ͠ෑ ډͷߴ͍ٕज़ཁૉ΁ͷΠϯλʔ ϑΣʔεΛɺγϯϓϧͰ࢖͍΍ ͍͢ܗͰఏڙͯ͘͠Ε͍ͯΔ

  73. ΦϨͬͯ͹εήʔײ ࣗ෼͕༨Γৄ͘͠ͳ͍ٕज़෼໺ Ͱ͋ͬͯ΋ɺඞཁ࠷খݶͷϝ ιουݺͼग़͠Ͱ͜ΕΒͷٕज़ ཁૉΛମݧ͢Δ͜ͱ͕Ͱ͖ɺख ܰʹʮΦϨͬͯ͹εήʔʯײΛ ຯΘ͑ΔͷͰ͋Δɻ

  74. ΦϨͬͯ͹εήʔײ

  75. QPTU3BJMT ͷ࣌ͷؾ࣋ͪ

  76. ΋ͬͱΦϨͬ ͯ͹εήʔײ

  77. ΦϨͬͯ͹εήʔײ IUUQXXXNBDIVKQEJBSZIUNMQ

  78. HJUIVC

  79. ΋ͬͱΦϨͬͯ͹εήʔײ HJUIVCͰͱΓ͋͑ͣGPSL ͯࣗ͠෼޷Έʹվ଄ͯ͠ QVTI͓͍ͯͨ͠Β͍ͭͷ ؒʹ͔GPSLݩʹऔΓࠐ·Ε ͓ͯྱ·ͰݴΘΕͨ࣌ͷؾ෼

  80. ΋ͬͱ ΦϨͬͯ͹εήʔײ ΦϨͬͯ͹εήʔײ

  81. TPVSDFGPSHF GFFECBDL

  82. social communication

  83. εήʔײͷՃ଎૷ஔ IUUQXXXqJDLSDPNQIPUPTWJMMFT

  84. HJUIVCFYQMPSFS

  85. PUIFSMBOHVBHF

  86. HJUIVCTQBDF

  87. U%JBSZ PO HJUIVC

  88. U%JBSZ 3FMFBTFE

  89. Conflict Learning Methodology Resolution

  90. 3VCZJTUʹͰ͖Δ͜ͱ IUUQKQSVCZJTUOFUNBHB[JOF  8IBU8F$BO%P

  91. ΋ͬͱΦϨͬ ͯ͹εήʔײ

  92. HJUIVCFYQMPSF

  93. (PPE3VCZ-JGF