Pro Yearly is on sale from $80 to $50! »

Finding Ruby Again

Finding Ruby Again

福岡Ruby会議02のキーノート「Finding Ruby Again」の発表資料 http://regional.rubykaigi.org/fukuoka02/

76a777ff80f30bd3b390e275cce625bc?s=128

Akira Matsuda

November 25, 2017
Tweet

Transcript

  1. Finding Ruby Again @a_matsuda

  2. ʮ΋͏Ұ౓ɺ
 Rubyͱग़ձ͏ʯ

  3. Ruby͍͍ΑͶ

  4. ݱ୅ʹʮRubyϓϩάϥϚʔʯ
 ͍ͬͯ͏࢓ࣄ͕͋ͬͯຊ౰ʹ Α͔ͬͨ ਖ਼௚ɺ͜ΕҎ֎ͷੜ͖ํͰ ·ͱ΋ʹࣾձʹద߹Ͱ͖ͯ ͔ͨͲ͏͔͢͜ͿΔո͍͠

  5. RubyͷΑ͞

  6. Rubyͬͯɺ
 ͳΜ͔͍͍

  7. Կ͕ʁ

  8. ߟ͑ͯΈΑ͏͔

  9. Ruby͍͍ΑͶ͍ͬͯ͏ݸਓత ͳؾ࣋ͪΛ۷ΓԼ͛ͯΈ͍ͨ ͋͘·Ͱ΋ࣗ෼ͷମݧ͔Β དྷΔݸਓతͳ࿩Λ͠·͢

  10. ࣗ෼ͳΓʹɺRubyͷ͍ΖΜͳ Α͞Λ͍ΖΜͳ֯౓͔Βݟͯ ͖ͨͭ΋Γ RubyͷίΞ։ൃʹབྷΜͰΈͨΓRailsͱ ͔΍ͬͯΈͨΓGem࡞ͬͯΈͨΓί ϛϡχςΟ׆ಈͱ͔ΧϯϑΝϨϯεͱ ͔΍ͬͯɺͱൺֱతख޿͘΍ͬͯΔͷͰ

  11. RWCͰͷ֯୩͞Μ ͔Βͷ॓୊ νʔϜϝΠτͱʮniceʯΛ ڞ༗͠Α͏

  12. ͍͍͡ΌΜ => ͳͥʁΛਂ۷Γ ͯ͠ΈΔͱ͍͏ΦʔιυοΫε
 ͳΞϓϩʔνͰ

  13. RubyͷΑ͞ จ๏ શ͕ͯΦϒδΣΫτ ϒϩοΫ μοΫλΠϐϯά ϝλϓϩάϥϛϯά CͬΆ͞ LISPͬΆ͞ perlͬΆ͞ ୹͘ॻ͚Δ

    TIMTOWTDI UnixͬΆ͞ ӳޠͬΆ͞ DSL Ruby on Rails Active Support TDD RSpec Capybara Continuous Integration devops Webݴޠ͖ͯͳ RubyGems Bundler GitHub ιʔγϟϧίʔσΟϯά Made in Japan ੜ࢈ੑͷߴ͞ มԽɾΞδϟΠϧ ͨͷ͍͠ ΩϝΔͱؾ͍͍࣋ͪ ίϛϡχςΟ Rubyist ೔ຊRubyͷձ Δͼ· Ruby Hero Award Rails Girls rubyfriends Ruby Karaoke ΧϯϑΝϨϯε RubyKaigi ஍Ҭ.rb Asakusa.rb Matz
  14. RubyͷΑ͞ͷཁૉ͕ଟ͗ͯ͢ɺ
 ࣗ෼ʹͲ͕͜ώοτͯ͠Δͷ͔ Α͘Θ͔Βͳ͍ ͍ΖΜͳϨΠϠʔͷΑ͕͞ᕒ વҰମͱͳͬͯͯɺτʔλϧ ͷΤΫεϖϦΤϯεͱͯ͠ɺ ͳΜ͔͍͍

  15. ͨͩ͠ɺࠓ೔͸Matz is Nice ͚ͩ͸ݴΘͳ͍Α͏ʹ͢Δ ͜ΕΛݴͬͪΌ͏ͱ
 ࢥߟఀࢭʹؕΔؾ͕͢Δ

  16. ͱ͍͏Θ͚Ͱɺ
 ΋ͷ͘͢͝ݸਓతͳ࿩͔Β ݪମݧʹ໭ͬͯΈΔ RubyͱͷೃΕॳΊ

  17. WEB+DB Press Vol. 100 http:/ /gihyo.jp/ magazine/wdpress/ archive/2017/vol100

  18. RubyΛ֮͑Δ΂͘ॳΊͯ ॻ͍ͨͷ͸਺ಠιϧόʔ ͛͢ʔָ͔ͬͨ͠ Զͬͯ͹εήʔײ ͦΕͰRubyͷྂʹͳͬͯɺͦΕҎ߱ͣͬͱRuby ΍ͬͯΔ ౰࣌ͷίʔυ͸ฆࣦ

  19. ΋͏Ұ౓
 ΍ͬͯΈͨ

  20. Ϟνϕʔγϣϯ ࢠڙ͕ͨͪύζϧΛ΍ͬͯΈ Δͱ͖ʹɺ࣍ͷҰखͷߟ͑ํ ΛαδΣετͯ͘͠ΕΔΨΠ υ͕࡞Εͳ͍͔

  21. ͳͷͰɺ
 ਓؒΒ͘͠
 ߟ͑Δ΍ͭΛ mame͞ΜͷSATιϧόʔΈ͍ͨͳ಄ͷ͍͍ ΍ͭ͡Όͳͯ͘ ྗٕͰ૯౰ͨΓͰ୳ࡧͱ͔Ͱ΋ͳͯ͘ ී௨ʹਓ͕ؒߟ͑ͳ͕Βղ͘ͷͱಉ͡ײ͡Ͱ

  22. ղ๏͸ωοτ্ͰΊͬͪΌ
 ڞ༗஌Խ͞ΕͯΔͷͰ
 ͪΐͬͱζϧ͕Ͱ͖Δ ʮߟ͑ํʯʹ໊લΛ͚ͭΔͱ͖ʹ೰ ·ͳͯ͘ྑ͍ naked_pairs, intersection_removal, x_wing, etc.

  23. ͜Μͳײ͡

  24. Ͳ͏ͤͳΒɺ͍ͭͰʹࣗ෼ Ͱ΋༡΂Δ΍ͭʹ͠Α͏

  25. ίϯιʔϧ൛ ແ೉ʹ΍ΔͳΒCursesɺ͚ͩ Ͳɺͪΐͬͱoverkill͔ͳ͊ io-consoleͬͯ΍ͭΛ࢖ͬͯΈͨ

  26. io-console nobu͕࠷ۙ࡞ͬͨstdlib ͦ͏͍͑͹࢖ͬͯΈͨ͜ͱͳ͔ͬͨ IO.console ͰɺͳΜ͔ίϯιʔϧΛද͢FileͬΆ͍ΦϒδΣΫτ͕ฦͬͯ ͘Δ ͍ͦͭʹจࣈྻΛ৯ΘͤΔͱίϯιʔϧ্ʹग़ྗ͞ΕΔ Τεέʔϓγʔέϯεͱ૊Έ߹ΘͤΔͱ͔ͳΓ͍ΖΜͳ͜ͱ͕Ͱ͖Δ ίϯιʔϧͰಈ͔ͪ͢ΐͬͱͨ͠΋ͷΛ࡞Δͷʹ஍ຯʹศརͰ͋Δ͜ͱ ͕ࠓճΘ͔ͬͨ

  27. Web൛ Action CableͰରઓͰ͖Δ ਺ಠͱ͔Ͳ͏͔(ະ׬)

  28. ॳ৺ʹฦͬͯRuby
 ϓϩάϥϛϯάΛ΍ͬͯΈͨ ײ૝ ͱΓָ͍͋͑ͣ͠ʂ ָͯ͘͠ΩϚΔ େม͓͢͢Ί ॳΊͯRubyΛ৮ͬͨ࣌ͷϫΫϫΫײ͕ؼͬͯ ͖ͨ

  29. ॳΊͯRubyΛ৮ͬͨ ࣌ͷѹ౗తϫΫϫΫײ ͋ͷ࣌ɺ͜ͷָ͕͠͞શͯ Rubyͷ͓͔͛ͩͱࢥ͍ࠐΜ ͰɺRuby͛͢ʔʂͬͯͳͬͨ ͷΛࢥ͍ग़ͨ͠

  30. ͔֬ʹָ͍͠……
 ͚Ͳ ࠓ͸ͪΐͬͱେਓʹͳͬͯྫྷ੩ʹͳͬͨ ͜ͷָ͕͠͞શ෦Rubyͷ͓͔͛ͬͯΘ͚Ͱ͸ͳ͍͔΋ Ruby͔ͩΒͨͷ͍͠ɺଞݴޠͩͬͨΒָ͘͠ͳ͍ɺͬͯΘ͚Ͱ͸ͳ ͦ͞͏ ϓϩάϥϜͰύζϧΛղ͘͜ͱͦΕࣗମָ͕͍͠ʹܾ·ͬͯΔͷͰ ౰࣌ͷࣗ෼͸ὃ͞ΕͯͨՄೳੑ͕͋Δ

  31. ࠓճͷ৔߹ͷRuby ͷΑ͞ ϓϩάϥϛϯάຊདྷͷʮָ͍͠ʯΛअຐ͠ͳ͍ ୹͍ίʔυͰॻ͚Δ ࣗવͳOOPػೳ ߟ͑ͨͱ͓Γʹॻ͍ͨΒಈ͍ͯ͘ΕΔ

  32. ಄ͷதͰߟ͑ͨͱ͓Γʹ ίʔυͰදݱͰ͖Δײ֮ ͨͷ͍͠ʂ ΍ͬͺEnumerableศར ͋Δ΂͖ͱ͜Ζʹ͋Δϝιουͨͪ ࠷ۙ૿͑ͨϝιουͨͪ΋͚ͬ͜͏खʹೃછΜ Ͱͯࣗવʹग़ͯ͘Δ

  33. ͜ͷ͋ͨΓ͕Ruby ͳΒͰ͸ ͱࢥ͍·ͨ͠ɻ

  34. ͜ͷɺ಄ͷதͰߟ͑ͨͱ͓Γ ʹίʔυͰදݱͰ͖Δɺͬͯ ͍͏ͷ͕͚ͬ͜͏େࣄ ਓ͕ؒػցͷ΍Γํʹ߹ΘͤΔΜ͡Όͳ ͯ͘ɺίϯϐϡʔλʔ͕ਓؒʹาΈدͬ ͯ͘ΕΔͷΛײ͡Δ Ruby͕Developer HappinessʹϑΥʔΧ ε͍ͯ͠Δɺͱ͍͏ͷ͕Α͘Θ͔Δ

  35. Ruby͸ਓؒΒ͠͞ Λଚॏͯ͘͠ΕΔ ͔ͩΒ͍͍ؾ෼Ͱίʔυ͕ ॻ͚Δͷ͔΋

  36. ͦ͏͍͑͹Bugsʹ
 ͜ΜͳIssue͕͋Γ·͕͢

  37. "Follow style conventions for Ruby code" RubyʹελΠϧΨΠυ͕͋Δ΂ ͖Ͱ͸ʁ͍ͬͯ͏issue https:/ /bugs.ruby-lang.org/

    issues/14112
  38. ੈͷதʹ͸Θ͟Θ͟ෆࣗ༝Λ ޷ΉRubyϓϩάϥϚʔ΋ډΔ ΜͰ͢Ͷ ͔ͤͬࣗ͘༝Λ༩͑ΒΕ͍ͯΔͷʹͳͥ ࣗ෼͔ΒਐΜͰෆࣗ༝ʹͳΓ͕ͨΔͷ͔ʁ ਓ͕ؒػցΑΓ΋Ғ͘࡞ΒΕ͍ͯΔͷʹ ͳͥࣗΒਐΜͰػցͷԼ๻ʹͳΓ͕͞Ζ͏ ͱ͍͏ͷ͔ʁ

  39. Martinઌੜͷ࠷ߴʹ
 Χοί͍͍͓ฦࣄΑΓ "In many cases, there is not a single

    way of writing Ruby, and that's part of Ruby's culture." https:/ /bugs.ruby-lang.org/ issues/14112#note-1
  40. ଟ༷ੑ͸ળͬͯ
 ͍ͭ΋ݴͬͯΔͰ͠ΐʁ

  41. ͱ͜ΖͰɺݱ࣮ੈքͰ͸
 RubyϓϩάϥϚʔ == RailsϓϩάϥϚʔ
 ʹҧ͍ͳ͍ͷͰ ࣍͸Railsͷ࿩Λ͠·͢

  42. ͳͥΈΜͳRailsΛ ࢖͍ͬͯΔͷ͔ʁ Rails΋૬౰ָ͍͠ ࣗ෼͸10೥Ҏ্ͣͬͱ࢓ࣄͰRails Λ΍ͬͯΔ͚Ͳ͍·ͩʹָ͍͠

  43. ͳͥRails͸
 ָ͍͠ͷ͔ʁ Rails͸RubyͷΑ͞ΛWebϓϩάϥϛ ϯάͷੈքʹ࣋ͪࠐΉͨΊͷ࢓૊Έ Ruby vs Rails Ͱ͸ͳ͘ɺ
 Rails <

    Ruby
  44. Ruby͔ΒҾ͖ܧ͍ͩ
 RailsͷΑ͞ গͳ͍ίʔυྔ ॻ͔ͳͯ͘΋ྑ͍ίʔυΛॻ͔ͳ͍͜ͱͰɺ໰ ୊ͷຊ࣭ʹूதͰ͖Δ ߟ͑ͨͱ͓Γʹ͔͚Δࣗવ͞ ߴ͍ੜ࢈ੑ

  45. Railsͷதͷਓͨͪ͸
 ΄Μͱ͏ʹRuby͕େ޷͖

  46. DHH "Why Ruby?" @ RubyConf 2010

  47. Jeremy "Rails3:Convergent evolution" @ RubyWorld Conference 2009

  48. ͦΜͳײ͡ͰɺRailsνʔϜ͸ ৺ͷఈ͔ΒRubyΛϦεϖΫτ ͍ͯ͠Δ͜ͱ͕Θ͔Δ

  49. ΋͏ͻͱͭͷRails ͷΑ͞ Ruby͕࢓ࣄʹͳͬͯΔ ͜Ε͍͢͝େࣄ

  50. ࢓ࣄͰ
 ϓϩάϥϛϯά ސ٬ͱϓϩάϥϚʔ͕ͭͳ͕Δ ݱ࣮ੈքʹ͋Δݱ࣮ͷ໰୊ΛϓϩάϥϛϯάͰղܾ͢ Δ ݱ࣮ੈքʹՁ஋ΛੜΈग़͢ ࣗ෼ͷύιίϯͷதͰύζϧΛղ͘ͷͱ͸·ͨεςʔ δͷҧ͏تͼ

  51. ΋ͪΖΜRails͡Όͳ͖Ό Ͱ͖ͳ͍Θ͚͡Όͳ͍͚Ͳ ੜ࢈ੑɾอकੑͷߴ͞ => ίεύͷྑ͞ => ސ٬ͷتͼʹ௚݁

  52. Rails͞ΜɺRubyΛ͓ۚʹ ม͑ͯ͘Εͯ͋Γ͕ͱ͏

  53. ͦΕͰɺ๻͸RailsΛ࢓ࣄʹ
 ͢ΔΑ͏ʹͳͬͯɺ
 Rails͕େ޷͖ʹͳͬͨ ϚχΞͳͷͰɺڵຯͷର৅͕Rails ͦͷ΋ͷʹ޲͔ͬͨ ౰࣌͸ಉ޷ͷ͕࢜ͨ͘͞Μ͍ͯɺ ʮRailsษڧձ@౦ژʯʹຖ݄ूͬͨ

  54. ͜ͷ͜ΖΘ͔ͬͨ RailsͷΑ͞ Rails͸ίʔυ͕ಡΊΔ ͔͠΋ΞϓϦέʔγϣϯͰॻ͍ͯΔݴ ޠ͔Βͦͷ··ίϯςΩετεΠονͳ ͠ͰϑϨʔϜϫʔΫͷίʔυ͕ಡΊΔ

  55. ͳͥRails͸ίʔυ ͕ಡΊΔͷ͔ʁ ιʔείʔυ͕ެ։͞Ε͍ͯΔ͔Β Railsࣗମͷίʔυ͕pure RubyͰॻ͔Ε͍ͯΔ͔ Β Ruby͕ΠϯλʔϓϦλݴޠ͔ͩΒ ͪͳΈʹgem-src΂ΜΓͰ͢

  56. ๻ʹͱͬͯͷRails ຊ֨తʹOSS׆ಈ࢝͠Ίͨ ͖͔͚ͬ

  57. ͳͥRailsͰOSSʁ RailsͷόάΛΑ͘౿Ή͔Β Rails͸ϏδωεͷجװʹͳΔιϑτ΢ΣΞͳͷ ͰɺόάͬͯΔͱͱͯ΋ࠔΔ͔Β ͭ·Γ௚͔͢͠ͳ͍͔Β ͙͢ʹύον͕ॻ͖΍͍͢؀ڥ͕੔ͬͯΔ͔Β

  58. ͳͥRailsͷόά͸
 Α͘౿ΜͰ͠·͏ͷ͔ʁ ࢓ࣄͰຖ೔࢖ͬͯΔ͔Β Rails͕Α͘όάͬͯΔ͔ Β

  59. ͳͥRails͸Α͘
 όάͬͯΔͷ͔ʁ Webͷੈք͸೔ਐ݄าͳͷͰɺ৽ػೳΛͲΜͲΜೖΕ͍͔ͯͳ ͖Ό͍͚ͳ͍ɻ҆ఆ͍ͤͯ͞Δ༨༟͕ͳ͍ όάʹؾ෇͍ͨ୭͔͕ύονΛ౤͛ͯ͘ΕΔγεςϜ͕੔ͬͯ ͍ΔͷͰɺඞͣ͠΋ίϛολʔ͕શͯͷόάΛ௵͠੾Βͳͯ͘ ΋ͳΜͱ͔ͳΔ ʮίϯτϦϏϡʔλʔʯͷڵຯΛऒ͖ଓ͚ΔͨΊʹDHH͕Θ͟ ͱࢃ͍͍ͯΔ㕒…ͩͬͨΓͯ͠

  60. OSSͱͯ͠ͷRails ͷΑ͍ͱ͜Ζ ͱʹ͔͘ύονΛॻ͘伱͕ଟ͍ GitHub + Travis CIͰɺ୭Ͱ΋αΫοͱύον͕ૹΕΔ࢓૊Έ͕੔උ͞ Ε͍ͯΔ ίϛολʔਞͷϨϏϡʔͷ໘౗ݟͷྑ͞ contributor

    (= কདྷͷίϛολʔ͔΋͠Εͳ͍)Λͱͯ΋େࣄʹ͢Δจ Խ http:/ /contributors.rubyonrails.org/
  61. Railsͷίϛολʔʹ ͳͬͯΈͯΘ͔ͬͨ͜ͱ ن໛ͷׂʹ͍͢͝গਓ਺(Θ͔ͣ18ਓ) ͙͢ʹશһͱձͬͯإͱ໊લ͕֮͑ ΒΕΔαΠζͷνʔϜ ΈΜͳ͍͍Ϡπ

  62. RailsͷॊೈͳϓϥάΠϯػߏ ͱɺ
 ͦͷ্Ͱҭ·ΕͨϥΠϒϥϦ܈ Ϣʔβʔ͔ΒݟΔͱ ΞϓϦͰඞཁͳػೳΛશͯࣗ෼Ͱ࡞Βͳͯ͘΋ɺ୭͔͕ ࡞ͬͯ͘ΕͯΔ΋ͷΛಋೖ͢Δ͚ͩͰࡁΜͩΓͯ͠ศར Railsଆͱͯ͠͸ શͯͷϢʔεέʔεΛRailsຊମ๊͕͑ͳͯ͘΋ྑ͘ͳͬ ͍ͯΔ

  63. RailsΞϓϦ԰Λ௕͘΍ͬͯΔͱɺ
 Ͳ͏ͯ͠΋ϥΠϒϥϦʹ΋
 खΛग़͢͜ͱʹͳΔ Ͳ͔ͬͷ୭͔͕ద౰ʹ࡞ͬͨϥΠϒϥϦ͕ࣗ෼ͷ࣮ Ҋ݅ͷχʔζΛ͍ͭ΋׬ᘳʹຬͨͯ͘͠ΕΔͱ͸ݶ Βͳ͍ ͔͠΋͍͍ͩͨόάͬͯΔ ͷͰɺPRͨ͠Γࣗ෼Ͱ࡞Γ௚ͨ͠Γ͢ΔӋ໨ʹͳΔ

  64. ͳͥ๻͸ଞਓͷόά ΛΑ͘౿Ήͷ͔ʁ όάΛ౿Ήʹ͸ίπ͕͋Δ ଞਓͷॻ͍ͨίʔυΛ৴༻͗͢͠ ͳ͍ ઌͬͪΐΛ࢖͏

  65. ଞਓͷॻ͍ͨίʔυ Λ৴༻͗͢͠ͳ͍ ಛʹɺձͬͨ͜ͱ΋ͳ͍੺ͷଞਓ͕ॻ͍ͨίʔ υͷ඼࣭Λ໡໨తʹ৴པ͢Δͷ͸όΫνͰ͔͠ ͳ͍͠ɺ࣮ࡍෛ͚Δ֬཰͕͔ͳΓߴ͍ ͷͰɺ൓ରʹͳΔ΂͘όάΛ౿Έͨ͘ͳ͍৔߹ ͸ɺͰ͖Δ͚ͩ৴པͷ͓͚Δ༑ਓ͕ॻ͍ͨϥΠ ϒϥϦ͚ͩΛ࢖͏Α͏ʹ͢Δ

  66. ઌͬͪΐΛ࢖͏ ৽͍͚͠Ε͹৽͍͠΄ͲଟػೳͰચ࿅͞Ε͍ͯΔ͸ͣ ͳͷͰɺͳΔ΂͘৽͍͠΋ͷΛ࢖͏΂͖ ʮރΕͨ΋ͷʯΛ࢖͏ΑΓ΋ͦͷ΄͏ָ͕͍͠ Ruby: rbenv install 2.5.0-dev Rails: rails

    new --dev Gem: gem 'hogehoge', git: 'https:/ /github.com/...'
  67. To PR, or to Create Your Own? طଘͷϥΠϒϥϦ͸େے໰୊ͳͯ͘ɺͪΐͬͱखΛՃ͑ͨΒ࢖ ͍෺ʹͳΓͦ͏ =>

    ΀ΔΓ طଘͷϥΠϒϥϦͷίʔυΛಡΜͰΈͨΒશવμϝμϝͰɺ͔ ͳΓେ෯ʹॻ͖׵͕͑ඞཁ => ೰·͍͠ɻ૬खʹΑΔ͔΋ طଘͷϥΠϒϥϦͷΠέͯͳ͍ίʔυΛಡΜͰΔ͏ͪʹɺࣗ෼ ͳΒ΋ͬͱΤϨΨϯτͳઃܭɾ࣮૷͕Ͱ͖Δ͜ͱʹؾ͍ͮͯ͠ ·ͬͨ => ࡞Δ͔͠
  68. ͳͥOSSʹίϯτϦ Ϗϡʔτ͢Δͷ͔ʁ ίϯτϦϏϡʔτͬͯݴ͏ͳʂ ๻͸ʮOSSʹίϯτϦϏϡʔτ͍ͨ͠ʯͱ͔ඍਖ΋ࢥ͍ͬͯͳ͍ ଞਓͷͨΊʹίʔυΛॻ͖͍ͨΘ͚Ͱ͸ͳ͘ɺࣗ෼͕ࣗ෼ͷ໰ ୊Λࣗ෼Ͱղܾ͍͔ͨ͠Β΍Δ ࣗ෼ͷ෦԰ʹΰϛ͕མͪͯͨΒरͬͯΰϛശʹೖΕͨ͘ͳΔͷͱ Ұॹ

  69. ڊਓͷݞʹ৐ͬͯ
 ίʔυΛॻ͘ͱ͍͏͜ͱ ݱ୅ͷRailsΞϓϦ։ൃ͸ɺແ਺ͷҒ େͳઌਓͨͪͷ͓ੈ࿩ʹͳ͍ͬͯΔ ઌਓͨͪͷ஌ܙͱҨ࢈ΛआΓͯΔΠ ϝʔδ

  70. ίʔυͷआΓ͸ ίʔυͰฦ͢ ʮߩݙʯͱ͔͓͕͜·͍͠

  71. ͦΜͳ͜ΜͳͰ๻͕ ࡞ͬͨϥΠϒϥϦ kaminari active_decorator action_args database_rewinder stateful_enum jb i18n_generators hocus_pocus

    gem_src ͳͲͳͲ
  72. ͳͥϥΠϒϥϦΛ ࡞Δͷ͔ʁ ΂ͭʹʮϥΠϒϥϦΛ࡞Ζ͏ʂʯͱ͍͏໨త͋Γ͖Ͱ͸ͳ͍ ࡞ΒͣʹࡁΉͳΒ࡞Βͳ͍ʹӽͨ͜͠ͱ͸ͳ͍ɻϝϯςͱ͔μ ϧ͍͠ ࢖͍͍ͨ΋ͷͷΠϝʔδ͕ઌʹ͋ͬͯɺԿ͔ͷ͸ͣΈʹ࣮૷ͷ Πϝʔδ͕͖߱ͬͯͯɺͦΕΛܗʹ͢Δײ͔͡΋ Ͱ΋Ͳ͏ͤ࡞Δ͔Βʹ͸ΈΜͳʹ࢖ͬͯ΋Β͑ͨΒ͍͍ͳɺͱ ࢥͬͯ࡞Δ

  73. ࡞Δͱ͖ͷίπ ໰୊ͷҰൠԽɾہॴԽɺιϦϡʔγϣϯͷ൚༻ԽɺͷΑ͏ͳ ந৅Խೳྗ͸ඞཁ ख͟ΘΓॏཁ RubyΒ͠͞ɺRailsΒ͠͞ͷԆ௕ઢ্͔Βҳ୤͠ͳ͍ ؾ࣋ͪΑ͞ == ΊΜͲ͘͘͞ͳ͞ υΩϡϝϯτΛΖ͘ʹಡ·ͳͯ͘΋͍͍ͩͨ࢖͑Δͷ͕ཧ૝

  74. ίʔυΛॻ͘ܦݧΛੵΉͱɺ ෆ۩߹Λෆ۩߹ͱݟൈ͘ྗ͕ ͭ͘ RubyͷϥΠϒϥϦʹͱͬͯɺख͟ΘΓͷѱ ͞΍࢖༻ײͷؾ࣋ͪྑ͘ͳ͞͸΋͸΍ෆ۩߹ ͜͏ͯ͠ײੑ͕ຏ͔Ε͍ͯ͘ ٯʹɺؾ࣋ͪͷྑ͍ίʔυ΍ίϛοτΛͨ͘ ͞ΜಡΉ͜ͱ΋ॏཁ

  75. Rubyͷ
 ΤίγεςϜͷΑ͞ ཉ͍͠ͱࢥͬͨ΋ͷ͕͙͢࡞ΕΔ ࡞ͬͨΒଈ࠲ʹΠϯλʔωοτʹެ։Ͱ͖ Δ ެ։ͨ͠Β͙͢ʹ୭͔͕ݟͯ͘ΕΔɺ࢖ͬ ͯ͘ΕΔɺϑΟʔυόοΫΛ͘ΕΔ

  76. ͳͥRubyͷΤίγεςϜ͸
 ͜Μͳʹ͏·͘ճ͍ͬͯΔͷ ͔ʁ ΍ͬͺRuby͔ͩΒʁ RubyGemsͱ͍͏γϯϓϧͰ੒ख़ͨ͠ύοέʔδϯάγεςϜͷ͓͔͛ ͦͷRubyGemsͷػೳͷ଍Γͳ͍ͱ͜ΖΛ͏·͘ิ͏Bundlerͷઈົͷ ͞͡Ճݮ GitHubͱ͍͏౔৕ GitHubͷΦϯϥΠϯίϛϡχςΟΛิ׬͢ΔϦΞϧͳRubyίϛϡχ ςΟͷଘࡏ

  77. ΍ͬͺRuby ݴޠ࢓༷ͷӳޠͬΆ͞ ୹͍ίʔυͰॻ͚Δදݱྗ ͷߴ͞

  78. ࣗવݴޠʹ͍ۙ ࣗવʹಡΊΔ ࣗવʹॻ͚Δ

  79. ίϛϡχέʔγϣϯͷ ಓ۩ͱͯ͠༏Ε͍ͯΔ

  80. νʔϜ։ൃʹ
 ޲͍͍ͯΔ ͓࢓ࣄͰ࢖͏ͷʹ͓͢͢Ί

  81. OSS΋੝Γ্͕Γ ΍͍͢ ύονͷҙਤ͕ಡΈऔΓ΍ ͍͢

  82. GH্ͷιʔγϟϧίʔσΟϯά
 ͱϦΞϧͳRubyίϛϡχςΟͷ όϥϯε GH͚ͩͰ͸ੈք͸׬݁͠ͳ͍ ίʔυ͸ਓ͕ؒॻ͘΋ͷ͔ͩΒ ਓΛ஌Δͱͦͷਓͷίʔυ͕ݟ͑ͯ͘Δ͜ͱ΋͋Δ ͱ͍͏͔ɺ͘͢͝Α͋͘Δ ͷͰɺ͓ؾʹೖΓͷίʔυ͕͋ͬͨΒͦͷ࡞ऀʹձ͍ʹߦ ͜͏ʂ

  83. RubyίϛϡχςΟ ʹग़ձ͏ʹ͸ ੈքதͰ։࠵͞Ε͍ͯΔΧϯϑΝϨϯε ʹࢀՃ͢Δͷ͕Ұ൪ͯͬͱΓૣ͍ ͍ΖΜͳ஍ҬͷΧϯϑΝϨϯεʹߦͬͯ ΈΔͱͦͷ஍ҬݶఆΩϟϥʹձ͑ͨΓ͢ ΔͷͰ͓͢͢Ί

  84. RubyϓϩάϥϚʔΛ΍ͬͯΔ ͱੈքͷ͍ΖΜͳࠃʹߦ͚Δ ͦΕͧΕͷࠃʹݱ஍ͷ༑ୡ͕͍ ͯ؍ޫҊ಺ͯ͠΋Β͑ͨΓ΋͢ Δ ͍ΘΏΔrubyfriendsͬͯ΍ͭ

  85. ࣮ࡍʹձͬͨ͜ͱͷ͋Δ৴པͷ Ͱ͖Δ༑ਓͷॻ͍ͨϥΠϒϥϦ Λ࢖͏ͱ͖ͬ͞ݴ͚ͬͨͲ ͭ·ΓɺΧϯϑΝϨϯεʹࢀՃ͢ Δ͜ͱͰަ༑ؔ܎ͷྠ͕޿͕ͬ ͯɺ݁Ռͱͯ͠ɺΦϯϥΠϯͰͷ ϓϨθϯεͷ޲্ʹ΋ܨ͕Δ

  86. ࠓ·ͰʹࢀՃͨ͠ੈք ͷRubyΧϯϑΝϨϯε RubyConf RailsConf EuRuKo Ruby on Ales RubyConf Taiwan

    RedDot RubyConf Lone Star RubyConf Ruby Shift RubyConf India Rails Pacific Rails Israel Moutain West RubyConf Modern Web RubyConf Philippines RubyConf Brasil Rails Club RubyConf Malaysia ͳͲͳͲ
  87. ೔ຊ͕ੈքʹތΔRuby ͷࠃࡍΧϯϑΝϨϯε

  88. RubyKaigi

  89. ๻ͨͪ͸ͳͥKaigi ʹߦ͘ͷ͔ʁ

  90. ๻ͷ৔߹ ಌΕͷRubyistͨͪΛݟ෺ ͠ʹߦ͘ ͕࠷ॳͷ͖͔͚͔ͬͳ͊ʁ

  91. ͳͥಌΕͷRubyistͨͪ΍ rubyfriendsͨͪʹ
 ձ͍ʹߦ͖͍ͨͷ͔ʁ "Rubyistist"͔ͩΒ

  92. Rubyist-ist RubyΛॻ͍ͯΔਓ͕ͨͪ ؾʹͳͬͯ͠ΐ͏͕ͳ͍ͱ ͍͏පؾ

  93. Rubyististʹ
 ͳ͖͔͚ͬͨͬ Rubyist Hotlinks ॳظͷRubyKaigi Railsษڧձ@౦ژ Asakusa.rb

  94. Rubyist Hotlinks Δͼ·ͷਓؾίʔφʔ ͜ΕΛಡΜͰɾɾɾʰRubyistʱʹ͋ ͕͜ΕΔΑ͏ʹͳͬͨͷͩʂ ͩ͞͞͞Μɺ͋Γ͕ͱ͏͍͟͝·͢ʂ

  95. Rubyist͸Rubyist ʹͻ͔Ε߹͏ ࠷ॳ͸ɺRuby࡞ͬͯΔਓͱ͔Δͼ·ʹࡌͬͯͨਓͷ࣮ ෺͕ݟΕΔɺͱ͍͏ϛʔϋʔͳ໨త Rubyist͕େ੎ू·ΔͱɺԿ͔ͱΜͰ΋ͳ͍͜ͱ͕ى ͜Δ ωοτͷதͷੈքͱϦΞϧͷੈք͕ަΘͬͯԽֶ൓Ԡ ͕ى͖Δ৔ʹډ߹ΘͤΔͷָ͕͍͠

  96. ༨ஊͳ͕Βɺ

  97. Rubyist͸Rubyistʹ ͻ͔Ε߹͏ɺͱ͍͑͹ ͜Εͦ͜஍Ҭ.rb ͷݪಈྗ

  98. Asakusa஍Ҭ
 ͷ৔߹

  99. ҎԼͷ໘ʑ͕ΈΜͳ๻ͷՈ
 ͔Βెาݍ಺ͱ͍͏ҟৗࣄଶ @_ko1 @nalsh @_zzak @shyouhei @hsbt @k0kubun

  100. ͦΜͳAsakusaͰmeetup ͩͯ͠͠ɺ΋͏10೥໨ ࠓͰ΋ຖि1ճू·ͬͯμϕΓ ଓ͚ͯͯ΋·ͩ๞͖ͳ͍ͷ ͰɺRubyist΍ͬͺ໘ന͍ͳʔ

  101. ؓ࿩ٳ୊

  102. ͳͥ๻͸RubyKaigi Λ࢝Ίͨͷ͔ʁ ͦΜͳେ޷͖ͳRubyKaigiͷલ೚ऀ͕ͨͪ೩͑ ਚ͖͔ͨԿ͔Ͱɺ΋͏΍ΊΑ͏ͥͱ͔ݴ͍ग़͠ ͨ ๻͸RubyKaigi͕ͳ͘ͳͬͯ͠·ͬͨΒͱͯ΋ ൵͍͠ͷͰɺ͡Ό͋๻͕΍Γ·͢ɺͬͯݴͬͨ

  103. ͳͥ๻ͨͪ͸Kaigi Λ͢Δͷ͔ʁ ੈքதͲ͜ͷΧϯϑΝϨϯεʹߦͬͯ ΋ɺࣗ෼͕࠷ߴʹຬ଍Ͱ͖Δཧ૝ͷΧϯ ϑΝϨϯε͕ແ͍͔Β ແ͍ͷͰɺࣗ෼Ͱ࠷ߴͷΧϯϑΝϨϯε Λ࡞Δ͔͠ͳ͍

  104. ࠷ߴͷ
 ΧϯϑΝϨϯε ୭͕Ͳ͏ݟͯ΋RubyKaigi ͸͍͍ͩͨຖ೥࠷ߴ(ࣗը ࣗࢍ)

  105. ͳͥRubyKaigi͸ ࠷ߴͳͷ͔ʁ ࢀߟจݙ: Gaijin Guide to RubyKaigi https:/ /schneems.com/ 2017/09/27/gaijin-guide-to-

    rubykaigi/
  106. Gaijin Guide to RubyKaigi "If you’re looking to get a

    talk accepted there, know that the conference HEAVILY favors technical talks" — schneems
  107. RubyKaigi͸
 ςΫ͍ͷ͕͓޷͖ ·͊ͦ͏ͳΜ͚ͩͲɻ ʮΊͬͪΌςΫ͍΍ͭఏҊ͠ͳ ͍ͱ࠾୒͞Εͳ͍Αʯͩͱ30఺ ͙Β͍͔͠Θ͔ͬͯͳ͍

  108. ԶΒ͕ԿͷͨΊʹRubyKaigi ΍ͬͯΔͷ͔͕ͥΜͥΜ
 Θ͔ͬͯͳ͍

  109. RubyKaigi͸ɺ Rubyͷɺ Φʔϓϯιʔεɾιϑτ΢ΣΞͷɺ ςΫϊϩδʔɾΧϯϑΝϨϯεͰ ͢ɻ

  110. RubyKaigi͸ɺීஈ͔Β
 ίʔυΛॻ͍ͯΔਓͷ࿩Λ
 ฉͨ͘ΊͷΧϯϑΝϨϯε

  111. RubyKaigi͸Blind Reviewͱ͔͠ͳ͍ ීஈ͔Βpublicͳͱ͜ΖͰίʔυΛ ॻ͍ͯΔਓ͔͠࠾༻ͨ͘͠ͳ͍͔Β ϓϩϙʔβϧͷ࡞จςΫχοΫͱ͔ ͸Ͳ͏Ͱ΋͍͍

  112. ͳͷͰɺRubyKaigiͰ ొஃ͢Δͷ͸࣮͸؆୯ ྑ͍ίʔυΛॻ͘ ͦΕΛࡽ͢ ͦΕʹ͍ͭͯ࿩͢ ͦΕ͚ͩ

  113. ͳͥRubyKaigi͸ίʔυΛ
 ॻ͍ͯΔਓ͔͠ొஃͰ͖ͳ͍ ͷ͔ʁ ͦ͏͍͏ਓʹݶͬͯ໨ཱͭεΩϧ͕ෆ଍ͯ͠ ͍ͯ஌ΒΕ͍ͯͳ͍৔߹͕ଟ͍͔Β ͦ͏͍͏ਓͷ͜ͱΛ๻͕΋ͬͱ஌Γ͍͔ͨΒ ͦ͏͍͏ਓͷ͜ͱΛΈΜͳʹ΋΋ͬͱ஌ͬͯ ΄͍͔͠Β

  114. ͱ͜ΖͰࠓ೥ͷ RubyKaigiͷτϐοΫ ݦஶͳภΓͬ΀Γ

  115. ࠓ೥ͷRubyKaigiͰ ໨ཱͬͨτϐοΫ3બ type concurrency (Fiber) performance

  116. ͳͥRubyKaigi͸্ه3ͭ ͷ࿩୊ʹภ͍ͬͯͨͷ͔ʁ

  117. Ruby 3͕໨ࢦ͢
 3ͭͷΰʔϧ type concurrency performance

  118. RubyKaigiͷ΋͏
 ͻͱͭͷϛογϣϯ

  119. Rubyͷ։ൃΛۦಈ ͢Δ

  120. Rubyͷ։ൃ ࣗ෼͕ͨͪຖ೔஻ͬͯΔݴޠ͕೔ʑ࡞ΒΕ͍ͯ Δ ͦΕ΋೔ຊͰ ࣗ෼ʹ͍ۙͱ͜ΖͰ ࣗ෼΋ͦͷӦΈʹࢀՃ͢Δ͜ͱ͕Ͱ͖Δ

  121. ͜Εͬͯੌ͘ͳ͍ Ͱ͔͢ʁ ͦΜͳதɺಉ࣌୅ʹ೔ຊͰRuby ϓϩάϥϚʔΛ΍ͬͯΔͬͯɺ ح੻͡Όͳ͍Ͱ͔͢ʁ ࠷ߴʹ޾ӡ͡Όͳ͍Ͱ͔͢ʁ

  122. ͜Μͳ಄ͷ͓͔͍͠ޫܠ͕
 ݟΕΔͷ͸RubyKaigi͚ͩ
 Ͱ͢Αʂ

  123. RubyKaigi͸ɺͦΜͳRuby ͷ։ൃͷखॿ͚Λ͍ͨ͠ Rubyͷ࣍ظόʔδϣϯͷΰʔϧʹ޲͔࣮ͬͯࡍʹίʔυΛ ॻ͍͍ͯΔਓ͕ͨͪίʔυΛ࣋ͪدͬͯ ࣗ෼ͷॻ͍ͨίʔυʹ͍ͭͯࣗຫେձΛ܁Γ޿͛ͯ ͔ͦ͜Βٞ࿦͕ੜ·Εͯ Rubyࣗମͷ։ൃ͕ਐΉ ͦΜͳ͖͔͚ͬ

  124. Rubyͷΰʔϧ͸ RubyKaigiͷΰʔϧ

  125. ͜Ε͕๻Βͷ໨ࢦ͢
 RubyKaigiͩʂ

  126. ͱ͸͍͑ɺࠓ೥ͷKaigiͷ
 τϐοΫ͸ͪΐͬͱ
 ภΓ͔͗ͨ͢΋ RubyKaigiͰ͸ଟ༷ੑ΋େࣄʹ͍ͨ͠ ଟ༷ੑ͸ળ ΈΜͳͱҧ͏͜ͱΛ΍ͬͯΔਓͷ࿩ Λฉ͖͍ͨ

  127. ͨͱ͑͹ɺ Railsͷ͓͔͛ͰRuby͸WebͷੈքΛ׬શʹ ੐෰͠ਚͯ͘͠͠·ͬͨͷͰ ͡Ό͋Rubyͷ࣍ͷ૬ख͸୭ͩʁ ͦ͜Ͱ࣮ࡍʹखΛಈ͔ͯ͠ઓ͍ͬͯΔਓͷ࿩ Λ΋ͬͱฉ͖͍ͨʂ

  128. ੈք͸·ͩ·ͩະղܾ ͷ໰୊Ͱຬ͍ͪͯΔ RubyͰɺ·ͩ୭΋΍ͬͯͳ͍͜ͱΛ ΍Ζ͏ʂ ϓϩϙʔβϧ͓଴ͪͯ͠·͢ʂ (͢Έ·ͤΜɺ๻΋͕Μ͹Γ·͢)

  129. ·ͱΊ

  130. RubyͷΑ͞͸
 ͻͱͭ͡Όͳ͍ ΈΜͳ͕ͪͬͯΈΜͳ͍͍ օ͞ΜͦΕͧΕࣗ෼ͳΓͷRuby ͷΑ͞Λݟ͚ͭͯΈ͍ͯͩ͘͞

  131. ຊ೔
 ͓࿩ͨ͜͠͠ͱ

  132. Ruby͸ਓؒΒ͠͞ Λଚॏͯ͘͠ΕΔ

  133. ͔ͩΒɺ๻ͨͪ
 RubyϓϩάϥϚʔ͸
 ਓؒΛଚॏ͍ͨ͠

  134. Rubyͷૉ੖Β͠͞͸ ਓؒͷૉ੖Β͠͞ʂ

  135. end