DRY - Don't repeat yourself
Boa tarde galera, desculpa ai pelo o tempo sem postar algo, final da minha especialização ai já viram né?, então, um principio básico da programação e que mesmo assim eu não conhecia e que independente do paradigma que utilize, é a filosofia do DRY(Don't repeat yourself), isso mesmo, não deixar alguma parte do seu código escrita igual em dois lugares ao mesmo tempo no seu código, porque quando começamos é bem mais fácil fazer um Ctrl+C e Ctrl+V, mas essa pequena dica assim apesar de já existir no princípio também do SOLID, é de grande ajuda, para exemplificar isso irei dar o meu próprio exemplo e que vocês irão entender a ideia.
Eu utilizava o biblioteca jquery e com isso vazia muito a mesma requisição, mesmo o método sendo muito pequeno como este:
e o segundo praticamente igual só que mudava somente a url.
Isso são só exemplos, mas tinha umas 10 ou 15 em lugares diferentes, ai tive que mudar o Header das requisições mudando o content-type, o que aconteceu?, teria que mudar isso em todas as requisições adicionando ele, então resolvi fazer uma camada acima que é o que o principio do DRY propõe e criei um método genérico para as requisições.
Agora simplificou para o ajaxRequest e quando precisar o contentType, muda em lugar só e pronto, podendo mudar posteriormente se precisar também, passar ele como parâmetro.
Por hoje é isso ai pessoal, espero ter ajudado ;)
Eu utilizava o biblioteca jquery e com isso vazia muito a mesma requisição, mesmo o método sendo muito pequeno como este:
var urlPadrao = api.seusite.com/
$.ajax({
url: urlPadra + 'getParametros',
success: function(retorno){
console.log(retorno)
},
error: function(retorno){
ErroPadrao();
}
}
e o segundo praticamente igual só que mudava somente a url.
$.ajax({
url: urlPadra + 'getParametros2',
success: function(retorno){
console.log(retorno)
},
error: function(retorno){
ErroPadrao();
}
}
Isso são só exemplos, mas tinha umas 10 ou 15 em lugares diferentes, ai tive que mudar o Header das requisições mudando o content-type, o que aconteceu?, teria que mudar isso em todas as requisições adicionando ele, então resolvi fazer uma camada acima que é o que o principio do DRY propõe e criei um método genérico para as requisições.
function ajaxRequest(url, type, data, callback) {
$.ajax({
url: url,
type: type,
data: data,
contentType: OQueVcQuiser,
beforeSend: function() {
$("#loading").fadeIn();
},
complete: function() {
$("#loading").fadeOut();
},
success: function(result) {
if (callback.hasOwnProperty("success")) {
callback["success"](result);
}
},
error: function(request, status, error) {
if (callback.hasOwnProperty("error")) {
callback["error"](request);
}
}
});
}
Agora simplificou para o ajaxRequest e quando precisar o contentType, muda em lugar só e pronto, podendo mudar posteriormente se precisar também, passar ele como parâmetro.
Por hoje é isso ai pessoal, espero ter ajudado ;)
Comentários
Postar um comentário