Quem já utilizou bibliotecas de javascript certamente verificou que é sempre disponibilizada uma versão comprimida e um versão normal. Isto acontece porque queremos poupar largura de banda, dado que as páginas têm cada vez mais javascript. Além disso, o javascript é carregado antes do render da página, como tal o download é “bloqueante” para o processamento da página. No entanto, para o código javascript que nós próprios desenvolvemos ou que as frameworks que usamos usam ou geram raramente minimizamos os ficheiros javascript. Isto apenas seria feito para cenários de produção, mas rapidamente se tornaria demasiado trabalhoso. Se queremos minimizar apenas para determinados cenários e de forma totalmente automática, tem lógica incluir este processo nos nossos processos de build. E é aqui que entra o plugin do YUICompressor para o Maven. Este plugin permite processar os ficheiros javascript, minimizando-os. Também corre o JSLint, para verificar a correcção do código. Este último é uma forma de análise estática de código que ajudo muito a reduzir a probabilidade de erros não detectados. Falo do YUICompressor como podia falar de outras ferramentas de compressão e obfuscação de javascript, como seja o JSMin, ShrinkSafe, Packer ou outro. Não sei é sobre a existência de plugins para todos, embora não deve ser muito complexo de os desenvolver. Desta forma conseguimos comprimir o nosso código para melhorar a performance e verificar estaticamente por erros no javascript (um erro javascript pode quebrar o build: bom!). Podemos
ainda usar o plugin para gerar documentação javascript (JsTools) ou mesmo para efectuar testes unitários em javascript (JsUnit). Poderíamos ainda melhor mais
a performance, gzipando os nossos ficheiros a nível do servidor. Para esta e outras optimizações, é muito útil o YSlow, também da Yahoo que é um plugin para o Firebug que verifica determinados parâmetros de performance canadian pharmacy na página.