SlideShare uma empresa Scribd logo
1 de 16
{js}
1/8/2013 Richard Santos - Front-end Tech Lead
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;
js é ruim?
1/8/2013 Richard Santos - Front-end Tech Lead
tem seus problemas:
• Wat;
• Dart;
escopo
1/8/2013 Richard Santos - Front-end Tech Lead
• escopo de variáveis;
• objeto this;
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.
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!
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.
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á.
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)
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)
organização
1/8/2013 Richard Santos - Front-end Tech Lead
Separe opções, elementos, métodos e eventos
Sugestão pra criação de plugins
tray
1/8/2013 Richard Santos - Front-end Tech Lead
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;
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;
perguntas
1/8/2013 Richard Santos - Front-end Tech Lead
?
obrigado
1/8/2013 Richard Santos - Front-end Tech Lead
!

Mais conteúdo relacionado

Semelhante a js-fundamentos

HackaPET 2019: React
HackaPET 2019: ReactHackaPET 2019: React
HackaPET 2019: ReactMaira Bello
 
Versionamento de modelo de dados com PostgreSQL
Versionamento de modelo de dados com PostgreSQLVersionamento de modelo de dados com PostgreSQL
Versionamento de modelo de dados com PostgreSQLLeonardo Cezar
 
performance em jQuery apps
performance em jQuery appsperformance em jQuery apps
performance em jQuery appsDavidson Fellipe
 
TDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direitoTDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direitoCezinha Anjos
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04Carlos Santos
 
Melhores praticas no desenvolvimento magento
Melhores praticas no desenvolvimento magentoMelhores praticas no desenvolvimento magento
Melhores praticas no desenvolvimento magentoRicardo Martins
 
It skills para rh aprender e contratar
It skills para rh  aprender e contratarIt skills para rh  aprender e contratar
It skills para rh aprender e contratarAle Uehara
 
Voce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraVoce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraCDS
 
TDC2012: Apps RIA com Sencha GXT 3 e GWT
TDC2012: Apps RIA com Sencha GXT 3 e GWTTDC2012: Apps RIA com Sencha GXT 3 e GWT
TDC2012: Apps RIA com Sencha GXT 3 e GWTLoiane Groner
 
Monitorando os Recursos e Processos do Servidor, através do Power BI
Monitorando os Recursos e Processos do Servidor, através do Power BIMonitorando os Recursos e Processos do Servidor, através do Power BI
Monitorando os Recursos e Processos do Servidor, através do Power BISulamita Dantas
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchBernardo Donadio
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o AndroidHeider Lopes
 
Modelo de atores com Microsoft Orleans
Modelo de atores com Microsoft OrleansModelo de atores com Microsoft Orleans
Modelo de atores com Microsoft OrleansAndré Minelli
 
JavaScript: uma visão geral da linguagem e seu ecossistema
JavaScript: uma visão geral da linguagem e seu ecossistemaJavaScript: uma visão geral da linguagem e seu ecossistema
JavaScript: uma visão geral da linguagem e seu ecossistemaFabio Agostinho Boris
 

Semelhante a js-fundamentos (20)

jQuery
jQueryjQuery
jQuery
 
HackaPET 2019: React
HackaPET 2019: ReactHackaPET 2019: React
HackaPET 2019: React
 
Versionamento de modelo de dados com PostgreSQL
Versionamento de modelo de dados com PostgreSQLVersionamento de modelo de dados com PostgreSQL
Versionamento de modelo de dados com PostgreSQL
 
performance em jQuery apps
performance em jQuery appsperformance em jQuery apps
performance em jQuery apps
 
TDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direitoTDC 2015 - Rails & Javascript: faça isso direito
TDC 2015 - Rails & Javascript: faça isso direito
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
 
Melhores praticas no desenvolvimento magento
Melhores praticas no desenvolvimento magentoMelhores praticas no desenvolvimento magento
Melhores praticas no desenvolvimento magento
 
It skills para rh aprender e contratar
It skills para rh  aprender e contratarIt skills para rh  aprender e contratar
It skills para rh aprender e contratar
 
Voce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infraVoce se preocupa com performance ou é sempre problema da infra
Voce se preocupa com performance ou é sempre problema da infra
 
TDC2012: Apps RIA com Sencha GXT 3 e GWT
TDC2012: Apps RIA com Sencha GXT 3 e GWTTDC2012: Apps RIA com Sencha GXT 3 e GWT
TDC2012: Apps RIA com Sencha GXT 3 e GWT
 
Vraptor 3
Vraptor 3Vraptor 3
Vraptor 3
 
Monitorando os Recursos e Processos do Servidor, através do Power BI
Monitorando os Recursos e Processos do Servidor, através do Power BIMonitorando os Recursos e Processos do Servidor, através do Power BI
Monitorando os Recursos e Processos do Servidor, através do Power BI
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
Treinamento ORM .Net
Treinamento ORM .NetTreinamento ORM .Net
Treinamento ORM .Net
 
Internet sem drama
Internet sem dramaInternet sem drama
Internet sem drama
 
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearchXen e CoreOS: solução para data mining com NodeJS e ElasticSearch
Xen e CoreOS: solução para data mining com NodeJS e ElasticSearch
 
Descomplicando o Android
Descomplicando o AndroidDescomplicando o Android
Descomplicando o Android
 
Modelo de atores com Microsoft Orleans
Modelo de atores com Microsoft OrleansModelo de atores com Microsoft Orleans
Modelo de atores com Microsoft Orleans
 
JavaScript: uma visão geral da linguagem e seu ecossistema
JavaScript: uma visão geral da linguagem e seu ecossistemaJavaScript: uma visão geral da linguagem e seu ecossistema
JavaScript: uma visão geral da linguagem e seu ecossistema
 
Entity framework
Entity frameworkEntity framework
Entity framework
 

js-fundamentos

  • 1. {js} 1/8/2013 Richard Santos - Front-end Tech Lead
  • 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;
  • 4. escopo 1/8/2013 Richard Santos - Front-end Tech Lead • escopo de variáveis; • objeto this;
  • 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)
  • 11. organização 1/8/2013 Richard Santos - Front-end Tech Lead Separe opções, elementos, métodos e eventos Sugestão pra criação de plugins
  • 12. tray 1/8/2013 Richard Santos - Front-end Tech Lead
  • 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;
  • 15. perguntas 1/8/2013 Richard Santos - Front-end Tech Lead ?
  • 16. obrigado 1/8/2013 Richard Santos - Front-end Tech Lead !