Pergunta

Eu estava navegando na web, como de costume e eu queria dar uma olhada Bing 's fonte código porque eu estava curioso e queria saber o que eles estavam usando para fazer a sua imagem fade in, fiquei surpreendido com o que só poderia ser qualificado pela seguinte linha:.

parede Santo de texto!

E isso me fez pensar se há alguma vantagem para ofuscar seu (X) HTML, CSS e JavaScript como este? Para reduzir o tamanho do arquivo, talvez?


Edit: Depois de olhar ao redor, percebi que era uma prática bastante comum. Nunca olhei para ele de um ponto minification de vista antes!

Foi útil?

Solução

Eles não estão ofuscando. Eles são minifying , a fim de reduzir a largura de banda utilizada por milhões de solicitações que vêem a cada dia.

O objetivo do JavaScript e CSS minification é sempre preservar a qualidades operacionais do código enquanto reduz a sua byte global pegada (tanto em termos de matérias e depois gzipping, como a maioria JavaScript e CSS servido a partir dos servidores de produção da web é compactado como parte do protocolo HTTP).

Você pode também estar interessado em ler o Yahoo! Blog User Interface post intitulado "Minification v. Obfuscation" .

Outras dicas

2 principais razões para ofuscar seu código:

  • Reduzir o tamanho total do arquivo (como você mencionou) Se você substituir uma função chamada 'CallThisFunctionAndReturnAnArray' com 'C' - você salvou um monte de caracteres em seu arquivo

  • propriedade intelectual Protect - enquanto se isso é realista é discutível definido, este é justificativa comum para fazê-lo. Você pode contornar isso com boas ferramentas, ou se você é apenas muito inteligente.

Tamanho do arquivo seria certo ser um benefício, tanto que por exemplo em si Gmail não só isso, mas também fechar o seu conteúdo.

Não há absolutamente uma vantagem para isso. Há algo importante notar, no entanto. Não há nenhuma razão para realmente um código como este. Em vez disso, depois que você terminar de fazer algo (e escrever em boa forma legível), use um minifier para remover espaço em branco desnecessários e tal. Para arquivos maiores este pode diminuir consideravelmente o tempo de carregamento.

Vou responder que "ofuscação" não é o objetivo, nestes casos, mas largura de banda . Se você está servindo conteúdo em cache a uma taxa de que a redução do tamanho da página inicial seria benéfico, então faz faz sentido fazê-lo.

Como para ofuscação abster-se erguer os olhos - Não. Não faça isso

Apenas para reduzir o tamanho, e apenas em grandes módulos. Um ganho maior muito pode ser conseguido usando gzip.

Se você usar qualquer código de terceiros, você pode ser obrigado a deixar os seus comentários copyright / licença intacto quando você apoucar. Muitas vezes as pessoas esquecem de fazer isso. Você provavelmente vai querer deixar seus próprios comentários de copyright intacta também.

Sim, redução de tamanho de arquivo.

Sim. Reduzir o tamanho do arquivo não só diminui o tempo de download, mas também o tempo de análise, o que é muito útil em alguns navegadores (especialmente o IE6 gerou-diabo).

Isso provavelmente quer remarcação minification.

Gostaria de chamar uma diferença entre otimização para reduzir o tamanho do arquivo e ofuscação com a finalidade prevista de impedir (ou, pelo menos, tornando difícil) engenharia reversa. Além disso, o Google por exemplo, tem um "compilador" que se estende JavaScript para incluir algum tipo de sistema avançado e semelhantes; e este código estendido é, então, "compilado" em JavaScript regular. Obviamente, faz sentido para criar este código gerado de forma otimizada -. Não há necessidade de torná-lo sustentável

Eu apostaria a principal razão que eles fazem isso é reduzir o tamanho do arquivo. arquivos menores faz com que a página carregar mais rápido.

ofuscando não é tão importante. Além disso, ele pode tornar as coisas uma dor de depuração, dependendo de como você fazê-lo.

velocidade é tudo na pesquisa.

E isso me fez pensar se há alguma vantagem para ofuscar seu (X) HTML, CSS e Javascript como este? Para reduzir o tamanho do arquivo, talvez?

Obfuscation é ligeiramente diferente de uma outra técnica comum com arquivos Javascript, minification. Minification é comum com Javascript, uma vez que reduz o tamanho do arquivo, que, com arquivos grandes pode reduzir significativamente seu tamanho (desde grandes arquivos javascript muitas vezes contêm muitos comentários, quebras de linha, espaços desnecessários e assim por diante, que podem ser removidos para reduzir o tamanho da o script).

Obfuscation, por outro lado, também é mais sobre ocultação seu código de outros, mudando nomes de variáveis ??para os outros que são obscuras, ou que remove o significado dos arquivos Javascript. No entanto, ao fazer isso, muitas vezes, reduz o tamanho do arquivo, já que nomes de variáveis ??são muitas vezes muito mais curto do que os do arquivo original. Esta é uma técnica comum para tornar mais difícil para os outros a simplesmente copiar o código e é mais sobre como proteger o código que é obviamente muito mais facilmente acessíveis em comparação com outras plataformas.

Fazer ambos minification e ofuscação são vantajosos para seus scripts, uma vez que reduzem o tamanho de seus arquivos Javascript, o que reduz o tempo necessário para carregar suas páginas, e também torna mais difícil para os outros a engenheiro-lo reverter (se este é um problema para o seu código).

No entanto: Note que é não infalível - existem algumas ferramentas que existem que tornam mais fácil para reverter código engenheiro ofuscado, por isso não torná-lo 100% a salvo de outros que realmente querem tomar uma olhada em como os scripts de trabalho.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top