SlideShare uma empresa Scribd logo
1 de 69
Baixar para ler offline
WTF Javascript
Leo Balter
Leo Balter
  @leobalter
Javascript é bom!
Design Patterns vs. Padrões
Padrões

•Patterns

•Standards

•Default
Escala Pentatônica
Patterns são modelos funcionais, mas não precisamos
                adota-los sempre!
Anti Padrões
fórmulas perfeitas para seu projeto dar errado!

(1 < 2 < 3); // false!
document.all
O Javascript já foi assustador no ano passado!
O retorno maldito!
function()
{
    return
    {
        trololo: “document.all”
    }
}
function()
{
    return;
    {
        trololo: “document.all”
    }
}
function() {
  return {
    trololo: “document.all”
  }
}
Loop desgraçado
var nome = [ “Leo”, “Balter” ];
for (i in nome) {
  console.log(nome[i]);
}
var nome = [ “Leo”, “Balter” ];
for (i in nome) {
  console.log(nome[i]);
}
var nome = [ “Leo”, “Balter” ];
for (i in nome) {
  console.log(nome[i]);
}
var pessoa = function (a, b) {
    this.nome = a,
    this.sobrenome = b
};

pessoa.prototype.falar = function () {
    console.log("olá");
};

var mim = new pessoa("Leo", "Balter");

for (i in mim) {
    console.log(mim[i]); // wtf
}
var pessoa = function (a, b) {
    this.nome = a,
    this.sobrenome = b
};

pessoa.prototype.falar = function () {
    console.log("olá");
};

var mim = new pessoa("Leo", "Balter");

for (i in mim) {
    console.log(mim[i]); // wtf
}
var nome = [ “Leo”, “Balter” ];
for (i in nome) {
  if (nome.hasOwnProperty(i)) {
    console.log(nome[i]); // wtf
  }
}
Globais e locais
imGlobal = 10;

function changeGlobal() {
    console.log(imGlobal); // 10 (*)
    imGlobal = 20;
}

changeGlobal();

console.log(imGlobal); // 20
imGlobal = 10;

function changeGlobal() {
    console.log(imGlobal); // undefined  
    
    var imGlobal = "What am I?";
}

changeGlobal();
imGlobal = 10;

function changeGlobal() {
    var imGlobal;

    console.log(imGlobal); // undefined  
    
    imGlobal = "What am I?";
}

changeGlobal();
Sempre declare suas variáveis no início da função!
imGlobal = 10;

function changeGlobal() {
    console.log(window.imGlobal); // 10! 
                                         
    
    var imGlobal = "What am I?";
}

changeGlobal();
Conheça seu escopo!
Variáveis dentro de blocos de loop, ifs ou switches não criam um escopo
interno!
function foo() {
    var bar = [ 123, 234, 345 ],
            x = 5;
    for (var i = 0; i < bar.length; i++) {
        var x = i;
    }
    
    console.log(i);
}
foo();
function foo() {
    var bar = [ 123, 234, 345 ],
            x = 5;
    for (var i = 0; i < bar.length; i++) {
        var x = i;
    }
    
    console.log(i, x); // 3, 3
}
foo();
function foo() {
    var bar = [ 123, 234, 345 ],
            x = 5;
    for (var i = 0; i < bar.length; i++) {
        var x = i;
    }
    
    console.log(i, x); // 3, 3
}
foo();
Valores verdadeiros podem ser falsos!
console.log(!!0);        // false
console.log(!!10);       // true
console.log(!!"0");      // true

console.log(0 == "");     // true
console.log(!!0 == !!""); // true
console.log(!!0);         // false
console.log(!!10);        // true
console.log(!!"0");       // true

console.log(0 == "0");     // true
console.log(!!0 == !!"0"); // false
Pare de utilizar == e comece a utilizar === agora!



     console.log(90 === "90"); // false
     console.log(0 !== false); // true
Fuja dos números octais!
parseInt(“042”); // 34

parseInt(“042”, 10); // 42
Cuidado com os tipos
120 + “7”; // “1207”

1 < 2 < 3; // false
1 < 2 < 3;

(1 < 2) < 3;

true < 3;
O eval() é mal!
eval(‘/* js dentro de uma string! */’);
setTimeout(‘rotina(x);’, 500);




setTimeout(function () {
  rotina(x);
}, 500);
Convenções de código
Convenções de código

• JSLint se você for o Douglas Crockford


• JSHint se você não for o Douglas Crockford


• e agora também o CSSLint!
JSLint

• Douglas Crockford


• “JSLint will hurt your feelings”


• Escreva JS como ele escreve ou não use a ferramenta


• for (var x in y) ...


• http://www.jslint.com
JSHint

• Comunidade - fork do JSLint iniciado por Anton Kovalyov


• “does not tyrannize your code”


• Estabeleça as suas convenções!


• Douglas Crockford diz que JSHint é para babacas


• http://jshint.com
function(foo) {
    var i = -1
    var str

      for (var i = 0; i < 4; i++) {
          debugger;
          str += i;
      }
}()
The code check failed.

Errors:
• Line 1 function(foo) {
  Missing name in function declaration.

• Line 2 var i = -1
  Missing semicolon.

• Line 3 var str
  Missing semicolon.

• Line 5 for (var i = 0; i < 4; i++) {
  'i' is already defined.

• Line 9 }()
  Function declarations are not invocable. Wrap the
  whole function invocation in parens.

• Line 9
  Stopping, unable to continue. (100% scanned).
http://csslint.net/
Outras dicas para melhorar seu JS
Entenda Javascript

• jQuery


• Mootools


• CoffeScript


• Dojo


• Prototype
Use o console!
Use o console!

• Opera Dragonfly


• Chrome Developer Tools


• Firefox’s Firebug (extensão)


• Safari’s Developer Tools


• Internet Explorer Developer Tools
Largue o alert! Use o console.log e debugger!
breakpoint simples!
Não se preocupe com a tecnologia server-side

• Ruby                   • C / C++


• Python                 • Perl


• PHP                    • Erlang


• .NET                   • Lisp


• ColdFusion             • Cobol


• ASP                    • Pseudo-código
Mas se puder escolher prefira node.js

• Javascript em server side


• é fácil


• é grátis


• é tendência


• se integra facilmente com ferramentas como CSSLint e JSHint


• http://nodejs.org
Passe a ideia adiante!
Estude muito!

• Mozilla Developer Network - MDN - https://developer.mozilla.org/


• Google Code University - http://code.google.com/intl/pt-BR/edu/
  submissions/html-css-javascript/


• Livros! Ex.: “Padrões Javascript”
Compartilhe seu código e troque experiências!

• Google Code


• Github


• Bitbucket


• jsfiddle.net


• jsbin.com
Não leia o W3Schools!

• Leia o http://w3fools.com


• Pior forma de aprender é a errada!
Não detecte o browser, mas a funcionalidade
Moral da história
você já pode transformar o seu maior vilão no seu
melhor amigo!
@leobalter // leo@balter.com.br

Mais conteúdo relacionado

Mais procurados

JavaScript for Beginners
JavaScript for BeginnersJavaScript for Beginners
JavaScript for BeginnersSAPO Sessions
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 
Html5 - O futuro da Web
Html5 - O futuro da WebHtml5 - O futuro da Web
Html5 - O futuro da WebJose Berardo
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBALuciano Borges
 
Ruby and Rails intro
Ruby and Rails introRuby and Rails intro
Ruby and Rails introNuno Silva
 
Introdução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em RailsIntrodução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em Railsoverduka
 
Javascript para CSharpers 1 - Comparando
Javascript para CSharpers   1 - ComparandoJavascript para CSharpers   1 - Comparando
Javascript para CSharpers 1 - ComparandoWesley Lemos
 
Swift!.opcionais.oh!.my()?!?
Swift!.opcionais.oh!.my()?!?Swift!.opcionais.oh!.my()?!?
Swift!.opcionais.oh!.my()?!?Tales Andrade
 
“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web Hacking“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web HackingConviso Application Security
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsLucas Caton
 

Mais procurados (11)

JavaScript for Beginners
JavaScript for BeginnersJavaScript for Beginners
JavaScript for Beginners
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Html5 - O futuro da Web
Html5 - O futuro da WebHtml5 - O futuro da Web
Html5 - O futuro da Web
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBA
 
Ruby and Rails intro
Ruby and Rails introRuby and Rails intro
Ruby and Rails intro
 
Introdução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em RailsIntrodução á linguagem Ruby com aplicativo em Rails
Introdução á linguagem Ruby com aplicativo em Rails
 
Javascript para CSharpers 1 - Comparando
Javascript para CSharpers   1 - ComparandoJavascript para CSharpers   1 - Comparando
Javascript para CSharpers 1 - Comparando
 
Swift!.opcionais.oh!.my()?!?
Swift!.opcionais.oh!.my()?!?Swift!.opcionais.oh!.my()?!?
Swift!.opcionais.oh!.my()?!?
 
“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web Hacking“Web Spiders” – Automação para Web Hacking
“Web Spiders” – Automação para Web Hacking
 
Desenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on RailsDesenvolvimento ágil de software com Ruby on Rails
Desenvolvimento ágil de software com Ruby on Rails
 
Floggy-JustJava-2008-09-10
Floggy-JustJava-2008-09-10Floggy-JustJava-2008-09-10
Floggy-JustJava-2008-09-10
 

Destaque

Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)Zeno Rocha
 
How to create high scalable JavaScript apps for Java Portals
How to create high scalable JavaScript apps for Java PortalsHow to create high scalable JavaScript apps for Java Portals
How to create high scalable JavaScript apps for Java PortalsZeno Rocha
 
Desbravando o HTML5 Boilerplate
Desbravando o HTML5 BoilerplateDesbravando o HTML5 Boilerplate
Desbravando o HTML5 BoilerplateZeno Rocha
 
Super Trunfo - Case de Dados Abertos
Super Trunfo - Case de Dados AbertosSuper Trunfo - Case de Dados Abertos
Super Trunfo - Case de Dados AbertosZeno Rocha
 
Javascript Orientado a Objetos - Fisl12
Javascript Orientado a Objetos - Fisl12Javascript Orientado a Objetos - Fisl12
Javascript Orientado a Objetos - Fisl12Emerson Macedo
 
Construindo Projetos Robustos em HTML5
Construindo Projetos Robustos em HTML5Construindo Projetos Robustos em HTML5
Construindo Projetos Robustos em HTML5Zeno Rocha
 
Augmented Reality in JavaScript
Augmented Reality in JavaScriptAugmented Reality in JavaScript
Augmented Reality in JavaScriptZeno Rocha
 
Os mitos do desenvolvimento front-end
Os mitos do desenvolvimento front-endOs mitos do desenvolvimento front-end
Os mitos do desenvolvimento front-endZeno Rocha
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScriptThiago Poiani
 
Web APIs you (probably) didn't know existed
Web APIs you (probably) didn't know existedWeb APIs you (probably) didn't know existed
Web APIs you (probably) didn't know existedZeno Rocha
 
Gamification: Future or Fail?
Gamification: Future or Fail?Gamification: Future or Fail?
Gamification: Future or Fail?Socialphysicist
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Bruno Grange
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptRodrigo Branas
 

Destaque (20)

Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)
 
How to create high scalable JavaScript apps for Java Portals
How to create high scalable JavaScript apps for Java PortalsHow to create high scalable JavaScript apps for Java Portals
How to create high scalable JavaScript apps for Java Portals
 
HTML 5
HTML 5HTML 5
HTML 5
 
Desbravando o HTML5 Boilerplate
Desbravando o HTML5 BoilerplateDesbravando o HTML5 Boilerplate
Desbravando o HTML5 Boilerplate
 
Super Trunfo - Case de Dados Abertos
Super Trunfo - Case de Dados AbertosSuper Trunfo - Case de Dados Abertos
Super Trunfo - Case de Dados Abertos
 
Wordpress
WordpressWordpress
Wordpress
 
Javascript Orientado a Objetos - Fisl12
Javascript Orientado a Objetos - Fisl12Javascript Orientado a Objetos - Fisl12
Javascript Orientado a Objetos - Fisl12
 
Construindo Projetos Robustos em HTML5
Construindo Projetos Robustos em HTML5Construindo Projetos Robustos em HTML5
Construindo Projetos Robustos em HTML5
 
Augmented Reality in JavaScript
Augmented Reality in JavaScriptAugmented Reality in JavaScript
Augmented Reality in JavaScript
 
It's Javascript Time
It's Javascript TimeIt's Javascript Time
It's Javascript Time
 
Aula javascript
Aula  javascriptAula  javascript
Aula javascript
 
Javascript para adultos
Javascript para adultosJavascript para adultos
Javascript para adultos
 
Os mitos do desenvolvimento front-end
Os mitos do desenvolvimento front-endOs mitos do desenvolvimento front-end
Os mitos do desenvolvimento front-end
 
Personal Kanban
Personal KanbanPersonal Kanban
Personal Kanban
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
DOMinando JavaScript
DOMinando JavaScriptDOMinando JavaScript
DOMinando JavaScript
 
Web APIs you (probably) didn't know existed
Web APIs you (probably) didn't know existedWeb APIs you (probably) didn't know existed
Web APIs you (probably) didn't know existed
 
Gamification: Future or Fail?
Gamification: Future or Fail?Gamification: Future or Fail?
Gamification: Future or Fail?
 
Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)Minicurso de JavaScript (Portuguese)
Minicurso de JavaScript (Portuguese)
 
Desvendando a linguagem JavaScript
Desvendando a linguagem JavaScriptDesvendando a linguagem JavaScript
Desvendando a linguagem JavaScript
 

Semelhante a WTF Javascript - FrontInRio 2011

TDC 2014 POA - Clean Code para Testers
TDC 2014 POA - Clean Code para TestersTDC 2014 POA - Clean Code para Testers
TDC 2014 POA - Clean Code para TestersStefan Teixeira
 
Lib.SAPO.JS - Codebits2007
Lib.SAPO.JS  - Codebits2007Lib.SAPO.JS  - Codebits2007
Lib.SAPO.JS - Codebits2007Claudio Gamboa
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyGilson Filho
 
(A06) LabMM3 - JavaScript
(A06) LabMM3 - JavaScript(A06) LabMM3 - JavaScript
(A06) LabMM3 - JavaScriptCarlos Santos
 
Testes Automatizados e o iOS
Testes Automatizados e o iOSTestes Automatizados e o iOS
Testes Automatizados e o iOSRicardo Valeriano
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN StackBruno Catão
 
TypeScript - Campus party 2013
TypeScript - Campus party 2013TypeScript - Campus party 2013
TypeScript - Campus party 2013Giovanni Bassi
 
[Curso Java Básico] Aula 11: Variáveis - Tipos Primitivos
[Curso Java Básico] Aula 11: Variáveis - Tipos Primitivos[Curso Java Básico] Aula 11: Variáveis - Tipos Primitivos
[Curso Java Básico] Aula 11: Variáveis - Tipos PrimitivosLoiane Groner
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nívelIgor Sobreira
 
Flávio Almeida MEAN Stack "to be or not to be mean"
Flávio Almeida MEAN Stack "to be or not to be mean"Flávio Almeida MEAN Stack "to be or not to be mean"
Flávio Almeida MEAN Stack "to be or not to be mean"flaviohalmeida
 
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scopeCarlos Santos
 
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Ricardo Valeriano
 
Curso PHP UNIFACS 2014.1 – 1a Aula
Curso PHP UNIFACS 2014.1 – 1a AulaCurso PHP UNIFACS 2014.1 – 1a Aula
Curso PHP UNIFACS 2014.1 – 1a AulaJonata Weber
 

Semelhante a WTF Javascript - FrontInRio 2011 (20)

TDC 2014 POA - Clean Code para Testers
TDC 2014 POA - Clean Code para TestersTDC 2014 POA - Clean Code para Testers
TDC 2014 POA - Clean Code para Testers
 
Lib.SAPO.JS - Codebits2007
Lib.SAPO.JS  - Codebits2007Lib.SAPO.JS  - Codebits2007
Lib.SAPO.JS - Codebits2007
 
Desenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2pyDesenvolvendo aplicações web com python e web2py
Desenvolvendo aplicações web com python e web2py
 
Insustentavel js
Insustentavel jsInsustentavel js
Insustentavel js
 
(A06) LabMM3 - JavaScript
(A06) LabMM3 - JavaScript(A06) LabMM3 - JavaScript
(A06) LabMM3 - JavaScript
 
Testes Automatizados e o iOS
Testes Automatizados e o iOSTestes Automatizados e o iOS
Testes Automatizados e o iOS
 
Java7 tdc2011
Java7 tdc2011Java7 tdc2011
Java7 tdc2011
 
Introdução à MEAN Stack
Introdução à MEAN StackIntrodução à MEAN Stack
Introdução à MEAN Stack
 
TypeScript - Campus party 2013
TypeScript - Campus party 2013TypeScript - Campus party 2013
TypeScript - Campus party 2013
 
Java script aula 02 - operadores
Java script   aula 02 - operadoresJava script   aula 02 - operadores
Java script aula 02 - operadores
 
[Curso Java Básico] Aula 11: Variáveis - Tipos Primitivos
[Curso Java Básico] Aula 11: Variáveis - Tipos Primitivos[Curso Java Básico] Aula 11: Variáveis - Tipos Primitivos
[Curso Java Básico] Aula 11: Variáveis - Tipos Primitivos
 
Python - Programando em alto nível
Python - Programando em alto nívelPython - Programando em alto nível
Python - Programando em alto nível
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
Flávio Almeida MEAN Stack "to be or not to be mean"
Flávio Almeida MEAN Stack "to be or not to be mean"Flávio Almeida MEAN Stack "to be or not to be mean"
Flávio Almeida MEAN Stack "to be or not to be mean"
 
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope(A11) LabMM3 - JavaScript - Subalgoritmos e scope
(A11) LabMM3 - JavaScript - Subalgoritmos e scope
 
Testing sucks
Testing sucksTesting sucks
Testing sucks
 
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
Qcon SP 2012, 5 (ou mais) coisas que você gostaria de saber sobre o iOS e o O...
 
Vivendo de hacking
Vivendo de hackingVivendo de hacking
Vivendo de hacking
 
Curso PHP UNIFACS 2014.1 – 1a Aula
Curso PHP UNIFACS 2014.1 – 1a AulaCurso PHP UNIFACS 2014.1 – 1a Aula
Curso PHP UNIFACS 2014.1 – 1a Aula
 
Javascript basics
Javascript basicsJavascript basics
Javascript basics
 

Mais de Leonardo Balter

Guia de Sobrevivência JS no mundo Open Source
Guia de Sobrevivência JS no mundo Open SourceGuia de Sobrevivência JS no mundo Open Source
Guia de Sobrevivência JS no mundo Open SourceLeonardo Balter
 
Potencial de Vendas do e-Commerce no Frontend - WOB2012
Potencial de Vendas do e-Commerce no Frontend - WOB2012Potencial de Vendas do e-Commerce no Frontend - WOB2012
Potencial de Vendas do e-Commerce no Frontend - WOB2012Leonardo Balter
 
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open WebNovo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open WebLeonardo Balter
 
Receita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front EndReceita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front EndLeonardo Balter
 
Realize mais com HTML 5 e CSS 3 - EDTED / RS
Realize mais com HTML 5 e CSS 3 - EDTED / RSRealize mais com HTML 5 e CSS 3 - EDTED / RS
Realize mais com HTML 5 e CSS 3 - EDTED / RSLeonardo Balter
 
EDTED BH - HTML 5 e CSS 3 - Julho de 2011
EDTED BH - HTML 5 e CSS 3 - Julho de 2011EDTED BH - HTML 5 e CSS 3 - Julho de 2011
EDTED BH - HTML 5 e CSS 3 - Julho de 2011Leonardo Balter
 
EDTED SP - HTML 5 e CSS 3 - Junho de 2011
EDTED SP - HTML 5 e CSS 3 - Junho de 2011EDTED SP - HTML 5 e CSS 3 - Junho de 2011
EDTED SP - HTML 5 e CSS 3 - Junho de 2011Leonardo Balter
 
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJRealize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJLeonardo Balter
 
HTML 5 - Semana da Computação - UFF
HTML 5 - Semana da Computação - UFFHTML 5 - Semana da Computação - UFF
HTML 5 - Semana da Computação - UFFLeonardo Balter
 

Mais de Leonardo Balter (13)

Unit testing
Unit testingUnit testing
Unit testing
 
GruntJS + Wordpress
GruntJS + WordpressGruntJS + Wordpress
GruntJS + Wordpress
 
Guia de Sobrevivência JS no mundo Open Source
Guia de Sobrevivência JS no mundo Open SourceGuia de Sobrevivência JS no mundo Open Source
Guia de Sobrevivência JS no mundo Open Source
 
Potencial de Vendas do e-Commerce no Frontend - WOB2012
Potencial de Vendas do e-Commerce no Frontend - WOB2012Potencial de Vendas do e-Commerce no Frontend - WOB2012
Potencial de Vendas do e-Commerce no Frontend - WOB2012
 
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open WebNovo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
 
Extreme Web Performance
Extreme Web PerformanceExtreme Web Performance
Extreme Web Performance
 
temp EWP
temp EWPtemp EWP
temp EWP
 
Receita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front EndReceita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front End
 
Realize mais com HTML 5 e CSS 3 - EDTED / RS
Realize mais com HTML 5 e CSS 3 - EDTED / RSRealize mais com HTML 5 e CSS 3 - EDTED / RS
Realize mais com HTML 5 e CSS 3 - EDTED / RS
 
EDTED BH - HTML 5 e CSS 3 - Julho de 2011
EDTED BH - HTML 5 e CSS 3 - Julho de 2011EDTED BH - HTML 5 e CSS 3 - Julho de 2011
EDTED BH - HTML 5 e CSS 3 - Julho de 2011
 
EDTED SP - HTML 5 e CSS 3 - Junho de 2011
EDTED SP - HTML 5 e CSS 3 - Junho de 2011EDTED SP - HTML 5 e CSS 3 - Junho de 2011
EDTED SP - HTML 5 e CSS 3 - Junho de 2011
 
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJRealize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
 
HTML 5 - Semana da Computação - UFF
HTML 5 - Semana da Computação - UFFHTML 5 - Semana da Computação - UFF
HTML 5 - Semana da Computação - UFF
 

Último

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 

Último (8)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 

WTF Javascript - FrontInRio 2011