あの動画の裏側

吉見和也(Kazuya Yoshimi) 2007-10-01 08:01:31

 以前、こちらで動画「Ruby on Railsで10分で作るTwitterもどき」を公開したところ、多くの反響をいただきました。見てくれた方、ブックマークしてくれた方、ありがとうございます。今回、動画の解説を文章で読みたいとのご要望にお応えして、ブログを書かせていただくことになりました。このブログでは動画「Ruby on Railsで10分で作るTwitterもどき」を解説しながら、僕らRAWHIDE.が実務を通して感じてきたRuby on Railsについて紹介していきたいと思ってます。

Ruby市場の更なる活発化に、ほんのちょびっとでも貢献できたらうれしいなぁ

■ scaffoldのあとで読んでください

 Railsのススメということで、RubyやRailsの初心者の方向けに書きたいと思ってますが、Ruby on Railsのインストールや、きっと誰もが最初にやってみるscaffoldは、多くのサイトや書籍で解説されていますので、そちらを参考にやってみてください。scaffoldを初めてやった時は感動することうけあいです。ただし、Railsの本当の楽しさは次のステップからなので、これだけで満足しないでくださいね。

 RubyとRailsはインストールできました?scaffoldで何か作ってみました?ここまでOKなら、さっそく実際にアプリケーションを作っていきましょう。あ、でもその前に、ちょっと誤解を解いておく必要があるかもしれません。

■ RailsでJavaのn倍の開発効率?

 以前Railsを使えばJavaのn倍の開発効率を得られるなんてことが噂になっていました。その真偽のほどは、未だ勉強中の身なのでなんとも言えませんが、Ruby on Railsを紹介するにあたって、まず始めに言っておきたいのは、Railsだからって「10分でTwitterもどきなんてつくれない」ということです。

 今回作成したTwitterもどきは、非常に小さいアプリケーションですが、小さいとはいえ要件定義や設計はしているわけです。これだけで余裕で10分なんて超えてしまっています。アジャイル開発とは言いますが、設計をおろそかにすればまともなものを作れないのはRailsとて変わりはありません。そして、他のフレームワークと比べてRailsが格段に設計しやすいかというと、そうでもないと感じてます。

 でもがっかりしないでくださいね。Railsがその本領を発揮するのは実装フェーズなんですから。「Ruby on Railsで10分で作るTwitterもどき」の中では、ノーカット10分で一つのアプリケーションを作っています。設計にあてた時間は別ですが、編集とか早回しはしてません。ちゃんと10分でコーディングを終えて、動作させるところまでやっています。練習はかなりしましたけどね!まぁそれでも、同じ品質のものを、他の言語やフレームワークで10分で作る自信は、僕にはありません。Ruby on Railsは、プログラマーが書かなくてはいけないコード量を劇的に少なくしてくれます。だからこそ、キータイプのあんまり早くない僕でもあの動画ができたんじゃないかなと思います。つまり、Ruby on Railsの開発効率アップの正体は、コードの量が減る=開発効率アップというわけですね!

■ はっぴーうれぴーよろぴくねー

 短縮できるのは実装フェーズだけなの?とお思いかもしれませんが、それってとてもステキなことだと思いません?僕らプログラマーにとって、楽しい時間っていつでしょうか。人それぞれでしょうけど、僕は「何をどう作るか」を考えてる時と、それが動いた瞬間です。間のコーディング作業中って、プログラマーの脳はほとんど働いてないらしいですし、頭使わないことで時間とられたくないってのが本音です。

 設計の楽しさを残しつつ、面倒なコーディング作業を軽減してくれるRuby on Railsは、いわば「楽しい開発」のためのフレームワークと言って良いんじゃないでしょうか。実装の手間が少なくなれば、余った時間はお茶するなり、合コンするなり、たまにはアプリケーションの品質向上にあててもいいかもしれません。

 自分のアイデアを形にしやすいフレームワーク。そんなRuby on Rails使って、楽しく開発してみませんか?

■ やっとこさ第一回解説のはじまり

 長い前置きになってしまいましたが、これで心置きなくTwitterもどきの作り方の解説に移れます。

 最初にも書きましたが、Railsがアジャイルを売りにしているからといって、要件定義や設計はしっかり行う必要があります。やらないと後で後悔します。というかしてます。特にERDは必ず書いた方がいいでしょう。ERDの書き方は羽生章洋氏の「楽々ERDレッスン」が非常に参考になりますので一読をお勧めします。

Twitterもどきの機能としては、

・ユーザー登録して、ログインできる

・自分の状態をテキストで投稿できる

・他のユーザーを「友達」に設定できる

・自分と友達の投稿を一覧できる

・個人の投稿を一覧できる

この5つだけです。

そしてこれをもとにモデリングをしていくのですが、ここで小さな仕様変更を恐れる必要はありません。後ほど解説しますが、Railsのマイグレーションという機能が、多少の仕様変更であれば簡単に受け止めてくれます。なので細部まで気にするよりは、骨子だけしっかりした設計をして、さっさとコーディングを始めましょう。

erd.jpg

テーブルは、ユーザー・誰と誰が友達なのかを表す関連・ユーザーの投稿の3つになります。次回からはこれをもとに、Railsでのコーディングをしていきます。押忍

※このエントリはZDNetブロガーにより投稿されたものです。朝日インタラクティブ および ZDNet編集部の見解・意向を示すものではありません。

SpecialPR

  • ビジネスの継続的な成長を促す新たなITのビジョン

    多くの企業においてITに求められる役割が、「守り」のコスト削減から「攻め」のビジネス貢献へとシフトしつつある。その中でIBMが提唱する新たなビジョンEnterprise Hybrid ITとは?

  • デジタル変革か?ゲームセットか?

    デジタルを駆使する破壊的なプレーヤーの出現、既存のビジネスモデルで競争力を持つ
    プレイヤーはデジタル活用による変革が迫られている。これを読めばデジタル変革の全体像がわかる!