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

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

Yuichiro MASUI
September 06, 2013

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

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

Yuichiro MASUI

September 06, 2013
Tweet

More Decks by Yuichiro MASUI

Other Decks in Business

Transcript

  1. Ruby&Railsͷ࠷৽ٕज़ಈ޲ͱ
    ࠓޙͷ༧૝
    Yuichiro MASUI (masuidrive)
    [email protected]
    Friday, September 6, 13

    View Slide

  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

    View Slide

  3. ϛΠϧ
    Friday, September 6, 13

    View Slide

  4. MobiRuby
    Friday, September 6, 13

    View Slide

  5. Friday, September 6, 13

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  12. Rails 1ͷಛ௃
    • CoC - Convention over Configuration
    • DRY - Don’t repeat yourself
    • MVC
    • Full stack
    • Generator / Scaffold
    • Write less code
    Friday, September 6, 13

    View Slide

  13. Rails 1ͷ໰୊
    • ෆ҆ఆ
    • ஗͍ / ϝϞϦ৯͍ա͗
    • ࣮ߦ؀ڥ͕গͳ͍
    • ࣮੷͕গͳ͍
    • RubyϓϩάϥϚ͕গͳ͍
    Friday, September 6, 13

    View Slide

  14. Rails 2ͷಛ௃
    • RESTful
    • XML -> JSON
    • ηΩϡϦςΟͷڧԽ (CSRFରࡦͳͲ)
    • ଟݴޠରԠ
    • ύϑΥʔϚϯε (ΫΤϦΩϟογϡͳͲ)
    Friday, September 6, 13

    View Slide

  15. Rails 2ͷ໰୊
    • Railsຊମ͕ෳࡶ͗͢Δ
    • ஗͍
    • ϓϥάΠϯඇޓ׵
    • ؀ڥߏங (RubyGems)
    Friday, September 6, 13

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  19. Merb+DataMapper
    • Ϟδϡʔϧߏ଄ͷϑϨʔϜϫʔΫ
    • ςϯϓϨʔτΤϯδϯ΍ORMΛબ୒
    • ORM = DataMapper
    • DataMapperύλʔϯΛఏڙ
    • Ϟσϧ=ςʔϒϧͰ͸ͳ͍
    Friday, September 6, 13

    View Slide

  20. Merb gets
    merged into Rails 3!
    Friday, September 6, 13

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  27. Tokaido
    Friday, September 6, 13

    View Slide

  28. Rails for Zombies
    Friday, September 6, 13

    View Slide

  29. 4.0ͷಛ௃
    • Ruby 1.9.3Ҏ্ / 2.0Ҏ্ਪ঑
    • Strong Parameters
    • Turbolinks
    • Russian Doll Caching
    • Live streaming
    • େ͖ͳδϟϯϓ͸ແ͠
    Friday, September 6, 13

    View Slide

  30. WyeWorks blog
    Friday, September 6, 13

    View Slide

  31. WyeWorks blog
    Friday, September 6, 13

    View Slide

  32. WyeWorks blog
    Friday, September 6, 13

    View Slide

  33. WyeWorks blog
    Friday, September 6, 13

    View Slide

  34. WyeWorks blog
    Friday, September 6, 13

    View Slide

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

    View Slide

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

    View Slide

  37. http://itpro.nikkeibp.co.jp/article/NEWS/20130214/456322/
    Friday, September 6, 13

    View Slide

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

    View Slide

  39. ৽γϯλοΫε
    • Javascript෩Hash
    • { key1: ‘A’, key2: 123 }
    • ΩʔϫʔυҾ਺
    • def func1(paramA: ‘A’, paramB: ‘B’)
    • func1(paramB:’C’)
    Friday, September 6, 13

    View Slide

  40. mruby
    • ܰྔRuby - 2012/4ॳެ։
    • ISO/JISΛݩʹͨ͠৽͍͠Ruby࣮૷
    • ϝϞϦ΍CPUࢿݯ͕গͳ͍؀ڥͰ΋ಈ͘Ruby
    • ຊମߦ਺΋2ສ਺ઍߦ
    Friday, September 6, 13

    View Slide

  41. mrubyԠ༻ྫ
    • WebαʔόΛRubyͰ੍ޚ͢Δ
    • Apache - mod_mrubyɹ
    • Nginx - ngx_mrubyɹ
    • mrubyͰiOSΞϓϦΛॻ͘
    • MobiRuby
    Friday, September 6, 13

    View Slide

  42. Friday, September 6, 13

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

  50. पลαʔϏε
    • ࣮ߦ؀ڥ - AWS, Heroku, Engine Yard
    • ϞχλϦϯά - New Relic
    • ςετ - SauceLabs, Appium
    • ίʔσΟϯά - GitHub
    • ϓϩδΣΫτ؅ཧ - PivotalTracker,
    Friday, September 6, 13

    View Slide

  51. Friday, September 6, 13

    View Slide

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

    View Slide

  53. Friday, September 6, 13

    View Slide

  54. Friday, September 6, 13

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  60. 2013/05/05
    Friday, September 6, 13

    View Slide

  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

    View Slide

  62. Friday, September 6, 13

    View Slide

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

    View Slide

  64. Friday, September 6, 13

    View Slide

  65. Friday, September 6, 13

    View Slide

  66. Friday, September 6, 13

    View Slide

  67. Friday, September 6, 13

    View Slide

  68. Google App Script
    7,000 users / 700 weekly active users
    Friday, September 6, 13

    View Slide

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

    View Slide