SlideShare uma empresa Scribd logo
1 de 26
Baixar para ler offline
JavaScript
Boas práticas Onde começam as boas práticas?
Cuma? EM VOCÊ! Boas práticas
Comigo, blz...    Mas como? Boas práticas
Pensando antes de fazer!!!! Boas práticas Hum....
DÁ MEDO, EU SEI!!!! Boas práticas
DÁ MEDO, EU SEI!!!! PARECE SER MAIS DIFICIL.  CONCORDIO! Boas práticas
Seria bom evitar... Evitar o uso de eval ou Function Function  e a função a  eval  são operações pesadas que usados em excesso pode complicar a vida do interpretador. Suas chamadas são convertidas de código fonte para código executável. lento rápido
Seria bom evitar... Evitar try-catch-, dentro de um laço de repetição  Tratamento de exceção deve ser feito  em um nível mais alto onde não ocorrem com freqüência. lento rápido
Seria bom evitar... Evitar passar,uma função na forma de strings, para  setTimeout () e setInterval () Se você passar uma string em  setTimeout()  ou  setInterval()  a string será avaliada da mesma forma que o  eval()  que é lento. lento rápido Envolva seu código em uma função anônima. Assim o interpretado poderá  executar sua instrução de forma mais rápida durante a “compilação”.
Seria bom evitar... Sempre que puder, faça cache de valores variáveis lento rápido Melhor maneira é para armazenar em cache o comprimento do array: O comprimento do arr array é recalculado a cada vez que o loop repete.
Seria bom evitar... Sempre que puder, faça cache de objetos DOM lento rápido
Seria bom evitar... Remova referencias que não serão mais usadas. Não muito legal Mais legal
Seria bom evitar... Evite pegar um formulário por getElementById Se você passar uma string em  setTimeout()  ou  setInterval()  a string será avaliada da mesma forma que o  eval()  que é lento. Existe várias formas de se pegar seus campos...
OO no  JavaScript ! Prototipagem Classes Herança
OO no  JavaScript ! Prototipagem
OO no  JavaScript ! Classes
OO no  JavaScript ! Herança
OO no  JavaScript ! Herança
Vamos po-pogramar juntos? Vamos por a mão na massa para desenvolver um CRUD  em Javascript. Encapsular e expor somente o que realmente precisa ser  exposto . function Pessoa(){ var _pessoas  = [], _cadastro = function(pessoa){ console.log(pessoa); _pessoas.push(pessoa); }, _remover =function(indice){ _pessoas.splice(indice,1); } return { C: _cadastro, R: _pessoas, D: _remover }; } console.dir(p)
Como resolver problemas?
Como resolver problemas? Entender o que esta sendo feito.
Como resolver problemas? Entender o que esta sendo feito. Pedir ajuda ao colega SEMPRE.
Como resolver problemas? Entender o que esta sendo feito. Pedir ajuda ao colega SEMPRE. Evitar fazer pog!
Como resolver problemas? Entender o que esta sendo feito. Pedir ajuda ao colega SEMPRE. Evitar fazer pog! E quanto nada deu certo.  >> go to GOOGLE.COM
Obrigado! Links legais: http://www.mspc.eng.br/info/jscriptOper.shtml   http://imasters.com.br/artigo/21928/javascript/30-dicas-para-melhorar-o-desempenho-do-javascript http://addyosmani.com/largescalejavascript/?utm_source=javascriptweekly&utm_medium=email#modtheory http://www.developer.nokia.com/Community/Wiki/JavaScript_Performance_Best_Practices  http://homepage.mac.com/rue/JS_Optimization_Techniques/  http://www.milfont.org/tech/2008/01/05/heranca-no-javascript/

Mais conteúdo relacionado

Mais procurados

JavaScript: agora é sério
JavaScript: agora é sérioJavaScript: agora é sério
JavaScript: agora é sérioLuciano Ramalho
 
Desenvolvimento em .Net - Excepções
Desenvolvimento em .Net - ExcepçõesDesenvolvimento em .Net - Excepções
Desenvolvimento em .Net - ExcepçõesVitor Silva
 
Tratamento de exceção em java
Tratamento de exceção em javaTratamento de exceção em java
Tratamento de exceção em javaMarques Amaro
 
JavaScript - #Aula04 parte 02 - Variaveis e Constantes
JavaScript - #Aula04 parte 02 - Variaveis e ConstantesJavaScript - #Aula04 parte 02 - Variaveis e Constantes
JavaScript - #Aula04 parte 02 - Variaveis e ConstantesErick L. F.
 
LabMM3 - Aula teórica 13
LabMM3 - Aula teórica 13LabMM3 - Aula teórica 13
LabMM3 - Aula teórica 13Carlos Santos
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScriptClaudio Gamboa
 
05 - Operadores relacionais e estruturas de repetição - v1.0
05 - Operadores relacionais e estruturas de repetição - v1.005 - Operadores relacionais e estruturas de repetição - v1.0
05 - Operadores relacionais e estruturas de repetição - v1.0César Augusto Pessôa
 
JavaScript for Beginners
JavaScript for BeginnersJavaScript for Beginners
JavaScript for BeginnersSAPO Sessions
 
Introdução a programação I
Introdução a programação IIntrodução a programação I
Introdução a programação IClerton Leal
 
Introdução a programação II
Introdução a programação IIIntrodução a programação II
Introdução a programação IIClerton Leal
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)Carlos Santos
 
(A16) LabMM3 - JavaScript - Erros
(A16) LabMM3 - JavaScript - Erros(A16) LabMM3 - JavaScript - Erros
(A16) LabMM3 - JavaScript - ErrosCarlos Santos
 
Minicurso Ruby on Rails Dextra
Minicurso Ruby on Rails DextraMinicurso Ruby on Rails Dextra
Minicurso Ruby on Rails DextraDextra
 
T15_T16_LM3: Mais objetos do Javascript (2013-2014)
T15_T16_LM3: Mais objetos do Javascript (2013-2014)T15_T16_LM3: Mais objetos do Javascript (2013-2014)
T15_T16_LM3: Mais objetos do Javascript (2013-2014)Carlos Santos
 
PHP - Tratamento de Erros
PHP - Tratamento de ErrosPHP - Tratamento de Erros
PHP - Tratamento de ErrosBruno Quaresma
 

Mais procurados (20)

JavaScript: agora é sério
JavaScript: agora é sérioJavaScript: agora é sério
JavaScript: agora é sério
 
Switchcase
SwitchcaseSwitchcase
Switchcase
 
Desenvolvimento em .Net - Excepções
Desenvolvimento em .Net - ExcepçõesDesenvolvimento em .Net - Excepções
Desenvolvimento em .Net - Excepções
 
Tratamento de exceção em java
Tratamento de exceção em javaTratamento de exceção em java
Tratamento de exceção em java
 
JavaScript - #Aula04 parte 02 - Variaveis e Constantes
JavaScript - #Aula04 parte 02 - Variaveis e ConstantesJavaScript - #Aula04 parte 02 - Variaveis e Constantes
JavaScript - #Aula04 parte 02 - Variaveis e Constantes
 
LabMM3 - Aula teórica 13
LabMM3 - Aula teórica 13LabMM3 - Aula teórica 13
LabMM3 - Aula teórica 13
 
TWP54 Exceções
TWP54 ExceçõesTWP54 Exceções
TWP54 Exceções
 
tmn - Introdução ao JavaScript
tmn - Introdução ao JavaScripttmn - Introdução ao JavaScript
tmn - Introdução ao JavaScript
 
05 - Operadores relacionais e estruturas de repetição - v1.0
05 - Operadores relacionais e estruturas de repetição - v1.005 - Operadores relacionais e estruturas de repetição - v1.0
05 - Operadores relacionais e estruturas de repetição - v1.0
 
JavaScript for Beginners
JavaScript for BeginnersJavaScript for Beginners
JavaScript for Beginners
 
Introdução a programação I
Introdução a programação IIntrodução a programação I
Introdução a programação I
 
Introdução a programação II
Introdução a programação IIIntrodução a programação II
Introdução a programação II
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)
 
(A16) LabMM3 - JavaScript - Erros
(A16) LabMM3 - JavaScript - Erros(A16) LabMM3 - JavaScript - Erros
(A16) LabMM3 - JavaScript - Erros
 
Programação OO - Java
Programação OO - JavaProgramação OO - Java
Programação OO - Java
 
Introdução ao JavaScript
Introdução ao JavaScriptIntrodução ao JavaScript
Introdução ao JavaScript
 
Minicurso Ruby on Rails Dextra
Minicurso Ruby on Rails DextraMinicurso Ruby on Rails Dextra
Minicurso Ruby on Rails Dextra
 
T15_T16_LM3: Mais objetos do Javascript (2013-2014)
T15_T16_LM3: Mais objetos do Javascript (2013-2014)T15_T16_LM3: Mais objetos do Javascript (2013-2014)
T15_T16_LM3: Mais objetos do Javascript (2013-2014)
 
Exceptions
ExceptionsExceptions
Exceptions
 
PHP - Tratamento de Erros
PHP - Tratamento de ErrosPHP - Tratamento de Erros
PHP - Tratamento de Erros
 

Semelhante a Javascript - boas práticas

55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - BrazilStephen Chin
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceçõesFAFICA
 
TDC2013 Otimizando-C
TDC2013 Otimizando-CTDC2013 Otimizando-C
TDC2013 Otimizando-Cosmarcf
 
Removendo o cheiro ruim do seu código - SoLiSC 2011
Removendo o cheiro ruim do seu código - SoLiSC 2011Removendo o cheiro ruim do seu código - SoLiSC 2011
Removendo o cheiro ruim do seu código - SoLiSC 2011Luís Cobucci
 
Javascript para CSharpers 1 - Comparando
Javascript para CSharpers   1 - ComparandoJavascript para CSharpers   1 - Comparando
Javascript para CSharpers 1 - ComparandoWesley Lemos
 
Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência JavaMario Jorge Pereira
 
JAVA: Muito mais que uma linguagem
JAVA: Muito mais que uma linguagemJAVA: Muito mais que uma linguagem
JAVA: Muito mais que uma linguagemliverig
 
Java Primeiros Passos - Cap 7
Java Primeiros Passos - Cap 7Java Primeiros Passos - Cap 7
Java Primeiros Passos - Cap 7David Willian
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN StackBruno Catão
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)Mario Sergio
 
Curso de introdução ao ruby
Curso de introdução ao rubyCurso de introdução ao ruby
Curso de introdução ao rubyFrancis Wagner
 
Mantendo a Qualidade dos Códigos de Teste
Mantendo a Qualidade dos Códigos de TesteMantendo a Qualidade dos Códigos de Teste
Mantendo a Qualidade dos Códigos de Testemauricioszabo
 
Java - Introdução a banco de dados
Java - Introdução a banco de dadosJava - Introdução a banco de dados
Java - Introdução a banco de dadosSérgio Souza Costa
 

Semelhante a Javascript - boas práticas (20)

Aula2
Aula2Aula2
Aula2
 
Java e orientação a objetos
Java e orientação a objetosJava e orientação a objetos
Java e orientação a objetos
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil
 
Tratamento de exceções
Tratamento de exceçõesTratamento de exceções
Tratamento de exceções
 
TDC2013 Otimizando-C
TDC2013 Otimizando-CTDC2013 Otimizando-C
TDC2013 Otimizando-C
 
Removendo o cheiro ruim do seu código - SoLiSC 2011
Removendo o cheiro ruim do seu código - SoLiSC 2011Removendo o cheiro ruim do seu código - SoLiSC 2011
Removendo o cheiro ruim do seu código - SoLiSC 2011
 
Javascript para CSharpers 1 - Comparando
Javascript para CSharpers   1 - ComparandoJavascript para CSharpers   1 - Comparando
Javascript para CSharpers 1 - Comparando
 
Guia Rápido de Referência Java
Guia Rápido de Referência JavaGuia Rápido de Referência Java
Guia Rápido de Referência Java
 
JAVA: Muito mais que uma linguagem
JAVA: Muito mais que uma linguagemJAVA: Muito mais que uma linguagem
JAVA: Muito mais que uma linguagem
 
Java Primeiros Passos - Cap 7
Java Primeiros Passos - Cap 7Java Primeiros Passos - Cap 7
Java Primeiros Passos - Cap 7
 
Clean Code
Clean CodeClean Code
Clean Code
 
Java script1
Java script1Java script1
Java script1
 
Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001Programação Orientada a Objetos - 001
Programação Orientada a Objetos - 001
 
Semanaupecaruaru2013 c++para iniciantes
Semanaupecaruaru2013 c++para iniciantesSemanaupecaruaru2013 c++para iniciantes
Semanaupecaruaru2013 c++para iniciantes
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN Stack
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)
 
Curso de introdução ao ruby
Curso de introdução ao rubyCurso de introdução ao ruby
Curso de introdução ao ruby
 
Mantendo a Qualidade dos Códigos de Teste
Mantendo a Qualidade dos Códigos de TesteMantendo a Qualidade dos Códigos de Teste
Mantendo a Qualidade dos Códigos de Teste
 
Java script
Java scriptJava script
Java script
 
Java - Introdução a banco de dados
Java - Introdução a banco de dadosJava - Introdução a banco de dados
Java - Introdução a banco de dados
 

Mais de Francke Peixoto

RESULTADO DA PESQUISA SOBRE OS FIIS FAVORITOS DOS USUÁRIOS DO GRUPO FALA FII
RESULTADO DA PESQUISA SOBRE OS FIIS FAVORITOS DOS USUÁRIOS DO GRUPO FALA FII RESULTADO DA PESQUISA SOBRE OS FIIS FAVORITOS DOS USUÁRIOS DO GRUPO FALA FII
RESULTADO DA PESQUISA SOBRE OS FIIS FAVORITOS DOS USUÁRIOS DO GRUPO FALA FII Francke Peixoto
 
Resultado da pesquisa: O uso de informações para análise Fundos Imobiliários
Resultado da pesquisa: O uso de informações para análise  Fundos ImobiliáriosResultado da pesquisa: O uso de informações para análise  Fundos Imobiliários
Resultado da pesquisa: O uso de informações para análise Fundos ImobiliáriosFrancke Peixoto
 
Smp sistema de manutenção planejada
Smp sistema de manutenção planejadaSmp sistema de manutenção planejada
Smp sistema de manutenção planejadaFrancke Peixoto
 
Desenvolvimento Ágil de Software
Desenvolvimento Ágil de SoftwareDesenvolvimento Ágil de Software
Desenvolvimento Ágil de SoftwareFrancke Peixoto
 
Mapeamento Objeto-Relacional com LINQ
Mapeamento Objeto-Relacional com LINQ Mapeamento Objeto-Relacional com LINQ
Mapeamento Objeto-Relacional com LINQ Francke Peixoto
 

Mais de Francke Peixoto (8)

RESULTADO DA PESQUISA SOBRE OS FIIS FAVORITOS DOS USUÁRIOS DO GRUPO FALA FII
RESULTADO DA PESQUISA SOBRE OS FIIS FAVORITOS DOS USUÁRIOS DO GRUPO FALA FII RESULTADO DA PESQUISA SOBRE OS FIIS FAVORITOS DOS USUÁRIOS DO GRUPO FALA FII
RESULTADO DA PESQUISA SOBRE OS FIIS FAVORITOS DOS USUÁRIOS DO GRUPO FALA FII
 
Resultado da pesquisa: O uso de informações para análise Fundos Imobiliários
Resultado da pesquisa: O uso de informações para análise  Fundos ImobiliáriosResultado da pesquisa: O uso de informações para análise  Fundos Imobiliários
Resultado da pesquisa: O uso de informações para análise Fundos Imobiliários
 
Google BigQuery
Google BigQueryGoogle BigQuery
Google BigQuery
 
Smp sistema de manutenção planejada
Smp sistema de manutenção planejadaSmp sistema de manutenção planejada
Smp sistema de manutenção planejada
 
Desenvolvimento Ágil de Software
Desenvolvimento Ágil de SoftwareDesenvolvimento Ágil de Software
Desenvolvimento Ágil de Software
 
Groupware
GroupwareGroupware
Groupware
 
Rede Social
Rede SocialRede Social
Rede Social
 
Mapeamento Objeto-Relacional com LINQ
Mapeamento Objeto-Relacional com LINQ Mapeamento Objeto-Relacional com LINQ
Mapeamento Objeto-Relacional com LINQ
 

Javascript - boas práticas

  • 2. Boas práticas Onde começam as boas práticas?
  • 3. Cuma? EM VOCÊ! Boas práticas
  • 4. Comigo, blz... Mas como? Boas práticas
  • 5. Pensando antes de fazer!!!! Boas práticas Hum....
  • 6. DÁ MEDO, EU SEI!!!! Boas práticas
  • 7. DÁ MEDO, EU SEI!!!! PARECE SER MAIS DIFICIL. CONCORDIO! Boas práticas
  • 8. Seria bom evitar... Evitar o uso de eval ou Function Function e a função a eval são operações pesadas que usados em excesso pode complicar a vida do interpretador. Suas chamadas são convertidas de código fonte para código executável. lento rápido
  • 9. Seria bom evitar... Evitar try-catch-, dentro de um laço de repetição Tratamento de exceção deve ser feito  em um nível mais alto onde não ocorrem com freqüência. lento rápido
  • 10. Seria bom evitar... Evitar passar,uma função na forma de strings, para setTimeout () e setInterval () Se você passar uma string em setTimeout() ou setInterval() a string será avaliada da mesma forma que o eval() que é lento. lento rápido Envolva seu código em uma função anônima. Assim o interpretado poderá executar sua instrução de forma mais rápida durante a “compilação”.
  • 11. Seria bom evitar... Sempre que puder, faça cache de valores variáveis lento rápido Melhor maneira é para armazenar em cache o comprimento do array: O comprimento do arr array é recalculado a cada vez que o loop repete.
  • 12. Seria bom evitar... Sempre que puder, faça cache de objetos DOM lento rápido
  • 13. Seria bom evitar... Remova referencias que não serão mais usadas. Não muito legal Mais legal
  • 14. Seria bom evitar... Evite pegar um formulário por getElementById Se você passar uma string em setTimeout() ou setInterval() a string será avaliada da mesma forma que o eval() que é lento. Existe várias formas de se pegar seus campos...
  • 15. OO no JavaScript ! Prototipagem Classes Herança
  • 16. OO no JavaScript ! Prototipagem
  • 17. OO no JavaScript ! Classes
  • 18. OO no JavaScript ! Herança
  • 19. OO no JavaScript ! Herança
  • 20. Vamos po-pogramar juntos? Vamos por a mão na massa para desenvolver um CRUD em Javascript. Encapsular e expor somente o que realmente precisa ser exposto . function Pessoa(){ var _pessoas = [], _cadastro = function(pessoa){ console.log(pessoa); _pessoas.push(pessoa); }, _remover =function(indice){ _pessoas.splice(indice,1); } return { C: _cadastro, R: _pessoas, D: _remover }; } console.dir(p)
  • 22. Como resolver problemas? Entender o que esta sendo feito.
  • 23. Como resolver problemas? Entender o que esta sendo feito. Pedir ajuda ao colega SEMPRE.
  • 24. Como resolver problemas? Entender o que esta sendo feito. Pedir ajuda ao colega SEMPRE. Evitar fazer pog!
  • 25. Como resolver problemas? Entender o que esta sendo feito. Pedir ajuda ao colega SEMPRE. Evitar fazer pog! E quanto nada deu certo. >> go to GOOGLE.COM
  • 26. Obrigado! Links legais: http://www.mspc.eng.br/info/jscriptOper.shtml http://imasters.com.br/artigo/21928/javascript/30-dicas-para-melhorar-o-desempenho-do-javascript http://addyosmani.com/largescalejavascript/?utm_source=javascriptweekly&utm_medium=email#modtheory http://www.developer.nokia.com/Community/Wiki/JavaScript_Performance_Best_Practices http://homepage.mac.com/rue/JS_Optimization_Techniques/ http://www.milfont.org/tech/2008/01/05/heranca-no-javascript/