SlideShare uma empresa Scribd logo
JavaScript das Ruas
Tudo o que você não deve fazer
Dan Vitoriano
@dnvtrn
@dnvtrn
BEM LOKO
DOMINA
NINGUÉM SEGURA
ATALHOS
Que que tá
pegando?
@raphamorims
@pokemaobr
Iniciantes
PERIGO!
Esse dia foi loko….
JavaScript das Ruas
JavaScript das Ruas
JavaScript das Ruas
JavaScript das Ruas
JavaScript das Ruas
PESQUISA
O que você faz em
JavaScript que te
envergonha?
O que os outros fazem
com JavaScript que
você considera ruim?
Qual a coisa mais bonita que
uma pessoa desenvolvedora
pode fazer em JavaScript mas
geralmente não faz?
BAD PRACTICES
BAD PARTS
GOOD PARTS
VAI MALANDRA
Callback Hell
JavaScript das Ruas
var bagulhos;
JavaScript das Ruas
jQuery no meio dos
bagulho
JavaScript das Ruas
Kilômetros de JavaScript em um único arquivo
If ternário sem dó
bagulhos ? true :
bagulhos === 'Kondzilla' ? true :
bagulhos !== 'Anitta' ? true : null
ZUADO
The Bad Parts
Tipos
console.log(5 == "5"); // true
console.log(25 == "0x19"); // true
console.log(1 == true); // true
console.log(0 == false); // true
console.log(2 == true); // false
JavaScript das Ruas
JavaScript das Ruas
Números
> console.log(0.1 + 0.2);
Misericórdia…
= 0.30000000000000004
JavaScript das Ruas
Variáveis Globais
function foobar() {
var bar = 10;
//
// [...Code...]
//
baz = 20; // Typo. "baz" is now a global variable.
}
JavaScript das Ruas
undefined != null
undefined != null
Adição e
Concatenação
var x = 10;
var y = 5;
var z = x + y;
console.log(z);
 
15
var x = 10;
var y = "5";
var z = x + y;
console.log(z);
 
"105"
var x = 10;
var y = 5;
var z = x - y;
console.log(z);
 
5
var x = 10;
var y = "5";
var z = x - y;
console.log(z);
 
5
var x = "5";
var y = 5;
var z = x - y;
console.log(z);
 
5
var x = "10";
var y = "5";
var z = x - y;
console.log(z);
 
5
PARTES
ZICA
Prototype
__proto__
Construtores
Polimorfismo
Objetos
Tem métodos
Segue o protótipo
Facilita os testes
Destructuring
function example(metadata) {
var englishTitle = metadata.title,
localeTitle = metadata.translations[0].title;
…; // use englishTitle and localeTitle
}
function example({title: englishTitle, translations: [{title: localeTitle}]}) {
…; // use englishTitle and localeTitle
}
JavaScript das Ruas
Código Comentado
class Tumbalatum extends TaTumTum.Component {
static propTypes = {
handleSubmit: PropTypes.func
};
handleSubmit = () => {};
render(){
return(
<div>Cê acredita?!</div>
)
}
}
class Tumbalatum extends TaTumTum.Component {
static propTypes = {
handleSubmit: PropTypes.func
};
/* istanbul ignore next */
handleSubmit = () => {};
render(){
return(
<div>Cê acredita?!</div>
)
}
}
JavaScript das Ruas
Usar o browser pra
debugar os bagulhos
JavaScript das Ruas
JavaScript das Ruas
vamos pras idea…
JavaScript das Ruas
JavaScript das Ruas
JavaScript das Ruas
JavaScript das Ruas
Referências
• https://medium.com/@Rewieer/javascript-the-bad-parts-and-how-to-avoid-them-1a7c9bc5a0dd
• https://whydoesitsuck.com/why-does-javascript-suck/
• https://www.w3schools.com/js/js_mistakes.asp
• https://enmascript.com/articles/2019/09/20/two-exceptional-use-cases-for-the-spread-operator-you-may-
not-know-of
• https://talyssonoc.github.io/2015/11/23/JavaScript-adicione-acucar-a-gosto-e-pare-de-reclamar/
• http://nodebr.com/javascript-nao-e-bagunca/
• http://programadorobjetivo.co/7-problemas-de-estilo-de-codigo-em-javascript/
• https://medium.com/tableless/3-problemas-em-javascript-para-resolver-com-a-
especifica%C3%A7%C3%A3o-spread-operator-c5db0b5b1f6b
• https://medium.com/@madasamy/15-javascript-concepts-that-every-nodejs-programmer-must-to-
know-6894f5157cb7
VAMOS PRAS IDEIAS!
(Obrigado!)
@dnvtrn
@dnvtrn

Mais conteúdo relacionado

PPTX
TDD em JavaScript, rola?
Renan Siravegna
 
PDF
[Curso Java Basico] Aula 15: Controle de Decisao Switch-Case
Loiane Groner
 
PDF
[Curso Java Basico] Aula 14: Condicionais If-Else
Loiane Groner
 
PPTX
Java hidden features
Josenaldo de Oliveira Matos Filho
 
PDF
[Curso Java Basico] Aula 18: Comandos Break e Continue
Loiane Groner
 
PDF
[Curso Java Basico] Aula 17: Loop for
Loiane Groner
 
PPTX
Java hidden features
Josenaldo de Oliveira Matos Filho
 
PDF
Vale Security Conference - 2011 - 3 - Rener Alberto (Gr1nch) [DC Labs]
Vale Security Conference
 
TDD em JavaScript, rola?
Renan Siravegna
 
[Curso Java Basico] Aula 15: Controle de Decisao Switch-Case
Loiane Groner
 
[Curso Java Basico] Aula 14: Condicionais If-Else
Loiane Groner
 
Java hidden features
Josenaldo de Oliveira Matos Filho
 
[Curso Java Basico] Aula 18: Comandos Break e Continue
Loiane Groner
 
[Curso Java Basico] Aula 17: Loop for
Loiane Groner
 
Java hidden features
Josenaldo de Oliveira Matos Filho
 
Vale Security Conference - 2011 - 3 - Rener Alberto (Gr1nch) [DC Labs]
Vale Security Conference
 

Mais procurados (17)

PDF
[Curso Java Básico] Aula 11: Variáveis - Tipos Primitivos
Loiane Groner
 
PDF
JavaScript agora é sério (TDC 2011)
Luciano Ramalho
 
ODP
Shell Tips and Tricks for sysadmin
Magno Torres
 
PDF
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Rafael Ponte
 
PDF
Testes, deploy e integração continua com Python e Django
fabiocerqueira
 
PDF
TDD em django sem desculpas versao fisl
Adriano Petrich
 
PPT
Getna: Gerador de Código RubyOnRails apartir de banco de dados
Maximusmano
 
PDF
De Zero à Web com Python e Django
Osvaldo Santana Neto
 
PDF
Boas Práticas em jQuery
William Bruno Moraes
 
PDF
Java script
Mozart Diniz
 
PDF
Nem tudo é Pepino: Cucumber x Robot Framework
Rodrigo Matola
 
PDF
Java reativo
Rafael Souza
 
PPTX
Nada sobre JavaScript
Luis Vendrame
 
PDF
Aprender Javascript e jQuery (UFCD
Afonso Gomes
 
PDF
Os 10 maus hábitos dos desenvolvedores JSF
Rafael Ponte
 
PDF
Introdução a programação I
Clerton Leal
 
PDF
Desenvolvimento ágil de software com Ruby on Rails
Lucas Caton
 
[Curso Java Básico] Aula 11: Variáveis - Tipos Primitivos
Loiane Groner
 
JavaScript agora é sério (TDC 2011)
Luciano Ramalho
 
Shell Tips and Tricks for sysadmin
Magno Torres
 
Os 10 maus habitos dos desenvolvedores jsf (JustJava e CCT)
Rafael Ponte
 
Testes, deploy e integração continua com Python e Django
fabiocerqueira
 
TDD em django sem desculpas versao fisl
Adriano Petrich
 
Getna: Gerador de Código RubyOnRails apartir de banco de dados
Maximusmano
 
De Zero à Web com Python e Django
Osvaldo Santana Neto
 
Boas Práticas em jQuery
William Bruno Moraes
 
Java script
Mozart Diniz
 
Nem tudo é Pepino: Cucumber x Robot Framework
Rodrigo Matola
 
Java reativo
Rafael Souza
 
Nada sobre JavaScript
Luis Vendrame
 
Aprender Javascript e jQuery (UFCD
Afonso Gomes
 
Os 10 maus hábitos dos desenvolvedores JSF
Rafael Ponte
 
Introdução a programação I
Clerton Leal
 
Desenvolvimento ágil de software com Ruby on Rails
Lucas Caton
 
Anúncio

Semelhante a JavaScript das Ruas (20)

PDF
WTF Javascript - FrontInRio 2011
Leonardo Balter
 
PDF
Java script aula 02 - operadores
Cristiano Pires Martins
 
PPTX
Javascript para CSharpers 1 - Comparando
Wesley Lemos
 
PDF
Sábado Hackadêmico - JavaScript
Julio Greff
 
PPT
Javascript - boas práticas
Francke Peixoto
 
PDF
Minicurso groovy grails
Victor Hugo Germano
 
PDF
7Masters jQuery - boas práticas em JavaScriptQuery, com Bruno Rocha
iMasters
 
PDF
[Android devcamp] Android Bootcamp – 2012
Douglas Drumond
 
PDF
Removendo o cheiro ruim do seu código - SoLiSC 2011
Luís Cobucci
 
PPTX
Flávio Almeida MEAN Stack "to be or not to be mean"
flaviohalmeida
 
PDF
JavaScript ninja com jQuery
Reinaldo Junior
 
PDF
Tutorial sobre Jquery
Ivo Calado
 
PDF
Javascript The good, bad and ugly parts
Fabian Carlos
 
PDF
Introdução a JavaScript
Bruno Catão
 
PDF
Tdd em django sem desculpas versao final
Adriano Petrich
 
PPTX
Javascript para CSharpers 3 - Conceitos
Wesley Lemos
 
KEY
Plataforma java: detalhes da JVM
Caelum
 
PPTX
Javascript
Fernando Simeone
 
PDF
O que você NÃO aprendeu sobre Programação Orientada a Objetos
Danilo Sato
 
PPTX
Iniciando com javaScript 2017
Romualdo Andre
 
WTF Javascript - FrontInRio 2011
Leonardo Balter
 
Java script aula 02 - operadores
Cristiano Pires Martins
 
Javascript para CSharpers 1 - Comparando
Wesley Lemos
 
Sábado Hackadêmico - JavaScript
Julio Greff
 
Javascript - boas práticas
Francke Peixoto
 
Minicurso groovy grails
Victor Hugo Germano
 
7Masters jQuery - boas práticas em JavaScriptQuery, com Bruno Rocha
iMasters
 
[Android devcamp] Android Bootcamp – 2012
Douglas Drumond
 
Removendo o cheiro ruim do seu código - SoLiSC 2011
Luís Cobucci
 
Flávio Almeida MEAN Stack "to be or not to be mean"
flaviohalmeida
 
JavaScript ninja com jQuery
Reinaldo Junior
 
Tutorial sobre Jquery
Ivo Calado
 
Javascript The good, bad and ugly parts
Fabian Carlos
 
Introdução a JavaScript
Bruno Catão
 
Tdd em django sem desculpas versao final
Adriano Petrich
 
Javascript para CSharpers 3 - Conceitos
Wesley Lemos
 
Plataforma java: detalhes da JVM
Caelum
 
Javascript
Fernando Simeone
 
O que você NÃO aprendeu sobre Programação Orientada a Objetos
Danilo Sato
 
Iniciando com javaScript 2017
Romualdo Andre
 
Anúncio

Mais de Dan Vitoriano (20)

PDF
Node.js e Express
Dan Vitoriano
 
PDF
Workshop React Hooks
Dan Vitoriano
 
PDF
AMP Roadshow SP 2019 - Web Apps Modernas
Dan Vitoriano
 
PDF
CSS in JS - Escrevendo CSS no JavaScript - Dan Vitoriano
Dan Vitoriano
 
PDF
Times digitais de alta performance - Tera e Endeavor
Dan Vitoriano
 
PDF
GraphQL - A Graph Query Language to your API
Dan Vitoriano
 
PDF
Mobile First e Offline First
Dan Vitoriano
 
PDF
React Native
Dan Vitoriano
 
PDF
Pdsp #3
Dan Vitoriano
 
PDF
Pdsp #2
Dan Vitoriano
 
PDF
Meetup Processos de Desenvolvimento São Paulo - Gamestorming
Dan Vitoriano
 
PPTX
Unit Test JavaScript
Dan Vitoriano
 
PDF
Untraceable electronic mail, return addresses and digital pseudonyms - David ...
Dan Vitoriano
 
PDF
The computer for the 21st century - Mark Weiser, 1991
Dan Vitoriano
 
PPTX
Especificações UX/UI CMA Tablet
Dan Vitoriano
 
PDF
User experience guidelines for Universal Windows Platform (UWP) appsUwp app d...
Dan Vitoriano
 
PDF
Fullcircle papers - Sobre Blogs
Dan Vitoriano
 
PPTX
Apresentação FEMUG-ABC
Dan Vitoriano
 
PPTX
Planejamento estratégico de comunicação digital - Dados sobre internet e mobi...
Dan Vitoriano
 
PPTX
Google Material Design - Conceito, aplicações, código e web components
Dan Vitoriano
 
Node.js e Express
Dan Vitoriano
 
Workshop React Hooks
Dan Vitoriano
 
AMP Roadshow SP 2019 - Web Apps Modernas
Dan Vitoriano
 
CSS in JS - Escrevendo CSS no JavaScript - Dan Vitoriano
Dan Vitoriano
 
Times digitais de alta performance - Tera e Endeavor
Dan Vitoriano
 
GraphQL - A Graph Query Language to your API
Dan Vitoriano
 
Mobile First e Offline First
Dan Vitoriano
 
React Native
Dan Vitoriano
 
Pdsp #3
Dan Vitoriano
 
Pdsp #2
Dan Vitoriano
 
Meetup Processos de Desenvolvimento São Paulo - Gamestorming
Dan Vitoriano
 
Unit Test JavaScript
Dan Vitoriano
 
Untraceable electronic mail, return addresses and digital pseudonyms - David ...
Dan Vitoriano
 
The computer for the 21st century - Mark Weiser, 1991
Dan Vitoriano
 
Especificações UX/UI CMA Tablet
Dan Vitoriano
 
User experience guidelines for Universal Windows Platform (UWP) appsUwp app d...
Dan Vitoriano
 
Fullcircle papers - Sobre Blogs
Dan Vitoriano
 
Apresentação FEMUG-ABC
Dan Vitoriano
 
Planejamento estratégico de comunicação digital - Dados sobre internet e mobi...
Dan Vitoriano
 
Google Material Design - Conceito, aplicações, código e web components
Dan Vitoriano
 

JavaScript das Ruas