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
Design Patterns em Ruby
Search
Anna Cruz
September 23, 2016
Programming
0
54
Design Patterns em Ruby
Anna Cruz
September 23, 2016
Tweet
Share
More Decks by Anna Cruz
See All by Anna Cruz
Hora da Aventura! Vamos melhorar o seu código?!?
annacruz
0
99
Patterns pra que te quero
annacruz
2
40
Other Decks in Programming
See All in Programming
Vibe Coding - AI 驅動的軟體開發
mickyp100
0
180
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
280
コマンドとリード間の連携に対する脅威分析フレームワーク
pandayumi
1
470
dchart: charts from deck markup
ajstarks
3
1k
Fluid Templating in TYPO3 14
s2b
0
130
AIエージェント、”どう作るか”で差は出るか? / AI Agents: Does the "How" Make a Difference?
rkaga
4
2k
Raku Raku Notion 20260128
hareyakayuruyaka
0
370
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
630
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
810
ぼくの開発環境2026
yuzneri
0
250
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
150
CSC307 Lecture 08
javiergs
PRO
0
670
Featured
See All Featured
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
180
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
160
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
58
ラッコキーワード サービス紹介資料
rakko
1
2.3M
The Invisible Side of Design
smashingmag
302
51k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
270
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
350
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.7k
Site-Speed That Sticks
csswizardry
13
1.1k
[SF Ruby Conf 2025] Rails X
palkan
1
770
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
460
Transcript
Design Patterns em Ruby @yuizinha
Manter código é algo custoso Uma das tarefas mais custosas
e complicadas no desenvolvimento é manter o código
Escrever bom código é díficil Na real, não é tão
difícil, mas sempre temos uma desculpa para não pensarmos muito nisso
"Qualquer tolo consegue escrever código que um computador entenda. Bons
programadores escrevem código que humanos possam entender" ~ Martin Fowler
Anna "Yui" Cruz
None
None
"Cada padrão descreve um problema no nosso ambiente e o
cerne da sua solução de tal forma que você possa usar essa solução mais de um milhão de vezes, sem nunca fazê-lo da mesma maneira" ~ Christopher Alexander
Gang of Four Erich Gamma Richard Helm Ralph Johnson John
Vlissides
23 padrões Criação Estruturais Comportamentais
No entanto... Ralph Johnson - 12 Core Patterns Peter Norvig
- 16 Padrões mais simples em linguagens dinâmicas
Vamos falar de 3 deles
Observer Uma classe (observador) quer ser avisada quando algo muda
em outra classe (observado)
None
Observador Observado
Observador Observado
Observador Observado
Observador Observado
Observador Observado
Observador Observado
Existem outras maneiras de implementar observer... Inclusive aproveitando-se de blocos
e outras estruturas do ruby Observer
Exemplos de uso em gems conhecidas: - ActiveRecord::Observer - REXML
Observer
O comportamento de um algoritmo precisa ser escolhido no momento
de execução Strategy
None
None
None
None
Exemplos de uso em gems conhecidas: - rdoc Strategy
Um jeito de percorrer os elementos de um objeto sem
precisar expor o tipo desses elementos Iterator
None
Iterador Externo
Iterador Externo
Iterador Interno
Iterador Interno
Iterador Interno
Iterador Interno Essa é a implementação do each que usamos
sempre!!!
Design Patterns Não é como fazer o código
Design Patterns Não resolve todos os problemas
Design Patterns Se usar demais causa mais confusão
Design Patterns Auxílio para solução de problemas já conhecidos
None
Links http://amzn.to/2cWNAr1 http://amzn.to/2dgfaS9 http://amzn.to/2cyTYE4
None