Melhorando a qualidade do seu código jQuery
jQuery é bacana. Escreva menos, faça mais.
Porém muitos dos desenvolvedores de hoje em dia, não levaram a sério a parte do “escreva menos”, e continuam escrevendo muito e de forma desordenada.
Tudo bem, então aqui vai algumas dicas para melhorar a qualidade dos códigos jQuery.
jsHint
jQuery é apenas uma lib javascript. Logo, todas as boas práticas que existem para javascript, também existem para jQuery. Começe passando o teu código pelo jsHint:
Dentre outras coisas, o jshint, vai verificar se vc usou um switch na hora errada, se declarou uma variavel que não está sendo usada..
Outras coisas, que nem o jshint conseguiria te dizer
Agora começa o meu post de verdade.
Prefira sempre usar jQuery no lugar de $
Eu pessoalmente, considero mais legível. Mas além disso, também estamos evitando de uma maneira muito simples aquele velho problema do conflito com outras libs que usam o apelido $.
Seria:
jQuery(document).ready(function() {});
no lugar de
$(document).ready(function() {});
Não procure um mesmo elemento várias vezes no DOM
Coisas como:
jQuery(this).parent('dl').find('dd').eq(0).addClass('active');
jQuery(this).parent('dl').find('dt').text('Ativo');
Poderiam ser simplificadas para:
var $this = jQuery(this),
$dl = $this.parent('dl');
$dl.find('dd').eq(0).addClass('active');
$dl.find('dt').text('Ativo');
Note que se formos usar o DD e esse DT outras vezes nesse escopo, então vale apena guardar uma variavel que aponte para eles também.
Isso também vai melhorar a performance do teu script.
Convencione os nomes das variaveis
É bacana olhar para uma variavel e entender logo de cara de onde ela veio, e qual o valor dela.
Eu estou adotando usar $ antes de começar uma variavel que aponte para um objeto jQuery. Assim como o $this. E deixo para as variaveis “normais”(arrays, inteiros e strings), uma notação sem o símbolo $.
Dessa forma, qndo bato o olho no meu código jQuery, sei que todas as variaveis com $ no nome, são objetos jQuery.
var $this = jQuery(this),
$dl = $this.parent('dl'),
i = 0,
str = '';
Faça bom uso dos arrays e objetos
Uma cadeia de if/elses ou switchs podem ser evitados se vc souber usar arrays e objetos javascript corretamente.
Como por exemplo essa lista de valores:
var values = [];
values[1] = { '1': '1,90', '6': '1,41', '12': '1,01' };
values[2] = { '1': '2,90', '6': '2,91', '12': '2,01' };
values[3] = { '1': '3,90', '6': '3,41', '12': '3,01' };
values[4] = { '1': '4,90', '6': '4,40', '12': '4,01' };
Tenho 4 “planos” cada um com 3 opções de valores: planos mensais, semestrais e anuais. Se eu fosse fazer isso com if ou switch, o código bem ruim.
Separe comportamentos
Essa é uma coisa básica de programação. Divida um procedimento em várias rotinas menores, e escreva pequenas funções que resolvam uma parte pequena do problema. Juntando todas, vc terá resolvido tudo.
Leia este post:
E para terminar:
Faça bem o básico
É básico indentar corretamente, comentar qndo necessário, e documentar.
Estas são algumas pequenas boas práticas que vão fazer uma boa diferença nos teus scripts.