Ruby&Railsの最新技術動向と 今後の予想

0ec58a040e1e4e959c8566484b4bba19?s=47 Yuichiro MASUI
September 06, 2013

Ruby&Railsの最新技術動向と 今後の予想

2013/09/06 Ruby&RailsBizCon - BOSS-CON JAPAN にて
http://www.boss-con.jp/rails/Ruby-RailsBizCon/

0ec58a040e1e4e959c8566484b4bba19?s=128

Yuichiro MASUI

September 06, 2013
Tweet

Transcript

  1. Ruby&Railsͷ࠷৽ٕज़ಈ޲ͱ ࠓޙͷ༧૝ Yuichiro MASUI (masuidrive) masui@masudrive.jp Friday, September 6, 13

  2. •૿Ҫɹ༤Ұ࿠ - masuidrive •FrogApps, Inc / Toreta, Inc.ɹ •PukiWiki(2002), 10෼Rails

    (2005), PingKing(2006), NIFTYࣾAbout me(2006), PhotoShare (2008) •Ex-Appcelerator (Titanium Mobile) Friday, September 6, 13
  3. ϛΠϧ Friday, September 6, 13

  4. MobiRuby Friday, September 6, 13

  5. Friday, September 6, 13

  6. RailsΛ࢖ͬͨ͜ͱ ͋Δํ Friday, September 6, 13

  7. RailsΛ࢓ࣄͰ ࢖ͬͨ͜ͱ͋Δํ Friday, September 6, 13

  8. RailsΛ࢓ࣄͰ ࢖͍ͬͯΔํ Friday, September 6, 13

  9. Rails4Λࢼͯ͠Έͨํ Friday, September 6, 13

  10. Railsͷྺ࢙Λ͓͞Β͍ Friday, September 6, 13

  11. Ruby on Railsͷྺ࢙ • 2004/07 - ࠷ॳͷόʔδϣϯ • 2005/12 -

    1.0 • 2007/12 - 2.0 • 2010/08 - 3.0 • 2013/07 - 4.0 Friday, September 6, 13
  12. Rails 1ͷಛ௃ • CoC - Convention over Configuration • DRY

    - Don’t repeat yourself • MVC • Full stack • Generator / Scaffold • Write less code Friday, September 6, 13
  13. Rails 1ͷ໰୊ • ෆ҆ఆ • ஗͍ / ϝϞϦ৯͍ա͗ • ࣮ߦ؀ڥ͕গͳ͍

    • ࣮੷͕গͳ͍ • RubyϓϩάϥϚ͕গͳ͍ Friday, September 6, 13
  14. Rails 2ͷಛ௃ • RESTful • XML -> JSON • ηΩϡϦςΟͷڧԽ

    (CSRFରࡦͳͲ) • ଟݴޠରԠ • ύϑΥʔϚϯε (ΫΤϦΩϟογϡͳͲ) Friday, September 6, 13
  15. Rails 2ͷ໰୊ • Railsຊମ͕ෳࡶ͗͢Δ • ஗͍ • ϓϥάΠϯඇޓ׵ • ؀ڥߏங

    (RubyGems) Friday, September 6, 13
  16. Rails 2ϦϦʔεޙ • ৽͍͠ϑϨʔϜϫʔΫͷϦϦʔε • Merbͷ߹ྲྀ • Passenger • Heroku

    Friday, September 6, 13
  17. ৽͍͠ϑϨʔϜϫʔΫ •Sinatra •Merb + DataMapper Friday, September 6, 13

  18. Sinatra •͖ΘΊͯγϯϓϧͳϑϨʔϜϫʔΫ •routingɺϑΟϧλॲཧ΍ςϯϓϨʔτ Friday, September 6, 13

  19. Merb+DataMapper • Ϟδϡʔϧߏ଄ͷϑϨʔϜϫʔΫ • ςϯϓϨʔτΤϯδϯ΍ORMΛબ୒ • ORM = DataMapper •

    DataMapperύλʔϯΛఏڙ • Ϟσϧ=ςʔϒϧͰ͸ͳ͍ Friday, September 6, 13
  20. Merb gets merged into Rails 3! Friday, September 6, 13

  21. Merb͔Βಘͨ΋ͷ • Ϟδϡʔϧߏ଄ • Plugin API • MatzRubyҎ֎ͷ؀ڥ(JRubyͳͲ)Ͱͷಈ࡞ Friday, September

    6, 13
  22. Passenger • ྑ͋͘Δ࣭໰ = RailsͬͯͲ͏΍ͬͯProduction؀ ڥͰಈ͔ͤ͹͍͍ͷʁ • Apacheʹ૊ΈࠐΊΔmodule • ҰͭͷαʔόͰෳ਺ͷRails

    appͷ؅ཧ΋༰қ Friday, September 6, 13
  23. Rails 3ͷಛ௃ • ϑϧελοΫ͕ͩϞδϡϥʔϒϧ • ActiveRecordͷ৽ΫΤϦΤϯδϯ (Arel) • ৽͍͠Routing engine

    • Plugin API • Bundler Friday, September 6, 13
  24. Rails 3ͷ໰୊ • Ϟσϧ͕ް͘ͳΓ͗͢Δ • ύϥϝʔλड͚౉͠ͷηΩϡϦςΟ • Ϟσϧ == σʔλϕʔε

    Friday, September 6, 13
  25. 3.1ϦϦʔε • 2011/08 (1೥ޙ) • 2.x࣌୅ͷޓ׵ੑഉআ • Asset Pipeline •

    jQuery͕ඪ४ʹ Friday, September 6, 13
  26. 3.2ϦϦʔε • 2012/01 (6ϲ݄ޙ) • ։ൃ؀ڥͰͷߴ଎Խ • SQLσόοάग़ྗ Friday, September

    6, 13
  27. Tokaido Friday, September 6, 13

  28. Rails for Zombies Friday, September 6, 13

  29. 4.0ͷಛ௃ • Ruby 1.9.3Ҏ্ / 2.0Ҏ্ਪ঑ • Strong Parameters •

    Turbolinks • Russian Doll Caching • Live streaming • େ͖ͳδϟϯϓ͸ແ͠ Friday, September 6, 13
  30. WyeWorks blog Friday, September 6, 13

  31. WyeWorks blog Friday, September 6, 13

  32. WyeWorks blog Friday, September 6, 13

  33. WyeWorks blog Friday, September 6, 13

  34. WyeWorks blog Friday, September 6, 13

  35. Ruby 2.0 • ϝδϟʔόʔδϣϯΞοϓ • RubyConf 2001ͰطʹRuby 2.0ͷ࿩୊ • 20ࡀͷ஀ੜ೔ͳͷͰ2.0ϦϦʔε

    Friday, September 6, 13
  36. Ruby 2.0 • ύϑΥʔϚϯε޲্ • σϑΥϧτΤϯίʔσΟϯά • γϯλοΫεͷ௥Ճ • ΩʔϫʔυҾ਺

    • Module::prependɹ • Enumerable#lazy Friday, September 6, 13
  37. http://itpro.nikkeibp.co.jp/article/NEWS/20130214/456322/ Friday, September 6, 13

  38. ύϑΥʔϚϯε޲্ • Virtual Machine • Garbage Collection • require Friday,

    September 6, 13
  39. ৽γϯλοΫε • Javascript෩Hash • { key1: ‘A’, key2: 123 }

    • ΩʔϫʔυҾ਺ • def func1(paramA: ‘A’, paramB: ‘B’) • func1(paramB:’C’) Friday, September 6, 13
  40. mruby • ܰྔRuby - 2012/4ॳެ։ • ISO/JISΛݩʹͨ͠৽͍͠Ruby࣮૷ • ϝϞϦ΍CPUࢿݯ͕গͳ͍؀ڥͰ΋ಈ͘Ruby •

    ຊମߦ਺΋2ສ਺ઍߦ Friday, September 6, 13
  41. mrubyԠ༻ྫ • WebαʔόΛRubyͰ੍ޚ͢Δ • Apache - mod_mrubyɹ • Nginx -

    ngx_mrubyɹ • mrubyͰiOSΞϓϦΛॻ͘ • MobiRuby Friday, September 6, 13
  42. Friday, September 6, 13

  43. 4.1Ҏ߱ • ඇಉظॲཧ - Queue APIɺAsyncMailer • ςετपΓͷڧԽΛٻΊΔ੠͸ଟ͍ Friday, September

    6, 13
  44. େ͖ͳ໰୊ Friday, September 6, 13

  45. Upgrade໰୊ • ຖ೥όʔδϣϯΞοϓ • ͳͥUpgrade͢Δͷ͔? • ৽͍͠όʔδϣϯ͸҆ఆ͍ͯ͠Δ͔ • ίʔυͷॻ͖׵͑͸Ͳͷఔ౓ඞཁ͔ Friday,

    September 6, 13
  46. ͳͥUpgrade͢Δͷ͔? • ࠷৽ͷRails͕࠷ߴͷRails • ϓϥάΠϯͳͲ͸࠷৽൛ʹ޲͚ͯϦϦʔε͞ΕΔ͜ ͱ͕ଟ͍ • όʔδϣϯΛඈ͹ͯ͠Upgrade͸େม Friday, September

    6, 13
  47. όʔδϣϯ௥ै • Rails 4.0.x͸Rails 3.xͱͷޙํޓ׵ͷҝͷϝιου͕ ఆٛ͞Ε͍ͯΔ͕ɺRails 3.4.xͰ͸ফ͞ΕΔ • Rails 3.2.x

    -> Rails 3.1.x΁ͷUpgrade͸೉͍͠ Friday, September 6, 13
  48. Rails͸ৗʹมԽ͢Δ • ඇޓ׵ΛڪΕͳ͍ • ͍͖ͳΓ͸ม͑ͣʹ४උظؒΛઃ͚Δ • ΞοϓσʔτΛଓ͚Δ Friday, September 6,

    13
  49. ։ൃ؀ڥ • ςετେࣄ • ਖ਼ৗܥͷػೳςετ͚ͩͰ΋ॻ͘ • Continues IntegrationͰࣗಈతʹςετΛճ͢ Friday, September

    6, 13
  50. पลαʔϏε • ࣮ߦ؀ڥ - AWS, Heroku, Engine Yard • ϞχλϦϯά

    - New Relic • ςετ - SauceLabs, Appium • ίʔσΟϯά - GitHub • ϓϩδΣΫτ؅ཧ - PivotalTracker, Friday, September 6, 13
  51. Friday, September 6, 13

  52. Rails 4.0Λ࢖ͬͨΞϓϦྫ Friday, September 6, 13

  53. Friday, September 6, 13

  54. Friday, September 6, 13

  55. ൥ࡶͳϝϞΛ Ͳ͏ʹ͔͍ͨ͠ Friday, September 6, 13

  56. ϝϞΞϓϦͷ՝୊ • ͍ͭͰ΋ɺͲ͜Ͱ΋ • ཷ·ͬͨϝϞͷ੔ཧ • ॻ͍ͨ͜ͱΛ๨ΕΔ • ΋͏ಡ·ͳ͍ϝϞͷॲཧ Friday,

    September 6, 13
  57. ཉ͍͠ϝϞாΞϓϦ • ϓϩάϥϚͳΒMarkdown • gmailΈ͍ͨͳArchive • ΧϨϯμʔϏϡʔ • શจݕࡧ •

    ΩʔϘʔυΦϖϨʔγϣϯ Friday, September 6, 13
  58. ͍ͭͰʹ • ࣗ෼༻͚ͩͲެ։લఏͰ • ϦϦʔε͢ΔͳΒӳޠͰ͠ΐ • υϝΠϯ΋औͬͪΌ͓͏ • ࢖ͬͨ͜ͱͳ͍ٕज़Λ࢖͓͏ Friday,

    September 6, 13
  59. جຊػೳ͸2೔Ͱ • ೝূ͸GithubͱFacebook • ςετ΋݉ͶͯRails 4.0.0RC + Ruby 2.0 •

    Javascript͸Backbone.js + HTML5 storage Friday, September 6, 13
  60. 2013/05/05 Friday, September 6, 13

  61. ৽͍ٕ͠ज़ • Rails 4 + Ruby 2.0 • capybara +

    rspec • backbone.js • HTML5 AppCache • localStorage • sessionStorage • Google App Script • Chrome extension • Analytics Measure API • Pay for Heroku Friday, September 6, 13
  62. Friday, September 6, 13

  63. ຖ೔ࣗ෼Ͱ࢖͏ҝʹ • αʔόͷӡ༻͸ࣗ෼Ͱ͠ͳ͍ • όοΫΞοϓ΋શࣗಈ • ܰ͘ಈ͘ Friday, September 6,

    13
  64. Friday, September 6, 13

  65. Friday, September 6, 13

  66. Friday, September 6, 13

  67. Friday, September 6, 13

  68. Google App Script 7,000 users / 700 weekly active users

    Friday, September 6, 13
  69. Wrap up • Rails͸ৗʹมԽΛ͢Δ -> มԽΛड͚ೖΕΔ • Ruby 2.0Ͱݴޠͱͯ͠ͻͱ·ͣͷ׬੒ •

    Rubyͷద༻ൣғ͸޿͕͍ͬͯ͘ Friday, September 6, 13