すがブロ

sugamasaoのhatenablogだよ

Windows上で動作をさせられない状況での開発はどうすればいいのか?

例えば CGI プログラムがあって、ある理由によって開発用のクライアントマシン(Windowsマシン)で動作の確認をすることができず、動作の確認をするためには1台しかないサーバ上で動かしてみるしかない状況を想定してみよう。
つまり、いくら開発マシンにソースファイルを持ってきて開発(改修)したところで、動作の確認を行うにはサーバ上のソースとマージ(というか上書き)しなくてはいけない、ということである。
この開発環境にはいくつか問題がある。

  1. 動作確認が単体テストレベルではなく、実質結合テストレベルである
  2. 単体テストができないので、クライアントマシン上でソースを持つ意味がない(むしろ動作確認のためにサーバ上のソースを複数人で上書きしてしっちゃかめっちゃかになる可能性がある)
  3. 上記二つ(特に2番目)の理由からバージョン管理が効果的に行われない
  4. 開発人数が2〜3人ならともかく10人規模になったときに上手いことできる保障はない

というわけで、それではどのように開発環境を改善すれば良いか?
この状況を解決するためには以下の状態にもっていかなくてはいけない

  1. 単体テストが可能である(=個人ベースで開発とテストが可能になっている)
  2. (上記と連動して)バージョン管理が可能である

このような状態へもっていくにはどうしたら良いだろうか。

  1. 開発用のクライアントマシンをサーバと同じ構成(UnixなりLinuxなり)にしてしまえば個人での動作確認まではできるし、少なくともLinuxならバージョン管理ソフトも動くだろう。
  2. 何が何でもWindows上で動く環境を作る(実際のソースをどこまで変更せずに対応させるかがカギ)
  3. VMware上のサーバを個人用のサーバとして動かす(上記Windows環境と似ているか)

さて、「ある理由によって開発用のクライアントマシン(Windowsマシン)で動作の確認をすることができず」という条件を出したにもかかわらず、それを覆すような候補が上がっているけど、実際問題、どうやってこの場を上手いこと捌けばよいのだろうか。
だれか経験豊富な方教えてください(笑)