アットウィキロゴ

7 > 1mishi

Build Automatically
自動的にビルド

無人のビルドは自動的なものである。
しかしながら、自動的にビルドが実装できる前に、あなたはシングルコマンドに伴った実行を出来る場所のなかのマニュアルビルドシステムを持っていいなければならない。
もしあなたがそれを持たない時、26ページのPractice3のScriptYourBuildへ戻りなさい。

あなたは存在しないプロセスを自動化することが出来ない。
一度あなたはあなたのプロダクトを自動的にビルドすることが出来き、どのくらいの頻度でこのような操作を行う必要がありますか? 
理想的に、あなたはコードを変化させる時いつでもリビルドできるでしょう。
このシステムのためのスモークテストのライトウェイトセットを追加し、あなたも同様に機能的な保険の基本的なレベルを得ます。
このシステムのタイプはContinuous Integration(連続したインテグレーション(統合))と呼ばれています。

Citoolはクリーンな位置づけで、非開発者BOX(ビルドマシーン)といつも誰かにリビルドされたあなたのプロジェクトはコードをコミットします。
それぞれの時間でリビルドされているコードはその問題が起こるやいなやコンパイルエラーがキャッチされることによってあなたのコードベースクリーンを維持します。
それはまた機能的なエラーを得るためにあなたのテストスイートを実行します。
私たちはCruiseControlと呼ばれるCItool オープンソースを使用します。何故ならそれは、とてもよくサポートされ、よくスケールされ、無料だからです。
残念なことに、多くの開発ショップ(70%近く)は面倒な毎日のビルド、ましてCIシステムを苦にしません。
CIシステムを持つこれらのショップは一貫して投入された良いコードとより安定した製品と最高のひとつである
あなたはこの技術のタイプを導入する可能性が最も高いお店は主張するかもしれないことはかなり高度で、よりよいコードを判別する
私たちは同意しない。
私たちは殆どすぐにコミットする悪いコードをキャッチする定数“仮想ビルドモニター”を持つ事によって利益が来ると信じています。
それは常にコンパイルされないコードにフラグを立てます。
また、あなたが変更された既存のファイルを追加したりすることを忘れた新しいファイルをキャッチします。
自動ビルドシステムは私たち人間が良く忘れている詳細をキャッチしてくれてすばらしいです。

Tip6
継続的にビルドする
あなたはまた、“それをコンパイルしますか?”と“それを実行しますか?”と超えて移動することが出来る。 厳選されたテストスイートで基本的な機能は再テストされ、バグは再導入することが許可されていません。(バグの回帰を防ぐため)
このシステムでは、あなたの開発スタッフは修正コンパイルの失敗または何度も何度も同じバグを修正する代わりに特徴を追加して彼らの時間に費やす。
それは、開発者にこの範囲のレベルを与えるために手動によるテストは不可能です
全てのコード変更での即時のフィードバックは問題を迅速に修正できるように問題をキャッチする。
これはCIシステムを持つショップが他に対し一貫して優れた最大の理由の一つです。
このカテゴリをあなたのショップに置きなさい。
それはあなたが考えているより簡単で、莫大な利益をもたらします。

Joe Asks。。。 バグリグレッションって?
バグリグレッションはあなたのコードを修正したときに起こる問題です
この問題はSCMの中に悪いコードを戻す時、またはいくつかのミスが再導入された時に起こります。
リグレッションバグは非常にいらいらする問題です。
もしあなたがCIシステムの中で全ての実行し全てのバグを修正するためにテストを書いた時、システムは違法なコードはチェックされた時バグリグレッションはキャッチされる。
この戦略はバグリグレーションを効果的にとめる。

Tip7 継続的にテストする
SASは、世界で一番巨大な個人所有のソフトウェア会社で、これらは、CIシステムでのコードの5百万以上のラインがあります。
実際、これらは保障された一般的に複数の分岐があり、そのため、それは実際に監視されているコードの5百万ラインの倍以上ある。
もしCIがその範囲で働く時、それはあなたのショップでも働きます。
CIシステムは本当に価値があるの?
よく、私たちの経験する大きな会社一つだけでなく、これらは一晩で失敗したビルドのための会社全体の150あまりのプロジェクトを引き起こす連鎖的な問題が失敗を引き起こす一つの鍵となります。
この小さな不具合はいくつかの大陸で開発チームに衝撃を与えました。
この事件の後、経営陣はこの種のエラーを防ぐためにCIシステムの提供開始を加速させました。

Presentation
一度CIシステムをセットアップすることを決めたら、どのようにあなたが欲しい結果を提供するか教えます。
全てのCIシステムはHTMLへあなたの結果を公開できます。
また、ほとんど、同様にあなたにメールを送ることが出来ます。
しかしながら、これはちょうど氷山の一角です。
少し余分な調整で、あなたのシステムはより興味深い方法で結果を表示することが出来ます。

ビルドシステムのためにRSSを有効にします
これは一定の電子メールをかき分けることなく加入者へビルド情報を押し出します。

ラヴァランプを追加しろ!
ほとんどのビルドシステムはあなたが持つ全ての視覚的なデバイスを起動させるためにX10モジュールを使用することが出来ます。
いくつかの人々はラヴァランプを使い、他の人はAmbientOrbを好む、しかし、あなたはあなたが好むすべてを起動できます。
あなたの通知とともに楽しんでください。
How Do I Get Started?
あなたはすでに自動ビルドシステムと供に次のレベルの移動のために新しく良いビルドシステムを持たなければならない。
1. 使用する自動ビルドシステムを選択せよ。自分自身で書いてはいけません
2. 実行するための“クリーン”なマシーンを取得しろ
3. あなたの自動ビルドマシーンをインストールし、ご使用の環境に合わせて設定して。インストールの各ステップを文書化して
これで完了!
あなたはかなり簡単にこのシステムの種類をセットアップでき、投資のリターンは通常最初の数ヶ月で損益分岐点に達する。
経営者が利益を見ていない場合、最初は自分のマシン上でシステムを実行する。
CIシステムを使用したことがない人は、しばしば概念がいかに強力か理解するために、ライブデモンストレーションを必要とする。

If a Tree Falls in the Woods
世界での自動ビルドシステムのベストはもしあなたがこの結果を見ていないなら役に立たないでしょう。
多くのシステムは自動的にメールを送信します。;この特徴の利点を得なさい!
私たちは前もってこの機能への多くの抵抗を見てきました、しかし、私たちはチームがそれらに順応した後にメールから受けいれられるのを見てきました。
あなたは、“全てうまくいった”というメールが来るまでの日のために最終的に残すことはなく、これらの通知に依存するようになるでしょう。

Am I Using This Right?
もしあなたが自動ビルドシステムを使用しているとき、あなたは多くのソフトウェアチームの先へ行きます。
しかし、あなた自身に問うためのいくつかの質問があります。
  • システムのテストをしてますか? その後誰もコンパイルをしても実行しても気にしません。
  • 誰がシステムに注目してますか? 通知がonにされてますか?
  • あなたのビルドはすぐに修正されるか数日間壊れたままですか?
  • あなたのビルドは適切な時間で完了されますか、完了するのに長い時間がかかりますか?
もしこれらの問題を好意的に答えられるのならば、あなたのチームは過去半年の間に機能Xを壊したコードの行の追跡をする代わりにこれらに機能を追加する日を過ごす事ができるでしょう!

Warning Signs
  • あなたの自動ビルドシステムが頻繁に壊れる。
  • あなたのチームが壊れたビルドを無視する。
  • ビルドが実行がとまり、だれも通知しない。

タグ:

+ タグ編集
  • タグ:
最終更新:2011年07月01日 14:45