2011年5月25日水曜日

Rails3.1でCoffeeScript SCSS HTTP Stream jQuery defaultな件...

CoffeeScriptとSCSS

Rails 3.1から、appフォルダ内にassetsというフォルダができて、その中にjavascriptsとstylesheetsというフォルダができるようになった。そしてそこにCoffeeScriptファイルやSCSSのファイルを置くようになります。CoffeeScriptは、JavaScriptの冗長的な書き方ではなくRubyやPythonのように書いて、それをJavaScriptにコンパイルするというものですが、Rails 3.1では拡張子を例えばapplication.jsとすれば普通のJavaScriptファイルですし、application.js.coffeeとすればCoffeeScriptとして扱われ、コンパイルも自動で行われます。つまり完全にオプション的な扱いです。ですが、書き方になれると普通のJavaScriptには戻れなくなりそうですねー。

SCSSはCSSをネストして書いたり、変数を使って書けたりするものです。SASSというのもあって、こちらはもっとプログラマーよりで関数定義までできちゃうんですが、Rails 3.1ではSCSSが採用されました。CSSを書いていると、同じものを書く事がよくあります。例えば角丸border-radiusとか。そういうのはクラスにまとめればいいんですが、クラスにまとめるか、個別に持っておくべきか迷うことがあります。そう言う時にSCSSのmixinは便利そうです。そしてネストさせることで、セレクタよりも直感的に分かりやすくなりそうだなーと思います。

HTTP Stream

PHPでいうところの、ob_flushとかをやるのと同じです。これ、個人的に何が嬉しいのかよく分からなかったんですが、出力に時間がかかる部分で、先に出せる物は出しておいてユーザの体感速度をあげるというのが一つの狙いのようですね。たとえば、headまで出しておいて、そこに含まれるcssやcssに含まれる画像は先にダウンロードさせておくなど。まぁ、でもそこまで重いページって用意したくないし、Rails3のActiveRecordはRails2のActiveRecordより遅いというデータもあるらしく、そちらの改善も期待しています。ActiveRecordばかりに頼らずに最適化しろっちゅー話なんですけどね><

ちなみに、この機能はFiberがないと動かないらしく、Ruby 1.9以上が必要になります。まー実質1.9.2ですね。あと動作環境がnginxとunicornである必要があるようです。Apache+Passengerの環境もサポートしてくれないのかな?両方使ってるので後者もサポートしてほしいですねー。

jQueryがやっとデフォルトに

やったー!てっきりRails3からデフォルトになると思ってたので、やっとこの日が来たか!という感じです。

あー、早くRails 3.1で開発してみたい。

0 件のコメント: