私はこの問題に関するSOのここにある多くの質問を読みましたが、私たちの状況に合った良いアドバイスは本当にありません。私はこの作業の流れを継承し、それをより良くしようとしています。SVNウェブ開発ワークフロー
私たちのセットアップ
- PHPのコードベース(特にKohanaの)
- コードベースパワー〜60件のサイト、独自のテンプレートと各
- (すなわち60 QA [品質保証]はあまりにもドメイン)各サイトは異なる資産およびリソース(すなわち、各ドメインについて8つのAレコード)のAレコードを有する。
- 3人の開発者
- 3デザイナー の
- 開発者は
- すべての回で
- デザイナーが
- は、QAのために使用される物理的な開発サーバーを共有していない、コミット後の更新は、トランクの現在のHEADで、このサーバーを保持しますローカルの開発のための生産を運用サーバーのVMwareイメージを持っていますサーバー、ミックスとどのような機能に応じて、異なるリビジョンの試合に更新
私たちの仕事が流れて生きている
- 開発者は、特定の機能が完了するまでローカルで作業し、内部QAのために機能全体をトランクにコミットします。
- デザイナーは、CSS /画像/テンプレートのみを少し変更します。彼らは、トランクに直接コミットし、独自の変更をQAし、一般にQA直後にプロダクションサーバー上の対応するファイルを更新します。
- フィーチャーをライブで使用できるようになると、本番サーバーはフィーチャーに関連する各ファイルの適切なリビジョン番号に手動で更新されます。時にはこれはシンプルですが、それ以外の時はかなり毛がかっています(上流の依存関係を調べるために多くの
svn log
が呼び出されます)。
私たちの問題QAの異なる量を必要とするさまざまな機能に取り組んで三つの異なる開発者と
- 、我々は自分自身が定期的に上流の依存関係の問題に実行して見つけます。
- どの時点でも、プロダクションサーバー上の機能とプロダクト以外の機能をプログラマチックに決定する方法はありません。
svn status -u
は、どのファイルが最新ではないかを表示しますが、一般的には機能の明確な画像ではありません。私は、私たちの問題の- 一部は、生産ブランチを持つことによって軽減することができ知って何
。アップストリームの依存関係の問題を解決することはできませんが、少なくとも、どの機能がプロダクションに追加されたかを監視することは可能です。
- フィーチャーブランチはオプションであり、私たちはそれを過去に試みました。私たちのソフトウェアは支店あたり60個のQAドメインを必要とするため、そこでプロセス管理の問題にぶつかります。たとえば、各機能ブランチごとに480個のドメイン(ドメインあたり60ドメイン×8レコード)のAレコードを作成します。
- 開発者ブランチもオプションですが、私たちの機能QA時間は異なります。私は間違いなく、他のことをコミットする前に以前の機能がQAから外れるとは言えません。
上流の依存関係の例
- 開発者Aは、管理者とフロントエンドの両方に新しいスライドショー機能が追加されます。
- 開発者Bは、管理者とフロントエンドの両方に新しいフィードバック機能を追加しました。
- これらの機能は両方とも、ロケーションモデル/コントローラロジックと絡み合っているため、新しい機能の両方を考慮して、関連するファイルに変更が加えられます。
- スライドショー機能はQAに入りますが、一部の開発監督またはスコープクリープによって保持されます。
- フィードバック機能はQAに入り、問題なく通過します。
- タイムラインに沿ってフィードバック機能をプロダクションにプッシュしたいが、どちらの機能もロケーションモデル/コントローラに変更が必要なため、フィードバック機能を直接行うことはできません。つまり、
svn update file1 file2 file3
を実行するだけではありません。 - 注:これは簡単な例で、逆引きマージを行うことで回避できます。しばしば、私たちの問題はこれよりも複雑です。
マルチサイト構造情報
- 我々は等を事前に定義された構造的なテーマの数、ビュー、画像、CSSファイル、JSファイルから成るが、持っている
- 各サイトテーマが割り当てられます。
- ブランド化と拡張性の理由から、各サイトはカスタムビューでテーマビューを上書きしたり、サイト固有のCSS/JSファイルを追加したりすることができます。
似たような問題で苦労している他の人々がいると確信しています。私はインターネット上の賢い人々からいくつかの洞察を得ることを望んでいます。私が言ったことが泥のようにはっきりしているのであれば、自由に質問してください!
ちょうど疑問を持って、何のためにQA略ですか? –
主な問題のようなサウンドは、ソフトウェアがモジュール化されているはずですが、アプリケーションレイヤーではなくファイルレイヤーで実現しようとしています。このカスタマイズ性は、アプリケーションの明示的な部分であり、設定ファイルを介して制御可能であり、一度にすべてのサーバーにプッシュできるコードベースの単一バージョンのみを維持する必要があります。それは物事をかなり単純化するはずです。 – deceze
@Brad lmao、私はQAの頭にこの記事を転送している、彼女は開発者の誰もQAが何かを知っているとは思わない。笑。 –