Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Hora da Aventura! Vamos melhorar o seu código?!?
Search
Anna Cruz
October 08, 2016
Programming
100
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Hora da Aventura! Vamos melhorar o seu código?!?
Anna Cruz
October 08, 2016
More Decks by Anna Cruz
See All by Anna Cruz
Design Patterns em Ruby
annacruz
0
56
Patterns pra que te quero
annacruz
2
44
Other Decks in Programming
See All in Programming
SREの越境 / SRE Collaboration
y0hgi
2
310
半永久的に提供し続けられるプライベートクラウドを目指して ― 利用者の認知負荷を抑えるAPI抽象化とハードウェア世代交代の基盤設計
tomokon
0
500
Rでドレミ/Do-Re-Mi_with_R
florets1
0
130
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
17k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
750
[ハンズオン]AIへの指示だけで「五目並べ」を作ってみよう
satoshi256kbyte
1
380
The Rails Doctrine Decade
koic
2
590
AI時代のコードレビューは人に向けるな、仕組みに向けろ
texmeijin
5
3.7k
ActionController meets Protocol Buffers
sorah
0
520
[2026-09-26]空論ジェネリックプロセス~テスト資産とAIで紡ぐ、再現可能なパフォーマンスチューニングの話~
tosite
0
270
見えないものを探る要求要件定義に必要な基本的思考 / invisible-requirement-thinking
minodriven
15
8.5k
dotNET_vulnclicker_intro.pdf
deka_morita
0
140
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Darren the Foodie - Storyboard
khoart
PRO
4
4k
So, you think you're a good person
axbom
PRO
2
2.2k
30 Presentation Tips
portentint
PRO
1
430
The untapped power of vector embeddings
frankvandijk
2
1.9k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Six Lessons from altMBA
skipperchong
29
4.5k
Balancing Empowerment & Direction
lara
6
1.3k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
1
570
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
750
Transcript
Hora da aventura! Vamos melhorar seu código?!? @yuizinha
Anna "Yui" Cruz
None
None
None
O que contribui para um código feio?
Eu quero é terminar rápido!!! O que contribui para um
código feio?
Eu quero é terminar rápido!!! Todo mundo faz assim!!! O
que contribui para um código feio?
Eu quero é terminar rápido!!! Tenho que começar a fazer
agora!!! Depois refatoro! Todo mundo faz assim!!! O que contribui para um código feio?
Eu quero é terminar rápido!!! Pra que fazer direito? Tô
de saco cheio desse projeto já! Tenho que começar a fazer agora!!! Depois refatoro! Todo mundo faz assim!!! O que contribui para um código feio?
Eu quero é terminar rápido!!! Pra que fazer direito? Tô
de saco cheio desse projeto já! Tenho que começar a fazer agora!!! Depois refatoro! Todo mundo faz assim!!! Tá tudo pronto, só falta testar! O que contribui para um código feio?
Porque o código continua feio?
Porque o código continua feio? • Desenvolvedores experientes saem do
projeto
Porque o código continua feio? • Desenvolvedores experientes saem do
projeto • Novos desenvolvedores entram no projeto e tem medo de modificar algo
Porque o código continua feio? • Desenvolvedores experientes saem do
projeto • Novos desenvolvedores entram no projeto e tem medo de modificar algo • Mito de que demora muito mais tempo
Oh não!?!?! O que podemos fazer então?
None
Comentários!
None
None
Código auto-explicativo Use comentários com calma, pense se são realmente
necessários
Use Test Driven Development
TDD Pequenas porções de código
TDD Desenvolva apenas o necessário
TDD Refatoração sem medo
TDD RED GREEN REFACTOR
S O L I D ingle Responsibility pen-Closed iskov Substitution
nterface Segregation ependency Inversion
None
None
None
None
Single Responsibility Uma classe/método, uma responsabilidade
Single Responsibility Classes e métodos pequenos e coesos
Single Responsibility Mais fácil de manter
None
Open-closed Classes abertas para extender
Open-closed Classes fechadas para modificação
Open-closed Diminui o acoplamento entre as classes
None
Barbara Liskov Cientóloga da computação Professora do MIT Criadora da
linguagem CLU Vencedora do Prêmio Turing Diversos artigos acadêmicos
Liskov substituition Uma classe pode ser substituida por uma subclasse
Liskov substituition Manutenção de contrato entre classes
Liskov substituition Diminui o acoplamento, melhora o reaproveitamento
None
Interface segregation Interfaces especializadas
Interface segregation Interfaces sem conter métodos desnecessários
Interface segregation Gerar interfaces pequenas e coesas
None
Dependency inversion Abstrações não devem depender de detalhes
Dependency inversion Classes de alto nível não devem depender de
classes de baixo nível
Dependency inversion Um problema, uma classe
Dependency inversion Mais flexibilidade para "troca" de dependências
None
None
Links http://amzn.to/2dRdlaf http://bit.ly/2dYKQb7 http://amzn.to/2dTFthn
[email protected]
[email protected]
@yuizinha annacruz.github.io