2008年08月23日
『東京Ruby会議01』に参加してきた (前編)
8月21日夜にニフティ株式会社で行われた東京Ruby会議01に参加した。交通機関が崩れまくってたり、雷雨だったり(危険時間帯はちょうどセミナータイムで問題なかったけど)とあったけど、無事に開催。 角谷さんにもようやくご挨拶できた。
上述したように、会場は大森ベルポートにあるニフティ株式会社のセミナールーム。ベルポートの吹き抜けが無駄に高級ですごい。18時開場に合わせて入ったときにはまだスタッフだけだったが、18時45分の開始時間にはかなりの人入りとなっていた。
発起人の角谷信太郎氏の挨拶のあと、トップバッターを務めるのはタワーズ・クエスト社の和田卓人氏。「それ Ruby でもやりたい - ライブラリ移植と機能拡張のためのパターンランゲージ」と題して、フレームワークで抽象化されたSQL命令よりももっと手書きっぽい複雑なSQLを書くために、Java+SeasarフレームワークのS2DaoというソフトウェアをRubyに移植した経緯を語った。具体的にはSQL文字列内に/* */コメントを入れ、この中でctx[:job]のようにして値を埋め込んだり、IF文やBEGIN/END文で条件判定したりできる。移植にあたっての手順やアドバイスとしては、まずは本当に代替案がないかを探す、対象コードのテストがありまた利用したい機能が切り分け可能かを確認する、まずは綺麗な設計とか考えずにとりあえず動くようにする、一度に多の目的を達しようとせず1つひとつ順に実装する、実装内部を改善するためにブラックボックステストを使う、といった手法が挙げられた。
続いて、吉見圭司氏が「Sexy development with ClassX」というタイトルで、彼が実装したClassXライブラリを説明した。これはクラスのアクセッサ機能を拡張して、属性値の名前、書き込み権限、オプション化、デフォルト値、バリデーション、オブジェクトクラスなどを定義できるもの。多数の引数を持つ初期化メソッドでは通常、渡されたローカル変数をオブジェクトのグローバル変数に渡すといった手続きが必要になるが、ClassXを使うことでこのような処理は不要になる。また、設定ファイルなどでは値形式の制限やデフォルト値を設定でき、有用だ。コマンドラインアプリケーションではコマンドパラメータの複雑な解釈もできる。デメリットとしては、標準の処理に比べて遅すぎるというのが挙げられ、現在のところ100倍→35倍程度までは改善されたものの、さらなる最適化が必要という課題があることが述べられた。
3人目の発表者は、アイ・プライド社のこしばとしあき氏「オフィスで踏み出すRubyの世界」。Excelをこよなく愛する氏は、Javaのテストケースを作成するためにExcelファイルをRubyのWin32OLE機能を使って処理したという事例を示した。氏によればExcelは誰でも使っているほどに親しみやすいながらも、Excel APIはわりと使いやすく、ブック/シート/セルの階層構造を持っていて上位にアクセスすることもできるなど、能力が高い。これに「アプリケーションサーバーいらずのJSP」ことERBと、Visual Basicよりも容易に(Rubyなら基本型/オブジェクトの意識が不要で、ブロック渡しもできる)扱えるWin32OLEとを組み合わせてできたのが、氏のXLSモジュールだ。XLSモジュールでは、Excelのシートのデータが多次元のハッシュに変換される。実装したテストケース作成ツールは社内で評判よく、Rubyへの興味が高まったという話である。Excel活用をダシにしてRubyを勧めようと氏は述べ、「Happy Exceling!」と締めた。
(後編に続く)
![[hatena]](http://d.hatena.ne.jp/images/b_entry_de.gif)
![[RSS]](/d/rss10.png)