開発環境(3) [プログラマー現役続行]
継続的インテグレーション(Continuous Integration)を行うために、CIツールを使用して、ビルドからテストコードの実行まで行っている開発組織は増えてきていると思います。その場合、CIツールを動作させているサーバではビルドごとにテストコードの実行は1回行ってパスするかどうかを調べることになります。テスト対象のソフトウェアがマルチスレッドで動作するのでなければ、これで良いかもしれません。
テスト対象のソフトウェアがマルチスレッドで動作するのではあれば、1回の実行では不十分です。何千回と繰り返したり、システムに様々な負荷をかけて実行したりということが必要になってきます。そうなると、サーバだけでなく、各開発者の環境でも動作させて、夜間にテストを実行し続けることが必要になってきます。
しかし、ここで注意しなければならないのは、CIサーバーがマルチコアで動作しているのに、開発者にはシングルコアの年代物のPCを与えていてはいけないということです。そのような貧弱な開発環境では、開発者は以下の問題に遭遇します。
残念ながら開発者のPCが貧弱な場合には、開発者の能力がいくら高くても、マルチスレッドに関係する問題の洗い出しや調査に非常に長い時間を要してしまいます(「開発環境(2)」)。ましてや、マルチスレッドに関する正しい識を持っていないレベルの開発者は、貧弱な環境であれば、問題を正しく認識して解決することができなかったりします。
テスト対象のソフトウェアがマルチスレッドで動作するのではあれば、1回の実行では不十分です。何千回と繰り返したり、システムに様々な負荷をかけて実行したりということが必要になってきます。そうなると、サーバだけでなく、各開発者の環境でも動作させて、夜間にテストを実行し続けることが必要になってきます。
しかし、ここで注意しなければならないのは、CIサーバーがマルチコアで動作しているのに、開発者にはシングルコアの年代物のPCを与えていてはいけないということです。そのような貧弱な開発環境では、開発者は以下の問題に遭遇します。
- 自分のPCではテストが動作するのだけど、CIサーバではテストが失敗することがある。
残念ながら開発者のPCが貧弱な場合には、開発者の能力がいくら高くても、マルチスレッドに関係する問題の洗い出しや調査に非常に長い時間を要してしまいます(「開発環境(2)」)。ましてや、マルチスレッドに関する正しい識を持っていないレベルの開発者は、貧弱な環境であれば、問題を正しく認識して解決することができなかったりします。
2011-01-16 08:20
nice!(0)
コメント(1)
トラックバック(0)
Facebook コメント
この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。
いろいろな意味で開発環境が終わっています・・・
by Suzuki (2011-01-16 10:17)