私のシステムは現在、さまざまな環境で実行されています。
システムに環境列挙型を取得しました。このようなものです
public enum Environment {
[UsePayPal(false)]
[ServerInstallDir("InstallPathOnServer")]
[IntegrationSystemURI("localhost/someFakeURI")]
[UpdateSomeInfo(true)]
[QueuePrefix("DEV")]
[UseCache(false)]
[AnotherSystemURI("localhost/anotherFakeURI")]
Development = 0,
[UsePayPal(false)]
[ServerInstallDir("InstallPathOnBUILDServer")]
[IntegrationSystemURI("build-server/someFakeURI")]
[UpdateSomeInfo(true)]
[QueuePrefix("QA")]
[UseCache(false)]
[AnotherSystemURI("build-server/anotherFakeURI")]
QA = 1,
[UsePayPal(true)]
[ServerInstallDir("InstallPathOnServer")]
[IntegrationSystemURI("someservice.com/URI")]
[UpdateSomeInfo(true)]
[QueuePrefix("PRD")]
[UseCache(true)]
[AnotherSystemURI("anotherservice/URI")]
Production = 2,
}
のようなコードが好きではないので、私はこのように働いています
if(CURRENT_ENVIRONMENT == Environment.QA || CURRENT_ENVIRONMENT == Environment.DEV)
EnableCache()
また
if(CURRENT_ENVIRONMENT == Environment.QA || CURRENT_ENVIRONMENT == Environment.DEV){
DoSomeStuff();
}
それは私のロジックが一点ではなく、システム全体に散らばっていると思うからです。
いつか別のテスト環境を追加する場合、開発、QA、または本番環境でのように機能するかどうかを確認するためにコード全体を調べる必要はありません。
わかりましたが、すべての構成で、Enum の属性が非常に複雑になる可能性があります。たとえば、3 年後には、各列挙値に 15 ~ 20 の属性が含まれるようになり、奇妙に見えます。
皆さんはどう思いますか?通常、この状況をどのように処理しますか? 本当に属性が多すぎますか、それとも大丈夫ですか?