Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
padrões JavaScript
Search
rodrigo brancher
October 20, 2012
Programming
400
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
padrões JavaScript
slides apresentados no guru sorocaba, 20/10/2012.
rodrigo brancher
October 20, 2012
Other Decks in Programming
See All in Programming
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
540
Datadog × OpenTelemetry 入門と実践のあいだ
kn_to_maxpno
1
160
JavaDoc 再入門
nagise
1
350
The NotImplementedError Problem in Ruby
koic
1
790
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
620
スマートグラスで並列バイブコーディング
hyshu
0
140
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
160
生成AI時代にこそ効くGo | Why Go Works in the Age of Generative AI
mom0tomo
8
3.2k
net-httpのHTTP/2対応について
naruse
0
480
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
180
Agentic UI
manfredsteyer
PRO
0
160
技術記事、 専門家としてのプログラマ、 言語化
mizchi
13
5.9k
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
528
40k
RailsConf 2023
tenderlove
30
1.5k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
590
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
The untapped power of vector embeddings
frankvandijk
2
1.8k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
200
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
160
4 Signs Your Business is Dying
shpigford
187
22k
How to Ace a Technical Interview
jacobian
281
24k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Prompt Engineering for Job Search
mfonobong
0
340
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
Transcript
padrões javascript na prática @ guru-sorocaba 20/10/2012
eu rodrigo brancher
[email protected]
@rbrancher nu nudesign.com.br facebook.com/aquinanu
de algum jeito, todo mundo “sabe” javascript.
um jeito, to o “sabe” jav
um jeito, to o “sabe” jav mas sabe mesmo?
macarrão não é javascript…
javascript precisa de estrutura
padrões
padrões são formas standard de resolver problemas recorrentes
padrões são formas standard de resolver problemas recorrentes ajudam a
escrever código melhor
padrões são formas standard de resolver problemas recorrentes ajudam a
escrever código melhor permitem construir abstrações, reduzindo a complexidade
javascript basics
javascript basics orientado a objetos
javascript basics orientado a objetos sem classes
javascript basics orientado a objetos sem classes tipagem “fraca”
javascript basics orientado a objetos sem classes tipagem “fraca” prototypes
reduzindo as variáveis globais
no javascript, função define escopo
definindo um escopo local
definindo um escopo local
modificando o escopo global no escopo local
modificando o escopo global no escopo local
sempre utilizar var para declarar variáveis no escopo local
hoisting…
hoisting…
single var pattern
None
agrupar todas as declarações de variáveis locais em um único
var, no início da função
entendendo as funções no javascript
declaração
expressão (ou função anônima)
expressão nomeada
None
callbacks
“don’t call us, we’ll call you” escuta de eventos timeouts
extensão de outras funções
None
None
funções imediatas
( ) executam os objetos função
execução “manual”
execução imediata
execução imediata com parâmetros
objetos de configuração
funções com muitos parâmetros não são muito práticas
utilizando um objeto para passar os parâmetros
passando o objeto diretamente
declarando objetos literais x construtores
definindo com um construtor built-in definindo com um literal
definindo construtores customizados
adicionando métodos utilizando o prototype
let’s talk…
namespace
aplicações complexas tem muitos objetos
entulhando o escopo global com 4 objetos…
quanto menos objetos no escopo global, melhor
reduzindo para apenas um!
organiza o código de aplicações MVC seguindo o namespace pattern
http://github.com/fnando/ dispatcher-js dispatcher-js
um exemplo real
closures definindo propriedades e métodos privados
definindo privacidade em objetos construtores
None
definindo privacidade em objetos literais
None
melhorando a implementação com uma função imediata
encadeamento de métodos
None
vamos ver alguns casos reais
jquery- boilerplate https://github.com/zenorocha/ jquery-boilerplate
dispatcher-js https://github.com/fnando/ dispatcher-js
modernizr https://github.com/modernizr/ modernizr
algumas referências
javascript patterns de stoyan stefanov pela o’reilly javascript: the good
parts de douglas crockford pela o’reilly
http:// developer. mozzila.org mdn
obrigado!