InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

Ruby on Rails 3.1がリリース。アセット パイプライン、ストリーミング、JavaScriptの変更を追加。

作者 Mirko Stocker , 翻訳者 編集部N 投稿日 2011年9月7日

セクション
デベロップメント
トピック
Ruby on Rails ,
jquery ,
Releases ,
Ruby ,
JavaScript ,
リリース ,
Webフレームワーク ,
動的言語 ,
バージョン管理 ,
言語 ,
Architecture ,
プログラミング

原文(投稿日:2011/09/03)へのリンク

数日前、 Ruby on RailsチームはRuby用で、最も人気のあるwebフレームワークの バージョン3.1をリリースした。前回のメジャーリリースである Rails 3.0からちょうど1年後のリリースである。以下が本リリースの著しいフィーチャである。

  • アセット パイプライン
  • ストリーミング
  • 可逆なマイグレーション
  • jQueryが既定のJavaScriptライブラリになった

アセットパイプラインがRailsの主要な変更である。どのように使い、何をするものかを記述した 完全なガイド がある。

アセットパイプラインは、 JavaScript と CSSアセットを繋いだり、縮小すなわち圧縮するフレームワークを提供する。これらのアセットを CoffeeScript, Sass、ERBのような他の言語で書く機能も持っている。

アセットパイプラインは、David Heinemeier Hansson氏のRailsConf talkの話題でもあった。

ストリーミング の意味は、Railsが chunked transfer encodingとしても知られているHTTPストリーミングをサポートするようになったことである。ストリーミングの利点は、webサーバーがレスポンスを完全に生成する前に、レスポンスの転送を開始できることである。Railsチームは、ブログで ストリーミングの利点を説明している。

ストリーミングは、待ち時間や動的に生成するのに必要な時間を短くするものではない。しかし、全レスポンスが生成されるのを待たずに、アプリケーションは直ちにコンテンツを送るので、クライアントは、より早くアセットをリクエストできる。特に、サーバーがコンテンツを生成している間に、もしHTMLドキュメントのヘッドをフラッシュすれば、CSSとJavaScriptファイルは、並行して取得できる。その結果、ページはもっと速くロードできる。

またRailsアプリケーションの ストリーミングをどのように設定するかを説明しているRailscast もある。

Railsはまた、長期にわたって ダウン マイグレーションをサポートしているので、なぜ 可逆な マイグレーション が新規と言える程のことなのか? これまで、ダウン・マイグレーションを自分で書かなくてはならなかったが、 今回のRails 3.1は、これをやってくれる。Rohit Arondekar氏がこの魔法がどう働くのかを説明している

基本的に、もし自分のマイグレーションでchange メソッドを定義し(以前のupメソッドやdownメソッドの代わりに)、マイグレーションを適用すると、コマンドが普通に実行される。しかしマイグレーションを逆にしている間、コマンドはレコードされ、逆コマンドのリストが生成され、走る。逆コマンドは、単に、元のコマンドの反対を実行するコマンドである。

これは、Rails 3.1における変更の一部に過ぎず、詳しいリリースのノートにもっと多くのことが載っているのがわかる。例えば、SSLを強制する ための設定オプションが導入されている。自分のプラグインが既に3.1で動くか確認したければ、railsplugins.org をチェックして、自分も貢献すればいい。

自分のアプリケーションをアップグレードする計画はありますか? Austin Hughey氏は、The H上の記事でアドバイスしている。

訳文について by Mikhailov Eugene 投稿者
Re: 訳文について by 哲 永田 投稿者
  1. トップへ戻る

    訳文について

    by Mikhailov Eugene

    Rails has supported down migrations for a long time, so why are reversible migrations new?

    は,
    Rails は長きにわたってダウンマイグレーションをサポートしてきたが,なぜ可逆マイグレーションができたのだろうか?

    といった意味ではないでしょうか。
    ここで,new は「新しい」ではなく「追加の(追加された)」だと思います。

  2. トップへ戻る

    Re: 訳文について

    by 哲 永田

    ご指摘ありがとうございます。

    確かに新機能なので追加なのですが、手動でやればできることなので「なぜ可逆マイグレーションが新規と言える程のことなのか?」のが良いかと思うのですが、どうでしょうか? その意が表現しきれていませんでした。
    また前半部分の「長期のダウン~」よりも「長期にわたってダウン~」の方がご指摘のようにいいですね。
    ありがとうございました。