Ruby on Railsのチームから学ぶ仕事術:安藤幸央のランダウン(30)
「Java News.jp(Javaに関する最新ニュース)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします(編集部)
Ruby on Rails自体についての解説は、「WebプログラマはRailsに乗るべきか?」や、「Rubyでアジャイルプロトタイピング」にもありますので、そちらもぜひご覧ください。本記事は2006年に執筆されたものです。RubyやRuby on Rails全般の最新情報は@IT Coding Edgeフォーラムをご参照ください。
素早く開発が行えるRuby on Railsに驚くとともに、Railsのプロジェクトの素早さの根源はどこにあるのか不思議に思った人も多いことでしょう。
Ruby on Railsの開発には、37singals社のDavid Heinemeier Hansson氏を中心とする11名で構成されたチームがかかわっています。
Ruby on RailsによるWebアプリケーション構築風景を撮影したいくつかのスクリーンキャストから分かるように、MacOS Xを主な開発環境としていることが分かります。うわさによるとコアチームの11人全員がMacOS Xを開発環境としているようです。
37signal社に学ぶ素早い仕事術
さて、プロジェクト管理ツールであるBasecamp等、プロジェクト進行に役立つアプリケーションサービスを提供している37signals社は、自ら開発したそれらのツールも活用しながら、素早く仕事をするためのノウハウを蓄えているようです。37signalのブログから、彼らがどのように素早い仕事を実現しているのかを考察してみましょう。
- テキスト編集、HTML/CSSコーディングにはTextWrangler、TextMate、Vimを利用
TextMateはサジェスチョンやコード補完が絶妙に賢い、プログラマ向けの軽量テキストエディタです。Ajaxでよく使われるprototype.jsやRubyへの対応が充実しています。日本語入力には対応していません。 - Quickbooks Pro 2006 for Mac
中小企業向けの会計ソフト。 - 技術的サポートにはGmailと英単語向けのインプットメソッドTypeIt4Meを利用
バグトラッキングにはTracを利用。Wikiベースのプロジェクトポータルとして利用できるツールです。 - ニュースレターの配布にはCampaign Monitorを利用
レポート機能が充実している配布ツールです。 - 社内外向けの開発ブログにはMovable Typeを利用
- 新着情報、RSS用のフィード生成にはFeedburnerを利用
- プロジェクト管理ツールBasecamp、Backpackのフォーラム機能にはPunBBを利用
- 開発マシンとしてPowerBookとiMac G5を利用。テスト用PCとしてDellのマシンを利用
- オンライン課金、クレジット課金サービスとしてAuthorize.netを利用
- Webサーバのホスティングは彼らの地元であるシカゴのTiltedを利用
- 整形されたドキュメント作りにはAdobe InDesignを利用
- グループ内の遠隔コミュニケーションにはiChat、Skype、Adium(マルチIM)、Campfireを利用
- CRMツールとしてSunrise(現在37signalsが開発中のもの)を利用
上記リストから必要十分であり、ぜい肉のない小回りの利く軽量で素早い開発スタイルであることが見て取れます。一見漠然としているように見えつつも、リストの中にはWebアプリケーション開発を主軸とする企業に必要なものがすべてそろっています。これからWebアプリケーションサービスを提要しようともくろんでいる人も、現在企業でWebアプリケーションを開発/サービス提供している人も参考になる点があるのではないでしょうか。
37signalsが提供する数々のツール(Writeboard、Ta-da List等)は、実際に彼ら自身の開発プロジェクトに使われることによってより品質の高い使いやすいものとなっていることがよく分かります。
開発作業をスムーズに進めるデプロイツール(旧SwitchTower)
Capistrano(カピストラーノ:旧名SwitchTower)は主にRuby on Rails用として生まれたアプリケーションデプロイ(配備)ツールです。旧名であるSwitchTowerはRaindance CommunicationsというWeb会議ソリューションを提供する会社の登録商標とぶつかっていることが分かったため最近改名されました(Capistrano自身は一応一般的なデプロイツールとしてRuby on Rails以外のWebアプリケーションでも利用することができるそうです)。
Webアプリケーションを開発していると、ローカルな開発環境でのプログラム開発、実行/テストを繰り返し、その後公開されたインターネット/イントラネット上のサーバに公開し実行/テスト/運用を行うことでしょう。バグが発見された場合は、また上記の手順を何度も繰り返すことになります。ローカルでの機能追加などによる更新状況やバグフィックスの状況は少しでも手順を間違えるとアプリケーション更新の失敗はもとより、アプリケーションそのものが動作しなくなる危険性もあります。
Railsのホスティングサービスrailsmachineでは“Deploy in 5 minutes”というスクリーンキャストが公開されています。Capistranoによるデプロイがいかに簡単で間違いなくスムーズに行えるかをアピールしたデモです。Capistranoの良いところは、各種設定ファイルを自動生成し、サーバ環境をリモートで操作することによって、作業の煩雑さを軽減するアプローチであることです。GUIベースのデプロイツールの中にはどのようなファイルがサーバのどこにどう配備されるのかがよく分からない透明度の低いツールも存在します。Capistranoには派手さはないものの、ツールによって行われる事象の透明度が高いことが開発者に安心を感じさせる要因ともなっています。
開発の初期やプロトタイプ開発時はファイル構成は簡単で、デプロイ作業も単純である場合が多いと思われます。ところが実際に運用開始後や、頻繁なバグフィックス、機能拡張などにおいて、デプロイの重要度と、複雑化していくファイルの構成にあぜんとすることでしょう。また1つのローカル開発環境を数多くのサーバにデプロイする場合、簡単にデプロイできることは台数が多いほどありがたみを感じることでしょう。さらにCapistranoを利用しているのであれば、クリティカルな不具合が発見された際、正常に動作していたころにアプリケーション環境を戻すというロールバックも簡単に可能になるのです。
開発のごく初期段階の余裕のある時期からCapistranoを利用した一連の流れを確立することにより、よりスムーズな成功へのレール(Rails)に乗っていくことになるのです。
■関連書籍
- 「RailsによるアジャイルWebアプリケーション開発」(オーム社刊、前田修吾監訳)
- 「Ruby on Rails: Up And Running」(Oreilly刊、Bruce A. Tate/Curt Hibbs著)
プロフィール
安藤幸央(あんどう ゆきお)
1970年北海道生まれ。現在、株式会社エクサ マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。コンピュータ自動彩色システムや3次元イメージ検索システム大規模データ可視化システム、リアルタイムCG投影システム、建築業界、エンターテインメント向け3次元 CG ソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。また、Java、Web3D、OpenGL、3DCG の情報源となるWebページをまとめている。
ホームページ:
http://www.gimlay.org/~andoh/java/
所属団体:
OpenGL_Japan (Member)、SIGGRAPH TOKYO (Vice Chairman)
主な著書
「VRML 60分ガイド」(監訳、ソフトバンク)
「これがJava だ! インターネットの新たな主役」(共著、日本経済新聞社)
「The Java3D API仕様」(監修、アスキー)
Copyright © ITmedia, Inc. All Rights Reserved.