O documento discute as virtudes e problemas da linguagem JavaScript, incluindo escopo, closures, prototypes, strict mode e desempenho. Também aborda padrões de organização do código JavaScript em projetos e desafios para melhorar a qualidade do código.
2. js é bom?
1/8/2013 Richard Santos - Front-end Tech Lead
js é legal:
• Fracamente tipada (nem sempre isso é bom);
• Funções anônimas;
• Funções invocadas automaticamente;
• Closures;
• Não tem classes;
• Tudo é objeto, métodos são funções, construtores de objetos são funções;
3. js é ruim?
1/8/2013 Richard Santos - Front-end Tech Lead
tem seus problemas:
• Wat;
• Dart;
5. closure
1/8/2013 Richard Santos - Front-end Tech Lead
Definição rápida: função que referencia variáveis livres.
Uma closure não é afetada por objetos exteriores.
6. prototype
1/8/2013 Richard Santos - Front-end Tech Lead
Todo objeto é criado a partir do seu protótipo.
Não mude o protótipo do que for nativo!
7. strict mode
1/8/2013 Richard Santos - Front-end Tech Lead
O interpretador do JS roda em um modo mais rigoroso.
Pode ser inserido no escopo global ou local.
8. don’t touch in the DOM
1/8/2013 Richard Santos - Front-end Tech Lead
Existe um pedágio ao buscar elementos no DOM
Quanto mais você atravessar essa ponte, mais custo terá.
9. performance
1/8/2013 Richard Santos - Front-end Tech Lead
• Evite variáveis globais;
• Cuidado com o acesso aos dados; (objeto.usuario.nome.primeiroNome);
• Iterações;
• Evite funções baseadas em iterações; ($.each)
10. patterns / antipatterns
1/8/2013 Richard Santos - Front-end Tech Lead
• Criação de objetos;
• Encadeamento;
• Namespace;
• Valide seu código (JS Lint, JS Hint)
13. tray
1/8/2013 Richard Santos - Front-end Tech Lead
• muitas pastas para armazenar js;
• loja/view/scripts;
• mvc/Plugin/PersonalizacaoTema/webroot/js;
• loja/webroot/js;
• adm/webroot/js;
• bibliotecas/frameworks/plugins que não são mais utilizados;
• alguns meses atrás tínhamos 4 versões da jQuery sendo importadas;
• duplicação de plugins (carrossel hoje está duplicado em pastas diferentes);
• falta de atualização dos plugins existentes;
• Cloud Zoom;
• peça ajuda;
14. desafio
1/8/2013 Richard Santos - Front-end Tech Lead
• organizar tudo isso aí!
• melhorar continuamente os novos projetos;
• preview de temas;
• banner javascript;
• multi endereços;
• seguir o padrão de código na Wiki;