文系から半年でRuby(Sinatra, Rails)を学んだら人生変わった@沖縄Ruby会議02

文系から半年でRuby(Sinatra, Rails)を学んだら人生変わった@沖縄Ruby会議02

2018年3月10日に開催された沖縄Ruby会議02で発表した資料です。

さぼさん(@saboyutaka)[https://twitter.com/saboyutaka]
まさ(@Masah201707)[https://twitter.com/Masah201707]
まさ@ブログ書き込み中[http://masa-world.hateblo.jp/archive]

Ae66fee98da28827d5404ae085f75223?s=128

Masayoshi Tokumoto

March 10, 2018
Tweet

Transcript

  1. จܥ͔Β൒೥ͰRubyʢSinatra RailsʣΛֶΜͩΒਓੜมΘͬͨ ಙݩ কٛ

  2. ࣗݾ঺հ • ಙݩ কٛʢͱ͘΋ͱɹ·͞Α͠ʣ • ླྀେ࢈ۀܦӦֶՊ࢛೥ • 2017೥4݄͔Β͞΅ (@saboyutaka) ͞ΜͷԼͰWebΤ

    ϯδχΞΛ໨ࢦ͢ • ISUCON2017 • 4݄ʹʮΈΜͳͷ΢ΣσΟϯάʯ ʹब৬͠·͢ • ϒϩάɿ·͞ˏϒϩάॻ͖ࠐΈத
  3. ࠓ೔࿩͍ͨ͜͠ͱ 1. Rubyͷॳֶऀ͕΍ͬͨ΄͏ֶ͕͍͍शखॱ 2. RubyΛֶΜͰมΘͬͨ͜ͱ

  4. ॳֶऀ͕RubyΛֶͿ࣌ʹ΍ͬͨํ͕͍͍खॱ ʢRailsνϡʔτϦΞϧ͔Β΍Βͳ͍ʂʣ 1. Webʹ͍ͭͯཧղ͢Δ 2. HTMLˍCSSʹ͍ͭͯཧղ͢Δ 3. Rubyͷجຊʹ͍ͭͯཧղ͢Δ 4. SinatraΛֶΜͰΞϓϦΛ࡞Δ

    5. RailsνϡʔτϦΞϧΛ΍ͬͯΞϓϦΛ࡞Δ
  5. Webʹ͍ͭͯཧղ͢Δ • ͦ΋ͦ΋ʮWebΞϓϦέʔγϣϯͬ ͯͳʹʯ͔Βཧղ͢Δ • HTTPɺηογϣϯɺWebͷࡾ૚ߏ ଄ • ͜ΕΛΘ͔͍ͬͯͳ͍ͱWindows͠ ͔஌Βͳ͍จܥ͸ΤϯδχΞ͕΍ͬ

    ͍ͯΔ͜ͱͱࣗ෼ͷ஌͍ͬͯΔΠϯ λʔωοτͷੈք͕ܨ͕Βͳ͍ • ͜ΕΛ΍Βͳ͍ͱʮͳΜ͔ΨνϟΨ νϟ΍Δͱ͏·͍͘͘ʯͱ͍ͬͨϨ ϕϧͷཧղʹͳͬͯ͠·͏͜ͱ΋ Ҿ༻ݩ https://www.amazon.co.jp/dp/4774142352
  6. HTML&CSSʹ͍ͭͯཧղ͢Δ • WebϓϩάϥϛϯάΛ͢ΔͳΒආ ͚ͯ௨Εͳ͍ • SinatraͰ΋RailsͰ΋ERBͱ͍͏ ςϯϓϨʔτΤϯδϯΛ࢖ͬͯ HTMLΛඳը͢Δ͠ɺͦ΋ͦ΋ Viewʢϑϩϯτʣ͔ΒϦΫΤετ ͕དྷͨΓσʔλ͕ඈΜͰ͘ΔͷͰ

    ඞਢ • HTMLͱCSSΛProgateͰֶΜͰ ʮϓϩάϥϛϯάͯ͠Δͥʯͬͯ ࢥ͍ͬͯͨͷ͸ྑ͍ࢥ͍ग़ Ҿ༻ݩ https://atnd.org/events/94454
  7. Rubyͷجຊʹ͍ͭͯཧղ͢Δ • ͨͷ͍͠Ruby×ProgateͰֶͿ • ͱʹ͔͘Θ͔Γ΍͘͢ɺ௚ײ తͰָ͠ΊΔͱࢥ͏ • ͨͷ͍͠Ruby͸Θ͔Γ΍͍͢ ͱ͸͍͑৘ใ͕໢ཏతͰ๞͖ ΍͍͔͢ΒProgateΛήʔϜײ

    ֮Ͱָ͠Ή Ҿ༻ݩ https://www.amazon.co.jp/dp/4797386290
  8. SinatraΛֶΜͰΞϓϦΛͭ͘Δ • WebΞϓϦέʔγϣϯΛૉૣ ͘࡞ΔͨΊͷRubyͷDSL • ϒϥ΢βͰ݁Ռ͕ݟΕΔͷ͕ Webϓϩάϥϛϯάͷྑ͍ͱ ͜Ζ • Rubyͷ࢖͍ํΛҰ௨Γʮ஌ͬ

    ͨʯΒSinatraͷ࢖͍ํΛυο τΠϯετʔϧͰษڧͯ͠ɺ ͙͢ʹͳʹ͔࡞Δ Ҿ༻ݩ http://j-caw.co.jp
  9. Sinatra͸؆୯ • gem install sinatra
 • require ‘sinatra’
 • ruby

    myapp.rb
  10. Sinatra͸Railsͷ࿅शʹͳΔ ɹ ɹget "/" do @members = Member.all erb :index

    end • RailsͰ΋࢖͏flashɺActiveRecordɺERBΛ࢖͑Δ • ϧʔςΟϯάˠΞΫγϣϯΛ௚ײతʹ࣮૷Ͱ͖Δ • Rails΄ͲϑϨʔϜϫʔΫͷͨΊʹ֮͑Δ͜ͱ͕͋·Γͳ͍ • ͜ΕΛ੡࡞͢ΔաఔͰ্ͷ஌ࣝΛ಄ʹೖΕͭͭɺσόοάํ๏ͱ͔΋ֶ ΜͩΓύϥϝʔλͷड͚౉͠ͳͲ΋ֶ΂Δ
  11. RailsνϡʔτϦΞϧΛֶΜͰ ΞϓϦΛ࡞Δ • ͜͜·ͰདྷΔͱRailsνϡʔτ ϦΞϧ͕ਂ͘ཧղͰ͖ΔΑ͏ ʹͳΔ • RailsνϡʔτϦΞϧͰTwitter ʢͬΆ͍΍ͭʣΛ࡞Δ͠ɺे ෼ଟ͘ͷ͜ͱֶ΂Δ͕ʮνϡʔ

    τϦΞϧʯͳͷͰࣗ෼Ͱθϩ ͔Β࡞ͬͯΈΔͱ͞Βʹֶͼ ʹͳΔ Ҿ༻ݩ https://www.slideshare.net/yasulab/rails-46481007
  12. RubyΛֶΜͰมΘͬͨ͜ͱ 1. ϓϩάϥϛϯάͷੈք͸ָ͍͠ͱࢥ͑ΔΑ͏ʹͳͬͨ 2. ΋ͬͱࣗ༝ʹੜ͖͍͚ͯΔͱ৴͡ΕΔΑ͏ʹͳͬͨ 3. ϓϩάϥϛϯά͸ຊ౰ʹਓͷ໾ʹཱͭͱΘ͔ͬͨ

  13. ϓϩάϥϛϯά͸ָ͍͠

  14. Cݴޠͷτϥ΢Ϛ • ॳΊͯϓϩάϥϛϯάʹ৮ͬͨͷ͸Cݴޠ • ֶͼํ΋ֶज़తͳֶͼํͩͬͨͷͰɺͳ͔ͳ͔Ͱ͖Δ͜ͱ͕ਐ· ͳ͍ • ܕΛࢦఆͨ͠ม਺એݴɺfloat, int, printf…͍Ζ͍Ζ΍ͬͯίϯ

    ιʔϧ্ͰʮԿ͔ܭࢉͰ͖ͨʯʮԿ͔จࣈΛදࣔͰ͖ͨʯͱ͍͏ ײ͚֮ͩ
  15. Ruby΍Γ΍͍͢ • Ruby͸ΑΓ௚ײతͰΘ͔Γ΍͍͢ • SinatraΛ࢖͑͹͙͢ʹWebΞϓϦͱͯ͠ͷڍಈ͕֬ೝͰ͖ Δ • LINEͷΑ͏ͳϝοηʔδϯάΞϓϦΛSinatraͰ࡞ͬͨͷ Ͱ΋͏RubyͷϑΝϯʹͳΔ

  16. ΋ͬͱࣗ༝ʹੜ͖͍͚ͯΔ
 ʢΤϞ͍ʣ

  17. Θ͕··ʹੜ͖͍ͨ • ࣾձਓʹͳͬͨޙͰ΋ւ֎Ͱʢதɾ௕ظʣ଺ࡏͯ͠Έ͍ͨ • ָͯ͘͠೤த͢Δۀछʹ͠ͳ͍ͱϞνϕʔγϣϯ͕Լ͕Δ • ཁ͸Θ͕··

  18. ͳΜ͔Θ͕··ʹੜ͖͍͚ͯͦ͏ • ϓϩάϥϛϯάָ͍ͯ͘͢͝͠উखʹ΍ΔΑ͏ʹͳΔ
 → ձࣾͰ͜Ε΍͓ͬͯڅྉ௖͍ͯ΋͍͍ͷʁ • ΤϯδχΞͱͯ͠ΠϕϯτʹࢀՃ͢Δͱɺຊ౰ʹϑϦʔϥϯεͩͬͨΓ ϦϞʔτϫʔΫ͍ͯ͠Δਓ͕ଟͯ͘ʮશવւ֎ߦ͚Δʯͬͯࢥ͑ΔΑ͏ ʹͳΔ
 →

    ւ֎ߦͬͯྑ͍ͷʁ • ब׆Ͱࣗ෼͕ձͬͯདྷͨWebܥͷاۀͷํʑͷଟ͘͸ɺࣗ෼͕Πϝʔδ ͍ͯͨ͠ʮब׆ʯ΍ʮ໘઀ʯͱ͸શ͘ҧ͏΋ͷͰɺΑΓ͚ͩͨ͘ܗͰຊ ౰ʹେ੾ͳ࿩͕Ͱ͖ͨ
 → εʔπணͳͯ͘ྑ͍ͷʁ
  19. ϓϩάϥϛϯά͸ຊ౰ʹ ਓͷ໾ʹཱͭ

  20. େֶੜόΠτ • Ոఉڭࢣ • ϕ˓οηͷӦۀͷి࿩ • ج஍಺Ͱচͷுସ͑࡞ۀ • େ౦ౡͰͨͩͨͩ݀Λ۷Δ •

    ͨͩͨͩࡶࢽͷमਖ਼ͷγʔϧΛషΔ
  21. ͜ͷ࣌ͷ๻ ਓͷ໾ʹཱͭ͜ͱɺ ͓ۚΛՔ͙͜ͱͬͯେม ͳΜͩͳ͋ɾɾɾɻ

  22. ϓϩάϥϛϯά͸ຊ౰ʹਓͷ໾ʹཱͭͱΘ͔ͬͨ • ʮਓͷ໾ʹཱͭΜͩͳʯͱͪΐͬ͜ͱࢥͬͨͷ͸༑ୡͷ ࡞ۀΛख఻͏؆୯ͳSinatraΞϓϦΛ࡞ͬͨ࣌ • ʮϚδͰࣾձͷ໾ʹཱͭΜͩͳʯͱࢥͬͨͷ͸঑ֶۚͷ ೋഒͷ͓څྉΛ௖͍ͯRailsΞϓϦ։ൃͷ͓࢓ࣄ͕Ͱ͖Δ Α͏ʹͳͬͨ࣌

  23. ͜ͷ࣌ͷ๻

  24. ͜ͷ࣌ͷ๻

  25. ·ͱΊ • Webશ͘ͷॳ৺ऀ͕RailsΛษڧ͢ΔͷͰ͋Ε͹Webͷجຊ ˠHTML&CSS→RubyͷجຊˠSinatra→RailsͰ • ೉͍͠ϓϩάϥϛϯάݴޠ͔Βೖͬͯۤखҙ͕ࣝग़ΔΑΓ΋ɺऔ͖ͬͭ ΍͍͢Webϓϩάϥϛϯάݴޠ͔Β࢝ΊΔͷ͕ྑ͍ͱࢥ͏ • จܥͷօ͕͙͢ʹࢥ͍ු͔Ϳ৬छ΍ۀքΑΓɺΤϯδχΞͬͯૉఢ͔΋ʂ •

    Rails͸͓࢓ࣄͷधཁ͕͋ΔΒ͘͠ɺଞͷόΠτ͢ΔΑΓ΋কདྷͷͨΊʹ ΋ͳΔ͔Βྑ͍ͱࢥ͏ • RubyʢSinatraɺRailsʣ͋Γ͕ͱ͏
  26. ͓ΘΓ