日々之迷歩

世の中わからんことだらけ

ITが複雑で難しくなっていく様に翻弄される日々です。微力ながら共著させていただいた「シェル・ワンライナー160本ノック」をよろしくお願い申し上げます。

イケてるRails3.1勉強会

 先月はRBCのビジネス勉強会に急きょ参加したのだが、昨日は久しぶりに技術勉強会に参加してきました。
 テーマはRails3.1について。まだ正式のリリースバージョンではないけど、rc4なので正式リリースも近いでしょう。グループごとに机を分かれる形での勉強会でした。同じグループでスタッフの村部さんにお世話になりました。
 最初は中尾さんによるRuby開発サーバ説明とLinux勉強会だった。一人ずつ別々に仮想サーバを準備してもらっていた。WebとSSHの接続先をポート番号で別々に作成する形態になっていた。ログインのやり方の方法など丁寧に準備をしてもらっていました。準備お疲れさまでした。
 その次は山田さんによるRails3.1についての説明と演習だった。途中でMVCモデルによるシブがき隊論が勃発し、山田さんと中尾さんのアツい掛け合いが始まりました、、、ww
 Rails3.1について、大きなポイントは以下のような感じでした。

  • CSSJavascriptの場所が移動
  • CoffeeScriptとSASSを標準サポート
  • 標準のJavaScriptフレームワークjQuery
  • Migrationの変更
  • attr_accessible
  • IdentityMap
  • ネストされたhas_many :throughアソシエーション
  • ビュー層の変更点
  • 見やすくなったテストの出力
  • 認証機能の強化
  • HTTPストリーミング
  • テンプレートの継承

 publicディレクトリ以下にあったCSSJavaScriptがapp/assetsディレクトリ以下に移動していました。そしてJavaScriptとStylesheetをRubyっぽく書けるCoffeeScriptとSASSが標準サポート去れました。また、JavaScriptフレームワークがPrototypeからjQueryに変わっていました。やっぱ時代はjQueryなのですね。
 Migrationも変更され、upやdownのメソッドに変わってchangeメソッドを標準で使うようになりました。change一つでマイグレーションのロールアップやロールダウンが出来ます。もしロールアップとロールダウンで、整合性と関係ない特別な処理をしたい場合は、upとdownのメソッドを使う事が出来ます。
 IdentityMapは、ActiveRecordに追加された機能です。ActiveRecordが登録されたレコードを覚えていて、同じレコードに関するオブジェクトは新たに作成せず同じものを使います。データベースへのリクエスト数減少が期待出来ます。ただ使い方によっては大量にメモリを消費する危険性もあります。
 勉強会で使うネタとしては、RAILSCASTの内容をWebページにしたASCIIcastを使いました。こんなのがあったのか、、、世の中スゴイ人たちがたくさんいるんだね!
 同じグループになった人たちと一緒に、何を作るか考えました。いろいろと案が出ましたが、まずグループのみんながRails3系の経験が無いことから、あまり高度なことは考えずRails3.1の新しい認証機能を使った物を作ることにしました。グループの中で「新しいMacbookAir欲しいよね〜」といった物欲にまみれた話題が出たことから、グループ名は「強欲レンジャー」。作るものは「物欲見える化システム」。ログインをして欲しい物を書き込む。その中にレア度を数値で管理し、レア度の大きい人ほど名前を大きく表示する(タグクラウドのイメージ)といったもの。
 ログイン機能を調べつつ必要なモデルやコントローラーを作って行きました。が、、ログイン機能について書かれたAsciiCastのページを見ながらやっていて、なかなかうまく行かずにタイムオーバーに、、、仕方がないのでやろうとしたことを主に喋り、ログインが出来るようになったものを最後に少し見せる形で発表しました。
 勉強会の後は、RBCスタッフの方による公開ミーティングと懇親会でした。ビジネスに生きる人間として、とても有意義な話を聞かせてもらうことが出来ました。同じ大学卒業の若手の方ともいろいろと話が出来ました。後はブログには書けないこととかも、、、