ビルド (Java) をできるだけ「CM に依存しない」ようにするにはどうすればよいですか?(CM=構成マネージャー)

StackOverflow https://stackoverflow.com/questions/486668

質問

私は、自分が担当するプロジェクト ビルドの 1 つを、できる限り私 (CM) から「独立」させたいと考えています。これは、スクリプトやツールによる自動化を意味するだけではありません。ただし、これには間違いなく自動化が含まれます。これは多くの混乱が生じるプロジェクトであるため、「完全な」自動化は現実的ではありません。

私が目指しているのは次のとおりです。

誰でも (自動化と少しのドキュメント/ガイドラインを使用して) ビルドを実行できる必要があります。たとえば、初心者の CM や、CM の経験のない開発者でもです。

私の最初の考えは、次の方法でこれを達成することです。

  1. ビルド リクエスト プロセスを確実に完了する (ビルドに必要なすべての詳細をキャプチャするビルド フォームを使用して、誰かの頭の中にあるという理由だけで何かが漏れることがないようにする)

  2. ビルド ステップを簡略化して、一連のコマンドとして簡単なドキュメントに取り込めるようにします。訓練されたサルならビルドを実行できるはずです (そうですね...侮辱を投げつけているわけではありませんが、それはわかります:-))

  3. ツールの機能を最大限に活用すると (ANT、SVN を参照)、潜在的な問題を事前に検出し、障害や問題が発生した場合に適切なアラートを提供するのに役立ちます。

  4. 私が数日間の休みを言うたびにプロジェクトマネージャーがパニック発作を起こすことなく、病気になったり、時折休暇を取ったりする自由があります。:-)

この方向に役立ついくつかの考えやアイデアをいただければ幸いです。皆さんありがとう!

役に立ちましたか?

解決

アーバンコード, 、これを「Bob the Builder」アンチパターンと呼びます。良いニュースは、ボブ (あなた) がループから抜け出したいということです。プロセスの一部が停止しないとビルド担当者が休暇に行けなかったり、病気になったりする場合、実際には容認できない問題が発生します。もし私が賭博師なら、プロセスを「訓練されたサル」のレベルまで単純化するプロセスを開始すると、頭が良くて実際に追加できる可能性があるのに、なぜこのような暗記的なことに時間を費やしているのか疑問に思うでしょう。どこかに価値がある。

私たちの本の中で「ボブ・ザ・ビルダー」症候群の症状は次のとおりです。

  1. ビルドまたは特定の種類のビルドに対するすべてのリクエストは、個人または小規模のチームを経由します。
  2. これらのビルド リクエストに対する応答は、開発者にとってイライラするほど遅いです。構築チームが昼食中であれば、何時間も待ちます。
  3. ボブ、またはボブのチームは、時間のかなりの割合を暗記的なタスクに費やします。
  4. ボブたちがその日は家に帰ったり、ランチに行ったり、休暇に出たり、病気になったりすると、チームが物事を成し遂げる能力が妨げられます。

私たちは私たちに言います アントヒルプロ 顧客は、この種のものすべてを自動化に組み込むことができます。異なるマシン、異なるビルド番号などを使用する 2 つのビルド タイプがあっても問題はありません。

最初のステップは、プロセスを簡素化することです。「訓練された猿」のプロセスに取り掛かることができるように、できる限り複雑さを排除します。それに近いものを手に入れれば、サルをコンピュータに置き換えることは非常に簡単です。

もっと具体的なアドバイスをしたいのですが、混乱以外にその複雑さがどこから来るのかをあなたは教えてくれなかったと思います。このような状況では、場合によっては、混沌とした悪い慣行を攻撃する必要があります。「ソースコードとこれら2つのファイルとこれら3つのファイルのこのベースライン」というビルドを行っていますか?それはトリッキーであり、おそらくループにCMERが必要です。それを禁止する方法を見つけてください。これを「ブランチを作成し、そのブランチに特定の変更を加える」に置き換えると、そのモンキーでもビルドの構築が可能になります。

こうした変更はリスクが高いと主張できるはずです。たとえ調子が良くても調子が悪い日もあるでしょうし、ヒューマンエラーを可能な限り排除したいと考えています。同時に、開発者へのより迅速な応答やセルフサービス (おそらく開発と管理が望んでいる) を目指している場合は、いくつかのことを自動化/猿化可能にする必要があります。

より良いフォームを持つことは当面は良いことかもしれませんし、ツールをうまく使うことは常に良いことですが、私は「訓練された猿」の問題にかなり積極的に取り組みたいと思います。訓練されたサル (またはコンピューター) には実行できないものはすべて、プロセスから離れる候補となるはずです。「訓練された猿」のステータスまで下がったら、ビルドの自動化を適切な場所に配置して、あなたも開発者も猿になる必要はありません。これにより、あなたの役割が「Bob the Builder」から「Bob the Build System Owner」に変わります。

他のヒント

  あなたが:-)アイデアを得る - 訓練を受けたサルは、ビルドして実行することができます(うまく..侮辱を投げつけるないけど -

彼らは一連のコマンドとして、簡単なドキュメントで捕獲することができるようにビルド手順を簡素化)

それは、スクリプトを介して1つのステップでビルドを実行することは可能であるべきよりも可能である場合(mayyそれはアリは、bash、Mavenのか、何でもスクリプトです)。それはとても基本的に誰でもビルドを行うことができ、目標とすべきます。

ビルド プロセスの開発の目標は次のとおりです。

  1. 任意の場所にある空のディレクトリから開始します (できれば表形式)
  2. 基本ツールのうち非常に小さなツールがインストールされていることを確認します (私の場合、通常は Java + Maven + SVN コマンドライン クライアントです)。
  3. をチェックしてください シングル SVN/CVS/... のディレクトリ
  4. 単一のコマンドを開始します (つまり、25 個のパラメーターを持たないコマンドを意味します)
  5. 待ってください(かなり時間がかかるかもしれません)
  6. 完全なビルドを用意する

それができない場合は、ビルド プロセスがまだ十分ではありません。

それを達成できないと思われる場合は、チューリング完全マシンでは実行できないリストに加えて実行する必要があるアクションを詳細に説明してください。

通常、そのようなポイントはありません。足りないのはツール/ノウハウ/モチベーションだけです。私個人としては、それができない理由を説明するよりも、これを実行するほうが簡単であることがわかりました。

幸運を。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top