Sou de Java e sou novo em JavaScript. Eu notei muitos métodos JavaScript usando nomes de parâmetro de caractere único, como no exemplo a seguir.
doSomething(a,b,c)
Não gosto, mas um colega desenvolvedor de JavaScript me convenceu de que isso é feito para reduzir o tamanho do arquivo, observando que os arquivos JavaScript precisam ser transferidos para o navegador.
Então me vi conversando com outro desenvolvedor. Ele me mostrou como o Firefox truncará nomes de variáveis para carregar a página mais rapidamente. Essa é uma prática padrão para navegadores da web?
Quais são as conversões de nomes de práticas recomendadas que devem ser seguidas ao programar em JavaScript? O comprimento do identificador importa e, em caso afirmativo, até que ponto?
eval
, não é seguro (sim,eval
é horrível, mas faz parte do padrão e você não descarta a compilância padrão para uma otimização) e não ajuda nem um pouco na redução do tráfego - você ainda envie o arquivo completo.Respostas:
Você verá que os próprios desenvolvedores não estão usando nomes curtos de variáveis. Enquanto desenvolvem, eles estão usando nomes de variáveis significativos e detalhados.
Em seguida , no processo de compilação / liberação, o código que eles escreveram é executado em um minificador / ofuscador com a intenção de minimizar o tamanho do arquivo, como uma prática recomendada para acelerar um site. Este é um opcional etapa se você se importa que muito sobre o desempenho. A maioria dos sites pequenos não faz isso.
Você , como desenvolvedor, não deve se preocupar com o processo de minificação / ofuscação; escreva seu código para que seja legível, significativo, bem documentado e bem estruturado. Então, se você se preocupa tanto com o desempenho (opcional, não se esqueça!), Introduza um minificador / ofuscador no processo de liberação para minimizar o código (remover espaços em branco, novas linhas, comentários etc.) e ofuscá-lo (por exemplo, reduzir variáveis nomes). Um bom artigo que explica ofuscação vs minificação pode ser encontrado aqui .
Além disso, o Desktop FireFox não truncará o período de nomes de variáveis . O truncamento de nomes de variáveis existe para acelerar o download da página. Quando o FireFox obtém o arquivo, ele já foi baixado e, portanto, não há necessidade de fazê-lo. Seu amigo pode executar um plugin que está fazendo isso; nesse caso, diga a ele para desinstalá-lo, porque é inútil.
Para conclusão, alguns navegadores (móveis) têm a opção de usar servidores intermediários, que interceptam as respostas dos recursos solicitados e os compactam para você (o que pode incluir a redução dos arquivos JavaScript). Observe que a compactação é feita no servidor (ou seja, antes de você fazer o download da página), daí o benefício potencial de fazer o download de um arquivo menor, e não no navegador, depois de já ter baixado o arquivo (conforme sugerido na pergunta). Esses navegadores móveis incluem o Opera Mini e versões mais recentes do Google Chrome (pelo menos no iOS; não tenho certeza sobre o Android). Para mais informações, clique aqui .
fonte
Não, nem todos os navegadores encurtarão automaticamente o JavaScript para ajudar no desempenho.
No entanto, no caso do JavaScript, você não deve sacrificar a legibilidade / manutenção do código para obter ganhos de velocidade ou segurança de processamento, pois existem ferramentas chamadas ofuscadores e outras ferramentas chamadas shinkers (ou compressores) que foram projetadas para essa finalidade.
Lembre-se, não pré-otimize. Se sua página estiver carregando com rapidez suficiente e você não tiver nenhum conteúdo excessivamente sensível no JavaScript, não se preocupe. Nomeie suas variáveis com nomes significativos. A legibilidade do código é altamente importante para a manutenção e raramente, se é que alguma vez, deve ser sacrificada.
Se você quiser uma referência a algumas boas convenções de codificação JavaScript, recomendo usá- las .
fonte
Não se preocupe com o tamanho do arquivo prematuramente. Embora seja sempre uma preocupação, a legibilidade e a manutenção são mais importantes.
Com isso dito, você provavelmente deve estar executando versões minificadas (por exemplo, via YUI Compressor ) de seus scripts.
Se você estiver interessado nas melhores práticas para desenvolvimento web em geral, sugiro ler O que todo programador deve saber sobre desenvolvimento web?
fonte
Eu trabalhei em JavaScript por muito tempo.
Tínhamos um padrão de nomenclatura que você tinha que usar notação húngara para todas as variáveis.
Pareceu funcionar bem. Eu sei que existem casos contra o uso disso, mas funcionou bem para nós. Especialmente quando você tem arquivos JavaScript enormes, onde precisa encontrar coisas.
Eu recomendaria não otimizar prematuramente. É muito provável que você acabe com um código confuso que não é realmente muito mais rápido.
fonte
goto
que as pessoas repetem o mantra sem pensar 'não use goto ... não use goto ...' . A realidade é que é apenas uma ferramenta no seu kit de ferramentas. Como qualquer ferramenta, ele tem situações em que é útil e situações em que não é tão útil (ou até prejudicial). É como se alguém tivesse tido uma experiência ruim tentando serrar um pedaço de madeira com um martelo e depois proclamou 'nunca use martelos, serra muito melhor!' . Generalizações são sempre erradoO comprimento do identificador não importa. Como dito por outros, na produção, o Minification pode ser usado para reduzir o tempo de download do script. De fato, uma convenção de codificação / nomeação aceitável deve ser seguida, especialmente porque o JavaScript é uma linguagem peculiar e, por tanto tempo, o JavaScript foi negligenciado como apenas uma coisa para fazer o trabalho. Se você procura um local para convenção de nomenclatura, o Guia de estilos do JavaScript do Google é um bom local. Sugere,
fonte
Enfurecido pela filosofia de "desenvolvedor de código limpo" (e agora você sabe das postagens acima que, devido à redução do tamanho dos nomes de suas variáveis, terá impacto nulo no desempenho), só posso aconselhar:
Escreva seu código de forma que qualquer comentário seja supérfluo. Isso significa que, em vez de escrever
o que pode significar realmente qualquer coisa (especialmente em uma linguagem mal digitada, como js;), você faz o código se expressar
Em um bom IDE, você normalmente nunca digitaria qualquer nome de variável por muito tempo duas vezes - segundos depois de digitar algumas letras e apenas pressionar enter no preenchimento automático. Se você insistir em digitar todos os caracteres, um bom IDE irá notá-lo de qualquer maneira. Este é apenas um exemplo muito superficial, portanto, sugiro fortemente (não como uma forma de crítica, mas como uma recomendação honesta) que você
Obtenha os livros "Clean Code", de Robert C.Martin, ou "Pragmatic Programmer", de Hunt / Thomas, e nunca mais se faça esse tipo de pergunta - você estará ocupado demais trabalhando em um servidor de integração contínuo para automatizar o teste chato. -, e construa partes do processo de desenvolvimento (incluindo minificação) e concentre-se na parte divertida, escrevendo um código claramente compreensível que faça ótimas coisas!
PS Se você precisar se familiarizar com o desenvolvimento de código javascript de última geração, dê uma olhada no livro de John "Mr. jQuery" Resig sobre "Pro Javascript Techniques" logo após ou junto com o acima.
fonte