Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The Evils of Duplication
Search
Daniel Libanori
July 12, 2013
Programming
3
110
The Evils of Duplication
Rails colocou o termo DRY na boca do desenvolvedores, mas DRY vai além do que sabemos!
Daniel Libanori
July 12, 2013
Tweet
Share
More Decks by Daniel Libanori
See All by Daniel Libanori
SLA 99,99 - RubyConf 2022
dlibanori
0
74
Feature Toggles e suas categorias
dlibanori
0
110
PostgreSQL MVCC Internals
dlibanori
1
90
OWASP: O que ler
dlibanori
0
22
Git Internals II
dlibanori
0
48
Git Internals I
dlibanori
0
26
Introdução ao systemd
dlibanori
0
160
Other Decks in Programming
See All in Programming
Integrating WordPress and Symfony
alexandresalome
0
160
FluorTracer / RayTracingCamp11
kugimasa
0
240
MAP, Jigsaw, Code Golf 振り返り会 by 関東Kaggler会|Jigsaw 15th Solution
hasibirok0
0
250
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
530
Microservices rules: What good looks like
cer
PRO
0
1.5k
バックエンドエンジニアによる Amebaブログ K8s 基盤への CronJobの導入・運用経験
sunabig
0
160
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.3k
AI時代を生き抜く 新卒エンジニアの生きる道
coconala_engineer
1
330
俺流レスポンシブコーディング 2025
tak_dcxi
14
8.9k
Rubyで鍛える仕組み化プロヂュース力
muryoimpl
0
140
ViewファーストなRailsアプリ開発のたのしさ
sugiwe
0
500
実はマルチモーダルだった。ブラウザの組み込みAI🧠でWebの未来を感じてみよう #jsfes #gemini
n0bisuke2
3
1.2k
Featured
See All Featured
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
83
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
63
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
2
59
Getting science done with accelerated Python computing platforms
jacobtomlinson
0
71
Designing for humans not robots
tammielis
254
26k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Between Models and Reality
mayunak
0
130
Side Projects
sachag
455
43k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
60
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
0
1.7k
GitHub's CSS Performance
jonrohan
1032
470k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
115
91k
Transcript
The Evils of Duplication DRY Approach
- Programador - Java até final 2005 - Ruby desde
final de 2005 - Clicksign Daniel Libanori
1999
Bug do milênio RFC 2616: HTTP 1.1 Primeiro BlackBerry Ruby
1.4 e claro...
None
None
DON’T REPEAT YOURSELF
DRY?! DRY?!
2005
None
Convention over Configuration Eliminação das amadas rotas em XML ActiveRecord
gera boa parte do SQL Migrations Geradores de código
Agora todo mundo sabe DRY!!!
Não!
2015
Agora todo mundo sabe DRY?!
Não!
THE EVILS OF DUPLICATION
Duplicação Duplicação Duplicação Duplicação Duplicação Duplicação Duplicação Duplicação Duplicação
Definição Uma sequência de “código” que ocorre mais de uma
vez em um “programa”.
O que é um “Código” • código • testes unitários
e de integração • tarefas • deploy • ambiente de desenvolvimento • documentação
Tipos de duplicação • Imposta • Inadvertida • Impaciente •
Interpessoal
None
Duplicação Imposta
Duplicação Imposta • múltiplas representações • documentação no código •
documentação e código • aspectos da linguagem
Múltiplas representações • client-side e server-side • sitemap • issues
• mocks
Documentação no código “Um bom código é comentado” vs. “Código
ruim requer comentários”
Documentação no código
Documentação e código 1.Você codifica 2.Você documenta 3.O projeto atrasa
4.Você codifica correndo 5.Você não atualiza a documentação!
None
Documentação e código Nenhuma documentação é melhor que documentação ruim,
ou pior, errada.
Documentação e código • Código é um documento • claro
• simples • representativo • Documentar faz parte da codificação • Geradores de documentação
Aspectos da linguagem • Ruby ajuda • Ruby ajuda MUITO
• Mas também tem seus problemas...
Aspectos da linguagem Ruby Coffee
Duplicação inadvertida
Duplicação inadvertida 1 2 3 4
Duplicação impaciente
None
Região destinada a programadores que utilizam copy/paste Inferno segundo Dante
Duplicação interpessoal
Duplicação interpessoal • daily meeting • code review • flay
• codeclimate
DRY Toda “peça de conhecimento” deve possuir uma única representação
dentro de um sistema.
Agora eu sei DRY!
The End
Surprise!
WET • artes • aviação • ciência • infra-estrutura
• Dave Thomas e Andrew Hunt • Gremlins • Anderson
Leonardo Agradecimentos
@dlibanori github.com/dlibanori
[email protected]
Daniel Libanori