Slide 1

Slide 1 text

fazendo as pazes com projetos legados

Slide 2

Slide 2 text

hernandes Instrutor @ Alura org @BackEndBrasil github, twitter: @onhernandes

Slide 3

Slide 3 text

Por que devo me preocupar com um projeto legado?

Slide 4

Slide 4 text

o que é um projeto legado?

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Por que devo me preocupar com um projeto legado?

Slide 7

Slide 7 text

por que um projeto legado é ruim?

Slide 8

Slide 8 text

bugs

Slide 9

Slide 9 text

código mágico

Slide 10

Slide 10 text

difícil de testar

Slide 11

Slide 11 text

manutenção custa caro

Slide 12

Slide 12 text

ninguém quer mexer

Slide 13

Slide 13 text

e se quebrar?

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

“Não preciso me preocupar! Nunca vou deixar meu projeto chegar a esse ponto. Nunca vai acontecer!”

Slide 16

Slide 16 text

você sabe como um projeto se torna legado?

Slide 17

Slide 17 text

possíveis causas: - curto prazo de entrega - preguiça - copiar & colar do StackOverflow - falta de padronização

Slide 18

Slide 18 text

ok, e agora, o que eu faço? como resolver? desenvolvo a v2? desisto de programar? mudo de área?

Slide 19

Slide 19 text

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.

Slide 20

Slide 20 text

todo código carrega uma história, opiniões e algumas noites de dormir de alguém. tome muito cuidado antes de apagar qualquer coisa

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

ok, e agora, o que eu faço?

Slide 23

Slide 23 text

todo código se torna legado em algum momento, mas há formas de atrasar isso e garantir a qualidade do código.

Slide 24

Slide 24 text

estabeleça padrões, começando pelo versionamento usa git? procure fluxos simples e eficazes, invente o seu próprio fluxo, conheça o gitflow

Slide 25

Slide 25 text

conheça as boas práticas da linguagem do projeto

Slide 26

Slide 26 text

use guias de estilo para padronizar o código, procure ferramentas como linters & fixers para auxiliar

Slide 27

Slide 27 text

automatizar ajuda, mas tome cuidado, porque você pode cair nesse problema:

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

testes podem ser chatos na maior parte do tempo, mas são fundamentais, principalmente quando é difícil escrevê-los

Slide 30

Slide 30 text

sempre que possível, refatore o código. uma função, uma variável, uma condicional refatoração traz valor (para o código, e R$ para a empresa/produto)

Slide 31

Slide 31 text

refatoração é o processo de alterar o código que já existe sem mudar seu comportamento externo - wikipedia

Slide 32

Slide 32 text

refatorar =/= reescrever o projeto inteiro

Slide 33

Slide 33 text

EVITE PROGRAMAÇÃO ORIENTADA A GAMBIARRA entenda o código que você usa do StackOverflow

Slide 34

Slide 34 text

documente o código para novas pessoas no projeto documente o código para você de amanhã

Slide 35

Slide 35 text

revise e leia código de outras pessoas leia o código fonte das bibliotecas que você usa

Slide 36

Slide 36 text

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.

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

resumo: - boas práticas da linguagem, framework, 12factor App - estabeleça padrões de código - crie fluxos (git flow, por ex) - conheça o código das pessoas ao seu redor - escreva testes - documente o código - refatore sempre - beba água

Slide 39

Slide 39 text

fim