léo balter: javascript idiomático
DESCRIPTION
7Masters JavaScript | Léo BalterTRANSCRIPT
JS Idiomático,Convenções ePolêmicas.Leo Balter
(@leobalter)
2013-09-25
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
1 de 26 27/09/13 01:05
Maiordificuldade daprogramação
"There are only two hardthings in ComputerScience: cacheinvalidation and namingthings."
— Phil Karlton
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
2 de 26 27/09/13 01:05
Na vida real
"There are only two hardthings in ComputerScience: cacheinvalidation, namingthings, and off-by-oneerrors". *
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
3 de 26 27/09/13 01:05
you give vars a badname.#bonjoviprogramming
— @leobalter
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
4 de 26 27/09/13 01:05
JavaScript deformaConsistente eIdiomática
var foo = "";
var bar = "";
var qux;
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
5 de 26 27/09/13 01:05
var foo = "",
bar = "",
qux;
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
6 de 26 27/09/13 01:05
var foo = ""
var bar = ""
var qux
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
7 de 26 27/09/13 01:05
Códigoconsistente econsciente
var foo = ""
bar = ""
qux
bar será tratado comoglobal e qux vai darerro de referência sefor undefined.
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
8 de 26 27/09/13 01:05
Law of codestyleconsistency
"Todo código emqualquer aplicaçãodeve parecer como setivesse sido escrito poruma única pessoa,independentemente dequantas pessoastenham contribuído."
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
9 de 26 27/09/13 01:05
Assim que vocêassume o estilo de umcódigo ele deve setornar lei e todosdevem seguir o mesmoestilo.
"Argumentos além doestilo são inúteis. Devehaver um guia deestilo, e você devesegui-lo". RebeccaMurphey
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
10 de 26 27/09/13 01:05
O que deve terem um guia deestilo de JS?
Whitespace
Sintaxe bonita
Nomeação de objetos
Comentários
Idiomas
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
11 de 26 27/09/13 01:05
Padrões de projeto
...
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
12 de 26 27/09/13 01:05
Whitespace
Tabs ou espaços?
Identação de quantosespaços?
linebreaks
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
13 de 26 27/09/13 01:05
Sintaxeelegante
Quem curte o ASI?
Áspas simples ouduplas?
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
14 de 26 27/09/13 01:05
Nomeação deobjetos
function q(s) {
return document.querySelectorAll(s);
}
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
15 de 26 27/09/13 01:05
function query( selector ) {
return document.querySelectorAll( selector )
}
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
16 de 26 27/09/13 01:05
Comentários
// retorna elementos de acordo com o seletor p
function query( selector ) {
return document.querySelectorAll( selector )
}
function query( selector ) {
return document.querySelectorAll( selector )
}
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
17 de 26 27/09/13 01:05
Idiomas
// renvoie les éléments en fonction de la dern
function requete( selector ) {
return document.querySelectorAll( selector )
}
Se você entendeFrancês e Inglês,parabéns.
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
18 de 26 27/09/13 01:05
Padrões deProjeto
Classes
Paradigmas(programaçãofuncional)
etc
(function( global ) {
var Module = (function() {
var data = "secret";
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
19 de 26 27/09/13 01:05
return {
getData: function() {
return data;
},
setData: function( value ) {
return ( data = value );
}
};
})();
global.Module = Module;
})( this );
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
20 de 26 27/09/13 01:05
Ferramentas
Plato, JSHint, JSPerf,JSBin
Grunt, Yeoman,Bower
QUnit, Jasmine,Mocha
Exemplo: "Comocontribuir com umprojeto".
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
21 de 26 27/09/13 01:05
Qual o melhorguia de estilosde JS?
Nenhum.
Não há bala de prata.O melhor estilo é o quea sua equipe melhor seadapta. A flexibilidadedo JS deve ser usada aoseu favor.
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
22 de 26 27/09/13 01:05
Não tente estabeleceruma única forma paraoutros projetos quenão são seus. Temosmindset diferentes.
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
23 de 26 27/09/13 01:05
JS Style Guides
Idiomatic.js
jQuery
Airbnb
Se não quiser seguiralgum, crie um pra seuprojeto e torne elemandatório.
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
24 de 26 27/09/13 01:05
Obrigado!
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
25 de 26 27/09/13 01:05
JS Idiomático, Convenções e Polêmicas. http://jsbin.com/iGuyixo/7
26 de 26 27/09/13 01:05