BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Hobo 1.0はRailsを拡張する

Hobo 1.0はRailsを拡張する

原文(投稿日:2010/05/11)へのリンク

HoboはRailsアプリケーション開発を効率化するために作られたRuby on Railsの拡張コレクションだ。最近、その1.0リリースがアナウンスされた。InfoQでは、プロジェクトの作者であるTom Locke氏にマイルストーンについて話を聞いた。

私たちは「オッケー、これで誰にでも快適に使えるだろう」と思えるまで、機能追加をストップして、ドキュメント作成と安定化に注力することにしました。また、警告メッセージによる猶予期間を設けずに、大きな変更はやらないことを約束しました。

HoboはRailsを拡張して、Webアプリケーション開発でよく見られる共通パターンを解決する。例えば、Hoboアプリケーションはデフォルトでユーザ登録とログインを提供する。何もしなくても、アプリケーションは登録、認証のためのユーザモデル、コントローラ、ビューを備えているということだ。また、検索機能もデフォルトで提供される。

HoboはRailsのモデル、ビュー、コントローラといった各層と連携して機能する拡張セットだと考えてもよい。例えば、Hoboはモデル中心の許可管理を提供する。どのアクションがどのユーザによって実行されるかをモデルに宣言することで、コントローラはユーザが認可されたアクションだけを実行し、ビューは編集許可のないユーザに編集フォームを見せないようにすることができる。Hoboのモデルにはライフサイクルを宣言することもできる。これにより、コントロール層には対応するアクションが、ビュー層にはユーザインターフェイスが、自動的に作られる。

Locke氏はHoboを単なるScaffolding(足場となる)フレームワークとして考えることに対し、次のように述べた。

Scaffoldingフレームワークは、間に合わせのもので十分なときには非常に便利です。例えば、一時的な応急処置としてや、一般ユーザには見えない管理サイトなどです。でも、Hoboはあらゆるアプリのために作られました。何もしなくても、そのままのUIで始めることもできます。それでも、あなたが期待する以上に、役立つサイトに近いと思いますよ。それから徐々に、あなたが真に求めるユーザ体験になるよう、すべてをカスタマイズすることができます。
[...]
私たちはかなり苦労して、いつでも「内部」を調べて、標準のRailsでやれることなら何でも変えられるようにしました。

この再利用と拡張性の考え方は、HoboのDRYMLにも見られる。DRYMLはタグベースのテンプレート言語で、開発者が独自のタグを単純に簡単な方法で作れるようにするものだ。これは使われるたびにタグの出力に適用されるような、"context-over-consistency(文脈は一貫性に勝る)"カスタマイズを可能にする。

大きな強みは、柔軟性を全く犠牲にすることなく、view-codeの断片をパッケージ化して再利用できることです。... パンくずリンク、最新ニュースウィジェット内、ブログのインデックスページ内にあるような、中間にあるHTMLコードの繰り返しはもう必要ありません。

ダウンロード数は数千にのぼり、メーリングリストのメンバも500名に迫っている。Hobo Central からは、Rapid Rails with HoboHobo at Work という2冊の本の PDF をダウンロードすることができる。

Hoboは大きなプロジェクトです。学ぶべきことはたくさんあります。でも、Hoboを立ち上げて何か作るのに、学ばなければならないことはわずかです。アプリをもっと細かく微調整したければしたいほど、それだけ長いラーニングカーブが必要になります。

HoboはBarquin Internationalによって支援されている。

BarquinのOwen Dall氏が私たちを見つけて参加してから、もう2年になります。はっきり言うと、ベンチャーキャピタルがやるような資金調達の話は全然してないんですよ。Barquinは私と(後に)Bryan Larsen氏がコードを書いて家賃が払えるよう支援してくれたんです。おかげで片手間にやるのと比べて、プロジェクトの進捗はかなり加速しました。... 最近だと、Hoboの本を作るプロジェクトはすべてBarquinによるものです。私が以前書いたドキュメントも一部使われているので、私も著者になっていますが、実際にこうして本ができたのは、すべてBarquinにいるOwen氏とJeff氏のおかげです。

Hoboの将来は?

正直に言うと、コミュニティ次第ですね。検討すべきアイデアはたくさんありますが、どれを先に片付けるかは、みんなが何を求めているのか、何をコントリビュートしてくれるのか次第です。ちょうど国際化サポートに対して素晴しいコントリビュートがありました。正直なところ、私たちの頭には全くなかったものです。このようにして、プロジェクトに弾みがつくのは素晴しいことです。

 

この記事に星をつける

おすすめ度
スタイル

BT