Nos últimos três anos em que trabalhei como desenvolvedor, vi muitos exemplos em que as pessoas usam uma instrução switch para definir o caminho (tanto no back-end quanto no front-end) para um URL. Abaixo está um exemplo disso:
Exemplo de backend (C #):
public static string getHost(EnvironmentEnum environment){
var path = String.Empty;
switch (environment)
{
case EnvironmentEnum.dev:
path = "http://localhost:55793/";
break;
case EnvironmentEnum.uat:
path = "http://dev.yourpath.com/";
break;
case EnvironmentEnum.production:
path = "http://yourpath.com/";
break;
}
return path;
}
Exemplo de front-end (JavaScript):
(function () {
if (window.location.host.indexOf("localhost") !== -1) {
window.serviceUrl = "http://localhost:57939/";
}
else if (window.location.host.indexOf("qa") !== -1) {
window.serviceUrl = "http://dev.yourpath.com/";
}
else {
window.serviceUrl = "http://yourpath.com/";
}
})();
Foi discutido se é uma prática boa ou ruim, e acho que é uma prática ruim, porque devemos evitar esse tipo de código e definir uma configuração adequada. Mas, para ser sincero, eu realmente não sei a resposta correta e por que ela não é recomendada e qual é a maneira correta de implementar isso.
alguém pode explicar os prós e os contras da prática acima?
Dictionary
é uma maneira muito mais limpa de codificar isso em C #. Consulte ideone.com/45g5xO . Ou no JS, use um objeto antigo, consulte jsfiddle.net/1ouhovqq .