Upgrade to Pro — share decks privately, control downloads, hide ads and more …

GitHub ¡Presente!

Hernandes
October 27, 2020

GitHub ¡Presente!

Hernandes

October 27, 2020
Tweet

More Decks by Hernandes

Other Decks in Programming

Transcript

  1. fazendo as pazes com projetos legados

    View full-size slide

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

    View full-size slide

  3. Por que devo me preocupar
    com um projeto legado?

    View full-size slide

  4. o que é um projeto legado?

    View full-size slide

  5. Por que devo me preocupar
    com um projeto legado?

    View full-size slide

  6. por que um projeto legado é ruim?

    View full-size slide

  7. código mágico

    View full-size slide

  8. difícil de testar

    View full-size slide

  9. manutenção custa caro

    View full-size slide

  10. ninguém quer mexer

    View full-size slide

  11. e se quebrar?

    View full-size slide

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

    View full-size slide

  13. você sabe como um projeto
    se torna legado?

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  16. 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.

    View full-size slide

  17. 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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  20. 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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  25. 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)

    View full-size slide

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

    View full-size slide

  27. refatorar =/= reescrever o projeto inteiro

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  31. 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.

    View full-size slide

  32. 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

    View full-size slide

  33. 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

    View full-size slide