RubyKaigi2009 スペシャルレポート

Ruby会議2009 1日目レポート[更新完了]

この記事を読むのに必要な時間:およそ 7 分

大場寧子さん「Pragmatic Patterns of Ruby on Rails - 現場で役立つRuby on Railsパターン」

中学校時代からプログラムを書き始めたという大場さん。しかし,女子校に通っていたこともあり,なかなかプログラミング仲間を見つけられず,孤独を感じていたそうです。Rubyと出会ってから人生が変わったと語る大場さんは,Rubyの魅力のひとつとして「素敵なコミュニティの存在」を挙げ,今は株式会社万葉で仲間たちとRailsアプリケーション開発に楽しく取り組んでいるとのことです。

トピックは,割と大規模なRailsアプリケーション開発における「実装パターン」です。大規模なプロジェクトにおける問題点を「書き方がバラバラ」⁠コードの品質が不揃い」とし,コードをメンテナンスしやすい状態に保つためにパターンを導入することをすすめています。

具体的なパターンとして「ARオブジェクトから始める検索」⁠複雑なビジネスロジックはモデルに書く」などについて説明し,Railsアプリケーションでよく見かける処理を,実際のコード片を提示しながら良いコード・悪いコードに分けて整理していました。

また,今後さらに掘り下げていきたいテーマに「Railsとして自然な書き方の追究」を掲げ,⁠複雑で大きなアプリケーションは,コードをよい状態に保つのが大変。実装パターンを意識して共有し,⁠Railsとして』自然な書き方に従っていけば,チームでメンテナンスできる」と,力強くまとめていました。

画像

画像

高井直人さん「『エンタープライズRails』に学ぶ企業ユーザのためのRails活用の極意」

「この会場に,ネクタイをしている方はいますか」という質問から始まったのは,去年に引き続きスーツのコスプレで登場した高井さんの発表です。

会場で先行販売されている高井さん監訳の『エンタープライズRails』を紹介しつつ,Railsの話に入る前に,⁠エンタープライズにとって大切なものは,人材よりもデータである」と冗談交じりに断言し,まずデータ指向アーキテクチャ(DOA)について話されました。それから,Railsの思想とDOAの類似点・相違点を並べ,⁠DOA - Rails = エンタープライズRails」として,エンタープライズの現場で使えるテクニックを紹介しました。

Railsで,どれだけデータの整合性チェックをかけたとしても,フレームワークのバージョンアップやメンテナンスのためのSQL文による直接のデータ操作を行うと,不正なデータが生み出されてしまいます。そのため,⁠Rails側だけではなく,RDBMSの機構も利用してバリデーションを行おう」ということが大きな主張でした。例えば「NULL制約」⁠チェック制約」⁠外部キー制約」をデータベース側に持たせることにより,データをより安全な状態に保つことができます。

他には,Railsの標準的な仕組みには組み込まれていない「複合主キー」を活用するメリットや,データベースにビュー(MVCのビューではなく,テーブルに対するビューです)を作ってそれに対応するモデルを用意する方法について述べ,Railsの考えに縛られることなく,データを中心に考えるアプローチを教えてくれました。

なんだか「エンタープライズ」だらけの文章になってしまいましたが,実際の発表ではこの文面以上に「エンタープライズなので」が連呼され,その度に会場に不思議な笑いが起こる楽しい発表でした!

画像

画像

後藤謙太郎さん「Rubyの数」

「Rubyの数」と題して,benchmark.rbを作られた後藤さんの発表です。

タイトルの通り,Rubyの「数」にまつわるセッションです。座長のささださんから,⁠この会場にいるひとは分かっている!」との言葉をいただきました。

Ruby 1.9でのNumericの発展としては,高速化とRational,Compelxの組み込み化があります。

Rationalは有理数を表すクラスで,小数を誤差なく正確に表せます。 Complexは複素数を表すクラスです。 会場でRationalやComplexを使ったことがある人を挙手したところ,⁠思ったより多い」と驚かれていました。⁠数学科を出ている方が3人もいてビックリしている」とのこと。

ベンチマーク用の数学問題を1.8と1.9で比べると,2倍から5倍ほど高速化しています。 VMの高速化や,メソッド呼び出しのバイパスを行っているからだそうです。 Rational,Complexの組み込みによって,高速になり,メソッドの挙動が単純になるなどのメリットがあります。

これからの問題としては,Floatに最大値や無限大があるため,数学的に不合理になることを修正することや,有名なライブラリをもっと使いやすくすることにあると言及しました。

画像

画像

著者プロフィール

大和田純(おおわだじゅん)

ハンドルネームはjune29。RubyKaigi2009当日スタッフ(KaigiFreaks)。

ディスカバリーエンジン「デクワス」を開発・運用中のサイジニア株式会社勤務のWebクリエイタ。北海道出身。技術が人々の生活をどのように豊かにしていくかを考えるのが楽しくて,新しいものはどんどん日常に取り入れてみる。好きな言語はRuby。尊敬する漫画家は荒木飛呂彦先生,好きな擬音語は「メギャン」。

URLhttp://june29.jp/


白土慧(しらつちけい)

ハンドルネームはkei-s。RubyKaigi2009当日スタッフ(KaigiFreaks)。

ディスカバリーエンジン「デクワス」を開発・運用中のサイジニア株式会社勤務のWebエンジニア。札幌市出身。大学時代にWebと複雑ネットワークの楽しさを知る。人と情報のつながりを考えるのが好き。好きな言語はJavaScriptとRuby。好きな小説家は舞城王太郎。

URLhttp://d.hatena.ne.jp/kei-shttp://friendfeed.com/keis