web-dev-qa-db-ja.com

「これがZipです」から適切なリリース戦略に移行するにはどうすればよいですか?

コードを記述し、依存関係を解決し、プログラムをmyコンピューターで実行することができます。でもここからどこへ行けばいいのかわからない。ソフトウェアを配布できるようにするにはどうすればよいですか?

学校の環境では、手作業でいくつかのランダムなテストを行い、明らかに壊れているものがないことを確認してから、すべてのソースファイルをZipに入れて送信するように教えてくれました。良い成績をとるために必要なのは、ほとんどのCSコースだけです。実際のユーザーにリリースする方法を教えてくれた人は誰もいませんでした。

私が持っている唯一の手がかりは、「自動ビルド」や「継続的インテグレーション」などのいくつかのフレーズですが、これらが何を意味するのかわかりません。どうすれば自分の作品を適切に配布できますか?どうすれば他の人が簡単にできるようにできますか? 「これがZipです」リリースを超えるにはどうすればよいですか?

5
Buttons840

現実の世界では、ボタンを押すだけですべてを自動化できるようになりたいと考えています。自分でインストールする場合は、時間を節約でき、ライブソフトウェアで間違いを犯しにくくしたいので、努力する価値があります。そうでない場合は、ほとんどの場合、難しいインストールプロセスに対処する人はほとんどいないため、努力する価値があります。

これは非常に多くの作業になる可能性がありますが、概念的には非常に簡単です。すべての依存関係の推移閉包が満たされていることを確認し、不足しているものを修正するか、適切なエラーメッセージが表示されるコードを作成する必要があります。事前にわからないインストールオプションがある場合は、UIまたはスクリプト、あるいはその両方を介した設定をサポートする必要があります。環境に存在する標準のインストールメカニズムをうまく操作する必要があります。

依存関係はファイルだけでなく、プログラムが依存するWindowsレジストリエントリが存在することの確認、プログラムのWebサーバーの構成などの場合もあります。

基本的には、考えられるさまざまなシナリオをすべて処理しながら、誰かが手作業で行うすべてのことをプログラムで実行する必要があります。

自動ビルドはかなり自明の用語です。多くの場合、ビルドは必要なすべての愛を得ることができず、ビルドプロセスは多くのステップを含むドキュメントに記述されます。一般に、完全に自動化されたスクリプトを駆動する何らかの形式の構成を用意することは、努力する価値があります。これは自動ビルドです。通常、ビルドの一部は自動テストを実行して、ビルドがプログラムを生成するだけでなく、少なくともプログラムのテストされた部分が実際に機能することを確認します。

自動ビルドなしでは継続的インテグレーションは実現できません。これが、自動ビルドを実行する価値がある大きな理由です。これは、ビルドが何らかのスキームを使用して自動的に実行されることを意味します(「最後に作業していたビルドが終了してから新しいコードがチェックインされたとき」など)。一般に、これの価値の大部分は、ビルドが自動テストを実行することです。したがって、コードの変更がプログラムの遠くのほこりっぽいコーナーを壊した場合、自動的かつかなり迅速に見つけます。ただし、すべてがまだコンパイルされていることを知っているだけでも、ある程度の価値があるかもしれません。

自分の作業を配布して他の人が簡単に利用できるようにするには、インストーラーを作成し、アプリストアやソースコードリポジトリに配置するなど、視聴者が期待するあらゆる規則に従う必要があります。さまざまな環境には、名前を付けてコードを見つけてインストールするツールがたくさんあります。これらのツールが機能するために必要なすべてのルールに従えば、コードはそれに参加できます。

残酷な詳細は環境によってかなり異なるため、私は信じられないほど一般的でした。したがって、具体的な答えは、あなたが何をしているかに大きく依存します。

7
psr

これは段階的に行う必要があります。誰かにzipfileを渡した後の次のステップは、それらのセットアップを処理するインストーラーを渡すことです。

まず、インストーラーを手動でビルドする方法を学ぶ必要があります。 InnoSetup 、インストーラーを構築するための無料プログラムをご覧ください。インストールしたいもののリスト(および必要に応じて他の設定)を含むスクリプトファイルを指定すると、Setup.exeが生成されます。最初にそれ(または別のインストーラー作成ツール)の使用方法を学びます。

自動ビルドとは、ソース管理からコードをチェックアウトすること(ソース管理の使用方法をもう学びましたか?)からビルド、インストーラーの作成、サーバーへのアップロードまで、スクリプトからプロセス全体を実行することを意味します。 手動で行う方法を最初に理解するまで、何も自動化しようとしないでください。何かを自動化することは、手動で行うよりも常に困難です。ただし、上記のすべての手順を理解したら、ビルドスクリプトの作成を開始できます。典型的なスクリプトは次のようになります(擬似コード):

SVN Checkout (project folder)
command line compiler ("project folder\tests\test harness.project")
if run ("project folder\tests\output\test harness.exe") <> 0 then
  Abort ("tests failed")
command line compiler ("project folder\Full Build.projectgroup")
Installer Compiler ("project folder\installerScript.is")
FTP upload ("ftp://myServer.com/downloads", "project folder\output\setup.exe", username, password)

もちろん、これは大幅に簡略化されていますが、これが一般的な考え方の概要です。

継続的インテグレーションはさらに一歩進んでいます。ソース管理サーバーにフックを配置して、誰かがコードをチェックインするたびに自動ビルドプロセスを開始します。これにより、誰かがコードを壊した場合に、多かれ少なかれ即座にフィードバックを得ることができます。ビルドします。これは、小規模なプロジェクトでは特に役立つものではありませんが、より広い範囲では役立つ可能性があります。

2
Mason Wheeler

これは、言語、フレームワーク、IDE、ソース管理、および一般的に使用されるテクノロジーによって異なります。そうは言っても、通常はインストーラーパッケージを作成できます。

0
P.Brian.Mackey