2013/09/06 Ruby&RailsBizCon - BOSS-CON JAPAN にて http://www.boss-con.jp/rails/Ruby-RailsBizCon/
Ruby&Railsͷ࠷৽ٕज़ಈͱࠓޙͷ༧Yuichiro MASUI (masuidrive)[email protected]Friday, September 6, 13
View Slide
•૿Ҫɹ༤Ұ - masuidrive•FrogApps, Inc / Toreta, Inc.ɹ•PukiWiki(2002), 10Rails (2005),PingKing(2006), NIFTYࣾAbout me(2006),PhotoShare (2008)•Ex-Appcelerator (Titanium Mobile)Friday, September 6, 13
ϛΠϧFriday, September 6, 13
MobiRubyFriday, September 6, 13
Friday, September 6, 13
RailsΛͬͨ͜ͱ͋ΔํFriday, September 6, 13
RailsΛࣄͰͬͨ͜ͱ͋ΔํFriday, September 6, 13
RailsΛࣄͰ͍ͬͯΔํFriday, September 6, 13
Rails4Λࢼͯ͠ΈͨํFriday, September 6, 13
Railsͷྺ࢙Λ͓͞Β͍Friday, September 6, 13
Ruby on Railsͷྺ࢙• 2004/07 - ࠷ॳͷόʔδϣϯ• 2005/12 - 1.0• 2007/12 - 2.0• 2010/08 - 3.0• 2013/07 - 4.0Friday, September 6, 13
Rails 1ͷಛ• CoC - Convention over Configuration• DRY - Don’t repeat yourself• MVC• Full stack• Generator / Scaffold• Write less codeFriday, September 6, 13
Rails 1ͷ• ෆ҆ఆ• ͍ / ϝϞϦ৯͍ա͗• ࣮ߦڥ͕গͳ͍• ࣮͕গͳ͍• RubyϓϩάϥϚ͕গͳ͍Friday, September 6, 13
Rails 2ͷಛ• RESTful• XML -> JSON• ηΩϡϦςΟͷڧԽ (CSRFରࡦͳͲ)• ଟݴޠରԠ• ύϑΥʔϚϯε (ΫΤϦΩϟογϡͳͲ)Friday, September 6, 13
Rails 2ͷ• Railsຊମ͕ෳࡶ͗͢Δ• ͍• ϓϥάΠϯඇޓ• ڥߏங (RubyGems)Friday, September 6, 13
Rails 2ϦϦʔεޙ• ৽͍͠ϑϨʔϜϫʔΫͷϦϦʔε• Merbͷ߹ྲྀ• Passenger• HerokuFriday, September 6, 13
৽͍͠ϑϨʔϜϫʔΫ•Sinatra•Merb + DataMapperFriday, September 6, 13
Sinatra•͖ΘΊͯγϯϓϧͳϑϨʔϜϫʔΫ•routingɺϑΟϧλॲཧςϯϓϨʔτFriday, September 6, 13
Merb+DataMapper• ϞδϡʔϧߏͷϑϨʔϜϫʔΫ• ςϯϓϨʔτΤϯδϯORMΛબ• ORM = DataMapper• DataMapperύλʔϯΛఏڙ• Ϟσϧ=ςʔϒϧͰͳ͍Friday, September 6, 13
Merb getsmerged into Rails 3!Friday, September 6, 13
Merb͔Βಘͨͷ• Ϟδϡʔϧߏ• Plugin API• MatzRubyҎ֎ͷڥ(JRubyͳͲ)Ͱͷಈ࡞Friday, September 6, 13
Passenger• ྑ͋͘Δ࣭ = RailsͬͯͲ͏ͬͯProductionڥͰಈ͔͍͍ͤͷʁ• ApacheʹΈࠐΊΔmodule• ҰͭͷαʔόͰෳͷRails appͷཧ༰қFriday, September 6, 13
Rails 3ͷಛ• ϑϧελοΫ͕ͩϞδϡϥʔϒϧ• ActiveRecordͷ৽ΫΤϦΤϯδϯ (Arel)• ৽͍͠Routing engine• Plugin API• BundlerFriday, September 6, 13
Rails 3ͷ• Ϟσϧ͕ް͘ͳΓ͗͢Δ• ύϥϝʔλड͚͠ͷηΩϡϦςΟ• Ϟσϧ == σʔλϕʔεFriday, September 6, 13
3.1ϦϦʔε• 2011/08 (1ޙ)• 2.x࣌ͷޓੑഉআ• Asset Pipeline• jQuery͕ඪ४ʹFriday, September 6, 13
3.2ϦϦʔε• 2012/01 (6ϲ݄ޙ)• ։ൃڥͰͷߴԽ• SQLσόοάग़ྗFriday, September 6, 13
TokaidoFriday, September 6, 13
Rails for ZombiesFriday, September 6, 13
4.0ͷಛ• Ruby 1.9.3Ҏ্ / 2.0Ҏ্ਪ• Strong Parameters• Turbolinks• Russian Doll Caching• Live streaming• େ͖ͳδϟϯϓແ͠Friday, September 6, 13
WyeWorks blogFriday, September 6, 13
Ruby 2.0• ϝδϟʔόʔδϣϯΞοϓ• RubyConf 2001ͰطʹRuby 2.0ͷ• 20ࡀͷੜͳͷͰ2.0ϦϦʔεFriday, September 6, 13
Ruby 2.0• ύϑΥʔϚϯε্• σϑΥϧτΤϯίʔσΟϯά• γϯλοΫεͷՃ• ΩʔϫʔυҾ• Module::prependɹ• Enumerable#lazyFriday, September 6, 13
http://itpro.nikkeibp.co.jp/article/NEWS/20130214/456322/Friday, September 6, 13
ύϑΥʔϚϯε্• Virtual Machine• Garbage Collection• requireFriday, September 6, 13
৽γϯλοΫε• Javascript෩Hash• { key1: ‘A’, key2: 123 }• ΩʔϫʔυҾ• def func1(paramA: ‘A’, paramB: ‘B’)• func1(paramB:’C’)Friday, September 6, 13
mruby• ܰྔRuby - 2012/4ॳެ։• ISO/JISΛݩʹͨ͠৽͍͠Ruby࣮• ϝϞϦCPUࢿݯ͕গͳ͍ڥͰಈ͘Ruby• ຊମߦ2ສઍߦFriday, September 6, 13
mrubyԠ༻ྫ• WebαʔόΛRubyͰ੍ޚ͢Δ• Apache - mod_mrubyɹ• Nginx - ngx_mrubyɹ• mrubyͰiOSΞϓϦΛॻ͘• MobiRubyFriday, September 6, 13
4.1Ҏ߱• ඇಉظॲཧ - Queue APIɺAsyncMailer• ςετपΓͷڧԽΛٻΊΔଟ͍Friday, September 6, 13
େ͖ͳFriday, September 6, 13
Upgrade• ຖόʔδϣϯΞοϓ• ͳͥUpgrade͢Δͷ͔?• ৽͍͠όʔδϣϯ҆ఆ͍ͯ͠Δ͔• ίʔυͷॻ͖͑Ͳͷఔඞཁ͔Friday, September 6, 13
ͳͥUpgrade͢Δͷ͔?• ࠷৽ͷRails͕࠷ߴͷRails• ϓϥάΠϯͳͲ࠷৽൛ʹ͚ͯϦϦʔε͞ΕΔ͜ͱ͕ଟ͍• όʔδϣϯΛඈͯ͠UpgradeେมFriday, September 6, 13
όʔδϣϯै• Rails 4.0.xRails 3.xͱͷޙํޓͷҝͷϝιου͕ఆٛ͞Ε͍ͯΔ͕ɺRails 3.4.xͰফ͞ΕΔ• Rails 3.2.x -> Rails 3.1.xͷUpgrade͍͠Friday, September 6, 13
RailsৗʹมԽ͢Δ• ඇޓΛڪΕͳ͍• ͍͖ͳΓม͑ͣʹ४උظؒΛઃ͚Δ• ΞοϓσʔτΛଓ͚ΔFriday, September 6, 13
։ൃڥ• ςετେࣄ• ਖ਼ৗܥͷػೳςετ͚ͩͰॻ͘• Continues IntegrationͰࣗಈతʹςετΛճ͢Friday, September 6, 13
पลαʔϏε• ࣮ߦڥ - AWS, Heroku, Engine Yard• ϞχλϦϯά - New Relic• ςετ - SauceLabs, Appium• ίʔσΟϯά - GitHub• ϓϩδΣΫτཧ - PivotalTracker,Friday, September 6, 13
Rails 4.0ΛͬͨΞϓϦྫFriday, September 6, 13
ࡶͳϝϞΛͲ͏ʹ͔͍ͨ͠Friday, September 6, 13
ϝϞΞϓϦͷ՝• ͍ͭͰɺͲ͜Ͱ• ཷ·ͬͨϝϞͷཧ• ॻ͍ͨ͜ͱΛΕΔ• ͏ಡ·ͳ͍ϝϞͷॲཧFriday, September 6, 13
ཉ͍͠ϝϞாΞϓϦ• ϓϩάϥϚͳΒMarkdown• gmailΈ͍ͨͳArchive• ΧϨϯμʔϏϡʔ• શจݕࡧ• ΩʔϘʔυΦϖϨʔγϣϯFriday, September 6, 13
͍ͭͰʹ• ࣗ༻͚ͩͲެ։લఏͰ• ϦϦʔε͢ΔͳΒӳޠͰ͠ΐ• υϝΠϯऔͬͪΌ͓͏• ͬͨ͜ͱͳ͍ٕज़Λ͓͏Friday, September 6, 13
جຊػೳ2Ͱ• ೝূGithubͱFacebook• ςετ݉ͶͯRails 4.0.0RC + Ruby 2.0• JavascriptBackbone.js + HTML5 storageFriday, September 6, 13
2013/05/05Friday, September 6, 13
৽͍ٕ͠ज़• Rails 4 + Ruby 2.0• capybara + rspec• backbone.js• HTML5 AppCache• localStorage• sessionStorage• Google App Script• Chrome extension• Analytics Measure API• Pay for HerokuFriday, September 6, 13
ຖࣗͰ͏ҝʹ• αʔόͷӡ༻ࣗͰ͠ͳ͍• όοΫΞοϓશࣗಈ• ܰ͘ಈ͘Friday, September 6, 13
Google App Script7,000 users / 700 weekly active usersFriday, September 6, 13
Wrap up• RailsৗʹมԽΛ͢Δ -> มԽΛड͚ೖΕΔ• Ruby 2.0Ͱݴޠͱͯ͠ͻͱ·ͣͷ• Rubyͷద༻ൣғ͕͍ͬͯ͘Friday, September 6, 13