2010-12-07 6 views
3

私はさまざまな顧客層向けに作成されたアプリケーションを開発中です。顧客によっては、ソフトウェアのユーザーインターフェイスの要素が異なる場合があります。たとえば、ある顧客はメニュー項目Xを必要とし、別の顧客はメニュー項目Yを取得することができます。設定可能なソフトウェアの分岐戦略

現在、ユーザーインターフェイスのすべての設定はXML(ほとんどの場合は春)で行われます。さまざまなメニューオプションの例では、1つのXMLファイルに、UIに表示するメニューオプションのリストが含まれている場合があります。

私は、すべてが同じコアベースラインを使用できるようにソフトウェアの分岐を最適に管理する方法を理解しようとしており、すべてがバグ修正や更新などを受け取ります。 branchesはXML設定ファイルです。

これを管理するための良い方法やテクニックはありますか?私は、各顧客が異なる支店を必要としていることを完全には確信していません - それは私の最初の考えだったので、私は他の提案に開放しています。しかし、これを最もうまく設定する方法についての助けをいただければ幸いです。

私たちは、このプロジェクト(SVNを使用)に分散バージョン管理システムを使用しているわけではありません。あなたはそれを管理することができた場合は

おかげで、

ジェフ

答えて

3

は、私は強く、顧客ごとに1つの支店に対して助言します。マージオーバーヘッドに、リリース後のパッチ適用などのその他の理由で発生する可能性がある通常のブランチ数を乗じたものを考えてみましょう。

代わりに、再コンパイルせずに機能をオンまたはオフにする設定方法を採用することができれば、より簡単に保守する方法が見つかると思います。

+0

@Ed、設定ファイルを管理する場所についてのあなたの考えは? @mouvicielによって提案されているように、単一のプロジェクト内のすべてのクライアントファイル?それとも別の方法ですか? –

3

トランクでは、クライアントの名前を付けていくつかの設定ファイルを維持します。配信を準備するときは、関連する設定ファイルのみをコピーし、ソフトウェアによって期待通りに名前が変更されます。

+0

あなたは、複数の設定ファイルを持つのがおそらく最も簡単だろうと思います。ただし、1つのプロジェクトにさまざまなクライアント構成ファイルをすべて入れるのは間違っています。しかし、それはまだ最も簡単な方法かもしれません。 –

+0

私の場合、これらのクライアント構成は、同じファイルのさまざまなバージョンではなく、異なるファイルです。これらのファイルのそれぞれは、各クライアントのニーズの進化に応じていくつかのバージョンを持つことができます。 – mouviciel

+0

ありがとう、あなたの答えをありがとう。 –

2

本当に顧客間で違うのはXML構成ファイルだけだとすれば、顧客ごとに完全なコードブランチを作成することはできません。 DRYのアプリケーションです.2つの場所でコードを繰り返し実行すると、同期が外れてしまいます。

この場合、すべての構成ファイルを別々のブランチに保管するか、基本ファイルを使用して、顧客ごとに構成の上書きを行うだけです。次に、特定の顧客のためにすべてをまとめることができるビルドプロセスを作成するだけです。

すべての主観私は知っていますが、それが問題に近づく方法です。

+0

私は顧客ごとにオーバーライドのある基本構成に傾いています。私はそれらを別の支店に保管することができると思いますが、実際に支店が設計されているとは思いません。しかし、私はクライアントの特定の設定ファイルをメインブランチから分離するという考えが好きです。私はそれを行うためのきれいな方法を見つけようとしています。おそらく別々のフォルダを持っているし、ビルドスクリプトを使用して必要なものを選ぶかもしれません。 –

関連する問題