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
Fazendo as pazes com código legado - Frontend S...
Search
Hernandes
January 30, 2020
Technology
0
190
Fazendo as pazes com código legado - Frontend SP Meetup
Hernandes
January 30, 2020
Tweet
Share
More Decks by Hernandes
See All by Hernandes
GitHub ¡Presente!
onhernandes
0
28
Cuidando do seu código
onhernandes
0
20
Processamento de filas com JS + Serverless + Google Cloud
onhernandes
0
38
fazendo as pazes com projetos legados
onhernandes
0
63
criando sua carreira sem recursos e sem apoio na visão de um periférico
onhernandes
0
51
Other Decks in Technology
See All in Technology
YAPC::Hakodateの映像記録を支える技術
godan
4
210
Oracle GoldenGate 23ai 導入Tips
oracle4engineer
PRO
1
260
【shownet.conf_】ShowNet 2024 ~ Inter * Network ~
shownet
PRO
0
490
Product Utilization of Large Language Models Starting Today
ymatsuwitter
3
1.3k
C# 13 / .NET 9 の新機能 (RC 1 時点)
nenonaninu
1
1.3k
TypeScript x Raycast x AIで変える開発者体験
nagauta
0
160
【shownet.conf_】ShowNet伝送改めShowNet APN 2024
shownet
PRO
0
420
Assisted reorganization of data structures
ennael
PRO
0
250
分析者起点の企画を成功させた連携面の工夫
lycorptech_jp
PRO
1
250
【shownet.conf_】クロージングセッション
shownet
PRO
0
290
小さな勉強会の始め方、広げ方、あるいは友達の作り方 / How to Start, Grow, and Build Connections with Small Study Groups
ar_tama
6
2.4k
Efficient zero-copy networking using io_uring
ennael
PRO
0
330
Featured
See All Featured
The Invisible Customer
myddelton
119
13k
A Modern Web Designer's Workflow
chriscoyier
692
190k
Scaling GitHub
holman
458
140k
A Philosophy of Restraint
colly
202
16k
From Idea to $5000 a Month in 5 Months
shpigford
380
46k
Designing Experiences People Love
moore
138
23k
Designing the Hi-DPI Web
ddemaree
279
34k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
Teambox: Starting and Learning
jrom
131
8.7k
[RailsConf 2023] Rails as a piece of cake
palkan
49
4.7k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
110
6.9k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
Transcript
fazendo as pazes com projetos legados
hernandes eng de software - líder técnico @ Binds.co org
@BackEndBrasil podcaster @QuebraDev @onhernandes | hernandes.io
None
o que é um projeto legado?
None
como um projeto se torna legado?
possíveis causas:
possíveis causas: - curto prazo de entrega
possíveis causas: - curto prazo de entrega - preguiça
possíveis causas: - curto prazo de entrega - preguiça -
copiar & colar do StackOverflow
por que um projeto legado é ruim?
bugs
código mágico
difícil de testar
manutenção custa caro
ninguém quer mexer
e se quebrar?
ok, e agora, o que eu faço? como resolver? desenvolvo
a v2?
a menos que o produto tenha uma mudança drástica no
negócio e/ou a tecnologia usada esteja obsoleta, uma reescrita completa não mudará nada.
isso porque vamos cair nesse problema:
None
todo código carrega uma história, opiniões e algumas noites de
dormir de alguém.
refatoração
refatoração é o processo de alterar o código que já
existe sem mudar seu comportamento externo - wikipedia
refatorar =/= reescrever o projeto inteiro
todo código se torna legado em algum momento, mas há
formas de atrasar isso e garantir a qualidade do código.
estabeleça regras, normas, fluxos, etc - versionamento, boas práticas, modularização,
testes, guias de estilo de código, automatizações, documentação, testes
EVITE PROGRAMAÇÃO ORIENTADA A GAMBIARRA evite que código novo se
torne uma cópia do código legado
crie rotinas de refatoração. refatorar um trecho de código traz
valor (R$ pra empresa também) assim como qualquer outra feature ou bugfix
evite programação orientada a gambiarra
convencer a empresa (gerente de produto, CTO, etc) de que
refatoração é necessário, é a parte mais difícil. converse com as pessoas que trabalham com você para te ajudar nisso.
além de tudo, precisamos colocar comida na mesa, mas também
manter a sanidade mental. se onde está não aceitam um projeto de melhoria, caso possível, procure outro emprego
estude boas práticas da sua linguagem/framework
fim