テクノロジーによる教育支援への挑戦

テクノロジーによる学びの支援へのチャレンジについて書いていきます

Ruby on Rails アジャイルなアプリケーション開発

Ruby on RailsというWebデータベースアプリケーションをカンタンに構築できるフレームワークが昨年から爆発的にヒットしている。

Railsはデータベーステーブルさえできていれば、"CRUD" すなわちデータのCreate, Read, Update, Deleteなどができるアプリケーションが直ちに作れる。合言葉は、"DRY"、すなわち "Don't Repeat Yourself!" (同じことを二度とするな)である。データベースの検索・表示などの処理は似たような処理をするが、往々にして同じようなコーディングをしてしまうことがある。そうした無駄をなくし、効率よくサービスを開発・投入するための仕組みがフレームワークである。Railsだけではなく、PHPでのEthnaPerlでのSledgeなどもよく利用されている。

Ruby on Railsで作成されたアプリケーション(サービス)には、Project management software, online collaboration: Basecampなどがある。

Javaに比較すると10倍の生産性があるというCurt Hibb氏の記事がブレイクのきっかけと言われる。

なぜ注目しているか?

  • Bootcampなどの大規模なアプリケーションを数ヶ月で構築した、などのファクトから、これまで大資本でないと実現できないと考えられていたようなエンタプライズなシステム構築を、少人数で迅速(アジャイル)に実現できそうという期待があるから。
  • 思い立ったらすぐに作ってみる。確かめながら改変していく、というスタイルが迅速な開発には向いていると思うから。
  • mod_rubyFastCGIなどを使えば、そこそこの規模に耐えるサイトも構築できそうだから。今後はpoundなどの負荷分散ソフトウェアと組み合わせたロードテストを実施したい。

昨年までJavaベースのエンタプライズソフトウェアを扱っていましたが、

  • ちょっとした改変やバグを直すのにも、システムが大きくなるとコードの見通しが悪くメンテナンスがしにくい。
  • コードが一部クローズになっていてフレキシビリティに欠ける
    • つまり、ソースコードに手をいれたら、未来永劫メンテナンスフィーを搾取されるわけで。なんだかフェアではないと思う。

などの問題がありました。

そこでオープンソースの各種ソフトウェアも試しているのだが、いまいち開発の効率が悪い。自分でぱっぱと作れるようなWebアプリの開発フレームワークはないか、と探していたわけです。

大企業でないといいアプリケーションが出来ないという訳ではなく、少数精鋭でもよく切れるナイフを持って数百倍の生産性を上げれば、ジャイアントに立ち向かうことも可能じゃないでしょうか。

それから、エンタプライズプロプライエタリなソフトエアって響き自体がなんだか旧態依然としていて、Web2.0じゃないなあ、と思うし。Web2.0は、もっと迅速で、つながって、もっとわくわくするものだと思う。

Railsを動かしてみた

触ってみないとよくわからないので、サーバに入れてみる。

さくらインターネットではfcgiなどがうまく動かないので、

/public/.htaccess

以下の.cgiと.fcgiの行をコメントアウトした。

そうしたら動きました。

http://inoue.jpn.org/blog/bookmarks

Railsの動作環境を作るまではちょっと苦労しますが、一旦環境を構築してしまえば、アプリを作るのはそれほど大変ではありません。

順次、検証の経過について公開していきたいと思います。