« 2005年09月 | メイン | 2005年12月 »

2005年10月06日

mod_webdev

 ラボに入社する前に未踏プロジェクトで開発した「ウェブアプリケーション (Apache/Perl) 統合開発環境」(リンク先:PDF)をどうしたものか、というのが個人的な悩みでした。なにしろ、入社してから PHP のコードばかり書いているわけで、Perl の開発環境なんか不要なわけです注1

 一方で、運用中の環境で開発が行えるという点には今でも魅力を感じるので、その部分だけ切り出して、整理することにしました。

 mod_webdev (リンク先: SourceForge.net)です。


管理画面

開発版にアクセスした画面

運用版にアクセスした画面

 mod_webdev は、一言で言うと、条件つき mod_rewrite です。特殊なクッキーを伴ったリクエストについてのみ、ファイル名を書き換えることで、開発者が開発中のファイルをテストすることができます。

表1. アクセス例
URIhttp://example.com/cgi-bin/foo.cgi
実行ファイル (一般ユーザー)/home/www/cgi-bin/foo.cgi
実行ファイル (開発者)/home/www/cgi-bin/.htwebdev-test-foo.cgi

 こんなものの何が便利なのかというと、下表のとおりです。小規模なサービスの機能追加/バージョンアップのサイクルを短くするという目標がご理解いただけると思います。

表2. 開発手法の比較
手法メリット/デメリット
別環境での開発+テストが容易
-開発環境が別途必要
-開発環境と運用環境の同一性を維持する必要がある
運用環境での開発 (別ファイル名)+開発環境が不要
-URL が異なるため結合テストができない
mod_webdev での開発+開発環境が不要
+結合テスト可能
+ファイルリネームでデプロイ

 今後のバージョンでは、 PHP や Perl スクリプト内で、バージョンに応じた require や DB テーブル名の生成ロジック等を書けるようにしていきたいと考えています。

注1: 別に Perl を書いたらダメ、と言われているわけではありません。

投稿者 kazuho : 2005年10月06日 12:22 | コメント (2) | トラックバック (3) このエントリーを含むはてなブックマーク このエントリーを含むはてなブックマーク