「 2011年は、Rails3を使おう!〜masuidriveに学ぶ」に参加してきました。

第1部 Rails3情報源の歩き方 〜公式サイトの歩き方から定番サイト、必見コンテンツまで一挙ご紹介(西村賢氏)

第2部 Rails3を使おう! 〜Railsの設計思想の変化とRails2からの移行(増井雄一郎氏)

  • Ruby on Railsの歴史をさらっと
    • 2004/07 〜 2005/12 1.0, 2007/12 2.0, 2010/08 3.0, 2010/11 3.0.3
  • Rails 1.0
    • good: CoC 'Convention over Configuration', DRY, MVC, Full stack, Generator / Scaffold, For "Write less code"
    • bad: 不安定, 遅い/メモリ食い過ぎ, 実行環境少ない, 実績少ない, Rubyプログラマが少ない
  • Rails2 リリース後
  • Sinatra
    • Simple
  • Merb+DataMapper
  • RailsがMerb から得た物
    • モジュール構造, Plugin API, MazRuby以外の環境(JRubyなど)で動作する
  • Passenger
    • どうやってRailsをProduction環境で動かせばいいかの回答として, Apacheに組み込めるモジュール, 一つのサーバで複数のRails appの管理が容易
  • Heroku
    • Heroku, Engine Yard App Cloud like, New Relic アプリ管理サービスあり, Rails周辺のビジネスが成り立っている
  • Rails3で何が変わったのか
    • Sexy になった(出るとこは出て引っ込むところは引っ込んでいる)
    • routes.rb hash => method 可読性が上がった
  • Rails 3
    • Full stack, but Modulable, ActiveRecordの新クエリエンジン(Arel), 新しいRouting engine, Plugin API, Bundler
  • Rails2 => Rails3 Upgrade
    • Why?, Stable?, Rewrite?
    • 最新のRailsが最高のRails, プラグインは最新版に向けてリリースされることが多い, バージョンを飛ばしてUpgradeするのは大変
    • 2.3 => 3.0は互換あり、2.3=>3.1は互換なし
  • Rails3の安定度
    • no clash, no change API, performance
  • Performance
    • モジュール構造になると、メソッド呼び出しが増え、どうしても遅くなる, 特にRails 3.0.0のActiveRecordが遅かった, 3.0.2で大きく改善している
  • コードの書き換えをするなら
    • テストが書かれていないならあきらめる, まずはRails 2.3.8にアップしてだめならあきらめる, 使っているプラグインがRails3に対応しているか確認する
  • コードの書き換え
    • config/*, config/routes.rb, app/models/* あたり
  • Peepcode
  • 結論
    • 新規アプリはRails3で
    • テスト書いてないならUpgradeはあきらめる
    • PluginのRails3対応度次第
    • ActiveRecord後方互換を生かしつつ
    • Routingを書き換えるのはそれほど問題ではない
  • Rails3の特徴
    • ActiveRecord 3
      • Hash > Method
    • Bundler
      • 依存するGemのインストール, バージョン管理, Gemfile
    • And more..
      • Erb, ActionMailr, etc.
  • Rails3に期待すること
    • Plugin APIにより、Pluginの互換問題がすくなるなる, module化によってパフォーマンスの最適化が行いやすくなるといいな