2011-06-27 9 views
1

私は設定ファイルのプロセスに対する解決方法を選択し、それを正当化する必要があります。私は洞察力と批判に感謝します。ありがとう!名前付きコンフィグレーションファイル - HotまたはNot?

問題: 当社のウェブアプリケーションは、だから、アプリケーションへの新しいdevのローカル・インスタンスを展開する変数や条件

<cfif url = "*dev*" or "jargon123"> 
    this is a dev enviroment, do devy things 
</cfif> 

を含む単一のApplication.cfmファイルを持っています。火をつけて突き刺す。問題は、設定ファイルに生産値が含まれていることです。それは、生産データを打つことと生産電子メールを送信することから始まります。また、彼らが打つURLがhttp://App_name:PORTまたはhttp://localhostであるため、dev条件は決して設定されません。だから開発者にはもっと多くのプロダクションが起こっている。他の

何同僚たい:

  • Switchステートメント。 app.cfmは環境変数を "開発"に設定した後、一般的な変数を宣言します。その後、switch文に入り、環境固有の変数を宣言します。私の設定ファイルのいくつかは100〜250行であるので、私はこの方法に同意しません。それは私が周りにマックしたくない大規模なswitch文することができ

私の選択したソリューション:

  • App.cfmが削除され、バージョンコントロールから削除されました。現在、複数のApplicaiton.Enviroment.cfmファイル(Applicaiton.Prod.cfm、Application.Dev.cfm、Applicaiton.MyName.cfmなど)があります。このファイルには、すべての環境固有のデータが含まれています。私はProduction固有の設定を条件文からApp.Prod.cfmに移動しました。新しい環境への配備が1になりました。App.Dev.cfmをApp.Me.cfmとして複製してコミットします。 2.すべての変数を自分の個人データ(電子メール、ログインなど)に更新します。3. App.me.cfmをApp.cfmとして複製し、設定ファイルに使用します。環境のために右の設定ファイルを選択するに

    • 軍の配備エンジニア:私はここに、私は他のソリューションをやっていないよ、なぜに入りませんが

    は私のソリューションのための私の理由です。アプリはapp.cfmなしでは動作しません

  • ユーザエラーの可能性を制限します。シナリオは、ユーザーがデータを新しい環境モードにコピーし、誤って制作コンテンツをコピーすることになります。
  • よりクリーンで使いやすい - 設定値は完全にコンパートメント化されています。

私は、環境固有の設定ファイルで作業することに関する多くの記事を見つけましたが、なぜそれが優れているのかはわかりません。それがこのポストの背景にある動機です。

答えて

1

また、私はプロダクション設定を削除し、設定ファイルの開発版のみを提供します。理由:

  • 設定ファイルが
  • 多くの開発者がちょうどlazzy、アプリケーションを実行する場合は、コンフィグ
  • 気にしないでくださいされているセキュリティ関連データ、開発者が使用していない場合は、現在提供を含めることができますメカニズム(devのURL)、あなたは誰が彼らが環境変数を設定することができますか?
  • あなたは(開発)の異なるバージョンの異なる構成を切り替えできるようにする必要があります
1

以降(コンフィギュレーションから削除するには忘れて)生産上のアクティブなデバッグオプションをもたらす可能性がテスト中ライブ設定を使用して、ソフトウェアをいつでも使用できます。各設定に独自の設定ファイルがある場合は、すべて同じファイルを共有するよりもはるかに簡単です。

すべての設定が1つのファイルに含まれている場合は、大きなファイル全体を読み込み、無視する部分を決定する必要があります。これは単にファイル全体を読むよりも面倒です。

(複数のバージョンのソフトウェアを同じマシン上の異なる場所に同時にインストールすることができますが、そうでない場合は大きな問題がありますが、別の設定ファイルを使用することは有益です)。

これらは、別の設定ファイルのための強力な「プロ」です。マイナーな「con」を上回ります。設定ファイルが何らかの仕組みであるかどうかを特定する必要があります。どちらも指定されていない場合は、環境変数を使用するか、コマンドラインオプションを使用し、適切なデフォルトを使用することができます。コマンドラインは環境をオーバーライドする必要があります。

関連する問題