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
Hora da Aventura! Vamos melhorar o seu código?!?
Search
Anna Cruz
October 08, 2016
Programming
0
99
Hora da Aventura! Vamos melhorar o seu código?!?
Anna Cruz
October 08, 2016
Tweet
Share
More Decks by Anna Cruz
See All by Anna Cruz
Design Patterns em Ruby
annacruz
0
54
Patterns pra que te quero
annacruz
2
40
Other Decks in Programming
See All in Programming
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
310
16年目のピクシブ百科事典を支える最新の技術基盤 / The Modern Tech Stack Powering Pixiv Encyclopedia in its 16th Year
ahuglajbclajep
5
1.1k
CSC307 Lecture 03
javiergs
PRO
1
490
生成AIを活用したソフトウェア開発ライフサイクル変革の現在値
hiroyukimori
PRO
0
110
登壇資料を作る時に意識していること #登壇資料_findy
konifar
4
1.7k
Oxlint JS plugins
kazupon
1
1k
NetBSD+Raspberry Piで 本物のPSGを鳴らすデモを OSC駆動の7日間で作った話 / OSC2026Osaka
tsutsui
1
100
JPUG勉強会 OSSデータベースの内部構造を理解しよう
oga5
1
110
15年続くIoTサービスのSREエンジニアが挑む分散トレーシング導入
melonps
2
230
フロントエンド開発の勘所 -複数事業を経験して見えた判断軸の違い-
heimusu
7
2.8k
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
180
AgentCoreとHuman in the Loop
har1101
5
250
Featured
See All Featured
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
150
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.2k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
330
Unsuck your backbone
ammeep
671
58k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
230
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
740
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
190
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.2k
Designing for humans not robots
tammielis
254
26k
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