これまで CI ツールを使用したことはありませんでしたが、読んだ限りでは、毎日コードを書いていない単独の開発者に CI ツールが役立つかどうかはわかりません。
まず、CI はプロジェクトにどのようなメリットをもたらしますか?
第二に、誰が CI を使用すべきか? すべての開発者にメリットがありますか?
これまで CI ツールを使用したことはありませんでしたが、読んだ限りでは、毎日コードを書いていない単独の開発者に CI ツールが役立つかどうかはわかりません。
まず、CI はプロジェクトにどのようなメリットをもたらしますか?
第二に、誰が CI を使用すべきか? すべての開発者にメリットがありますか?
CIの基本的な概念は、誰かがバージョン管理システムにコミットするたびにコードをビルドし、自動テストを実行するシステムがあるということです。これらのテストには、ユニットテストと機能テスト、さらには動作駆動テストが含まれます。
利点は、誰かがビルドを壊したときをすぐに知ることができることです。
これは、次のいずれかを意味します。
A。 _ 彼らはコンパイルを妨げるコードをコミットしました。
B。 _ 彼らはいくつかのテストを破ったコードをコミットしました。これは、修正が必要なバグを導入したか、コードの変更を反映するようにテストを更新する必要があることを意味します。
ソロ開発者の場合、コミット前にテストを実行する習慣があれば、CIはそれほど役に立ちません。これは、実行する必要があることです。そうは言っても、CIにテストを任せるという悪い習慣を身に付ける可能性があります。
ソロプログラマーとして、それは主に規律に帰着します。CIを使用することは有用なスキルですが、チーム環境に変換されないような悪い習慣を身に付けないようにする必要があります。
他の人が指摘しているように、CIは単独の開発者にとって利点があります。しかし、あなたが自問しなければならない質問は次のとおりです。オーバーヘッドの価値はありますか?サーバーを割り当て、すべてのネットワークをセットアップし、ソフトウェアをインストールする必要があるため、プロジェクトの CI システムをセットアップするのにおそらく 1 時間か 2 時間かかります。CI システムは、一度に数秒しか節約できないことを覚えておいてください。単独の開発者の場合、これらの時間の合計が CI のセットアップにかかった時間よりも多くなることはほとんどありません。
ただし、これまでに CI システムをセットアップしたことがない場合は、その方法を学ぶためだけにセットアップすることをお勧めします。学習経験に値しないほど長い時間はかかりません。
CIの利点は、チェックインによってビルドが壊れたときに早期に検出できることにあります。また、ビルドに対して一連の自動テストを実行したり、メトリックなどを提供するためのあらゆる種類のツールを実行したりすることもできます。
明らかに、これはコミッターのチームがいる場合に非常に価値があります。コミッターのすべてが重大な変更をチェックするために熱心に取り組んでいるわけではありません。ソロ開発者として、それはそれほど価値がありません。おそらく、単体テスト、さらには統合テストを実行します。ただし、開発者がセットからファイルをチェックインするのを忘れる場合が何度もあります。
CIビルドは、「リリース」ビルドと考えることもできます。環境は安定していて、マシンに追加した開発ギズモの影響を受けないようにする必要があります。常にビルドを再現できるはずです。これは、プロジェクトに新しい依存関係を追加し、それを考慮してリリースビルド環境をセットアップするのを忘れた場合に役立ちます。
真実は、継続的インテグレーションはチームで最も理にかなっているということです。単一の開発者もいくつかの利点を得ることができます.CIシステムのセットアップに費やす時間に対抗するのに十分かどうかを自分で判断する必要があります.
複数のコンパイラをサポートする必要がある場合は、1 つの IDE で開発するだけで、そのすべてを実行できる CI ビルド システムがあると便利です。私のコードは Vc6 から VS2008 まで x86 でビルドされ、x64 は VS2005 & 8 でビルドされるため、プロジェクト構成ごとにプロジェクトごとに 7 ビルドになります... CI システムを持つということは、1 つの IDE で開発し、CI システムにすべての私がサポートしているコンパイラはまだビルドされています。
同様に、複数のプロジェクトで使用されるライブラリを構築している場合、CI は、現在作業しているプロジェクトだけでなく、すべてのプロジェクトで動作することを確認します...
CIシステムを使用して、リリースビルド(および通常の自動「オンコミット」ビルド)を実行します。
セットアップをリリースするためにすべてのプロセスをステップスルーするリリースビルドを開始するボタンをクリックできることは次のとおりです。
2〜4週間ごとに動作するソフトウェアを提供することが期待されるアジャイル環境では、1人のチームであっても、これは間違いなく持つ価値があります。
CIは、何かをチェックインするのを忘れた場合に気付いているという意味で、ソロ開発者にメリットをもたらします(ビルドが壊れてしまうため)。ただし、他の開発者がいない場合、その統合価値は低下します。