CodeZine(コードジン)

特集ページ一覧

【RubyKaigi'08】詳細レポート : 多様化するRuby(続)

日本Ruby会議2008 詳細レポート 後編

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/06/26 11:00

目次

アプリケーション開発言語としてのRuby

 Ruby会議 2日目の最終セッションは、前田修吾氏の『Rails症候群の研究』だった。

 前田氏は以前からRubyコーディング規約を公開するなど、Rubyを利用したアプリケーション開発についてコミットしている。

 このセッションでも、RailsからRubyを利用し始めた開発者の特徴として次のような望ましくない傾向の指摘から開始した。

  • protectedメソッドの多用
  • Open classの多用
  • Rubyが何かわかっていない

 次に、これらの問題の由来について過去の経緯などを示したあとで、修正方法などについての見解を示した。

 例えば、Open classの代わりにselector namespaceを導入することで(その代わりにOpen classを廃止し)、意図せぬクラスの書き換えを防ぐようにすることである。

 次のリストは、jcodeというselector namespaceの下でのみStringクラスのlengthメソッドを置き換えるという疑似コードである。

class String
  def jcode$length
    return gsub(/[^\Wa-zA-Z_\d]/, ' ').length
  end
end

class Foo
  using jcode
  def bar
      p "あいうえお".length => 5
    end
  end
end

 リストから分かるように、selector anamespaceを導入した場合、元のクラスに対する変更は、呼び出し側がnamespaceをusingして初めて有効となる。これによって、意図せぬクラスの書き換えからアプリケーションを守ることが可能となる。

 前田氏は最後に、文書化された仕様の必要性を訴えてセッションを締めくくった。

まとめ

 2008年のRuby会議は「多様性は善」というテーマにふさわしく、Ruby 1.9、JRuby、Rubiniusの他にも、名前だけが先行しているMagLev、本稿では触れなかったが2日目のセッションでにわかにMacの注目度を高めたLaurent Sansonetti氏によるMacRubyといった処理系の多様化、教育や業務といった利用シーンの多様化など、いろいろなレベルで多様性が強調されたものだった。

 それと同時に、実装が多様化するということは、それらが正しくRubyの処理系であることをどこかで保証する必要があるということでもある。まつもと氏や前田氏のセッションでは、文書化された仕様の作成に対して、Rubyアソシエーションが前向きであることが明らかにされた。

 それにつけても、テーマの設定、それにマッチした会場のセッティング、ムード作り、セッションの選定など、日本Ruby会議2008実行委員会は実に素晴らしい仕事をされたと思う。感謝と讃辞を送りたい。ありがとうございました。



  • LINEで送る
  • このエントリーをはてなブックマークに追加

修正履歴

  • 2008/06/27 03:30 「書く引数」→「各引数」 RubyEndのライセンスについて記述を追加

  • 2008/06/26 21:24 selector namespaceが疑似コードであることを明記。usingの誤記修正。 否定の!を~と書いていたバグの修正。

バックナンバー

連載:【RubyKaigi'08】詳細レポート

著者プロフィール

  • arton(アートン)

    専門は業界特化型のミドルウェアやフレームワークとそれを利用するアプリケーションの開発。需要に応じてメインフレームクラスから携帯端末までダウンサイジングしたりアップサイジングしたりしながらオブジェクトを連携させていくという変化に富んだ開発者人生を歩んでいる。著書に『Ruby③ オブジェクト指向とはじめ...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5