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

A Divina Comédia de um Código Legado: Indo do Inferno ao Paraíso com Elixir

A Divina Comédia de um Código Legado: Indo do Inferno ao Paraíso com Elixir

Palestra apresentada na Elixir Brasil 2019, sobre um processo de reestruturação e evolução de Projetos Legados.

JulianaHelena5

May 26, 2019
Tweet

Transcript

  1. AGENDA INFERNO - Código Legado - Refatoração - Cenário anterior

    PURGATÓRIO - Preparação e migração - Cultura PARAÍSO - E agora? Como manter? * Bônus: Considerações Finais
  2. “ Code without tests is bad code. It doesn’t matter

    how well written it is; it doesn’t matter how pretty or object-oriented or well-encapsulated it is. With tests, we can change the behavior or our code quickly and verifiably. Without them, we really don’t know if our code is getting better or worse.”
  3. Código legado também é o código que você acabou de

    escrever Porém: Já parou para pensar sobre a qualidade do legado que está deixando?
  4. Refatorar Quando Refazer não é uma opção - Começar com

    pequenas mudanças - Qualidade em Todo novo Código - Planejamento: Pagamento de Dívida Técnica
  5. Por onde começar? Maiores indícios de code smell - Fowler:

    Still one of the biggest ones for me is duplication. Spotting duplicate code and figuring out how to remove it often leads me to an improved design. Like anything, it can be overdone, but also like most things, it usually isn't done enough. - - Kent Beck: Since Martin already picked duplication I'll choose complex conditional logic. When I see an if statement inside a for loop inside an if statement, I am immediately suspicious that there is a case that hasn't been considered. A slightly more abstract smell I look for is violations of Composed Method, which states that all the operations in a function should be at the same level of abstraction. For example, if I see a bunch of bit twiddling operations in the same function with calls to other functions, I'm pretty sure there is a better way to express the computation. https://www.infoq.com/articles/book-review-refactoring-second-edition/
  6. E se não for Top -> Down - Tentar fazer

    a pessoa ver a luz. Vem cá um minutinho ver a importância de Qualidade de código, por favor?
  7. Evangelizar sobre Qualidade Você teria um minuto Para falar sobre

    Qualidade de Software? - Escalabilidade - Menor custo de Correção E se de Tudo não funcionar: - Comece pequeno - Mostre seus resultados - Se der: Mude de emprego (Fit Cultural)
  8. Cenário anterior - Internal Tools - (SP/BH) - Várias aplicações

    antigas e difíceis de escalar - Falta de Cultura focada em Qualidade de Código - Falhas de Comunicação - Falta de Processos (Incêndios) - Conhecimento Centralizado - Documentação -- Ragnarok Delfos Tesseract Brain
  9. Rede de aplicações dependentes e sem Testes ou Informações precisas

    sobre o Funcionamento Não tínhamos segurança para realizar alterações - suavizado pelo conhecimento da galera Resumo
  10. Rede de aplicações dependentes e sem Testes ou Informações precisas

    sobre o Funcionamento Não tínhamos segurança para realizar alterações - suavizado pelo conhecimento da galera Até aí, tudo bem Resumo
  11. News: Reestruturação de Equipes na empresa - Todos os Legados

    foram colocados como responsabilidade de BH - Pessoas com maior "Know-How" foram para outros Times
  12. Migração: Pilares - Transferir Conhecimento de Código não Documentado -

    Conseguir manter o Funcionamento das Aplicações - Reestruturar os Times
  13. Processo - Pré Migração - Definição de uma Equipe de

    Migração: pessoas de outros squads - Divisão dos Projetos entre as Pessoas - Criação de Documentação e Aprendizado sobre Projeto - Entender os processos - (Roda um Script aí…) - Reuniões para Compartilhamento de Conhecimento/Tirar dúvidas
  14. A Divina Comédia de um código Legado Indo do Inferno

    ao Paraíso Com Elixir Migração de Fato
  15. Pós Migração - Criação dos Squads - As pessoas ajudantes

    voltaram para seus squads normais - Manter o funcionamento dos legados estável - Começo do processo de Reestruturação - Criação de novas aplicações
  16. Escolha de Tecnologia: Elixir, who? Segundo Bilu: - Resolver problemas

    de Concorrência - Temos vários cases de sucesso dentro da própria empresa com Elixir. O primeiro deles Saraiva Aprova - Segunda Fase e os demais Jeyloo e Campus Lab, todas com ótimo desempenho até hoje. - Background da Equipe - É funcional
  17. Próximos passos - Evoluir as Novas aplicações - Manter os

    Legados estáveis com o mínimo de intervenção possível - Até chegar o momento em que...
  18. A maior parte dos Legados morra - Processo bem estruturado

    - Qualidade - Códigos Escaláveis E chegamos no?...
  19. 1:1 - Gestor, Líder Técnico, etc - Feedbacks precisos -

    Erre rápido, corrija rápido - Mentoria
  20. Processos bem definidos - Cerimônias bem feitas - Tarefas bem

    descritas - Prioridades estabelecidas e respeitadas - Sprints sem incêndios
  21. Considerações Finais 1/3 Conclusões - Não existe bala de prata

    - Depende do Projeto e Tipo de Gestão - Tentar criar uma Cultura focada em Qualidade - Evoluir junto com o Time
  22. Considerações Finais 2/3 Incentive sua comunidade local! Como apoiar: *

    Palestrar * Fornecer espaço físico/coffee * Mentorar * Open source
  23. Considerações Finais 3/3 Incentive mulheres, pessoas negras, pessoas LGBTQI+, pessoas

    Trans e pessoas com deficiência no seu time, empresa e na Comunidade.
  24. Considerações Finais 3/3 Incentive mulheres, pessoas negras, pessoas LGBTQI+, pessoas

    Trans e pessoas com deficiência no seu time, empresa e na Comunidade. Empresas/RH: invistam em formação e busca ativa!!
  25. Considerações Finais 3/3 Incentive mulheres, pessoas negras, pessoas LGBTQI+, pessoas

    Trans e pessoas com deficiência no seu time, empresa e na Comunidade. #DeixaElaFalar Empresas/RH: invistam em formação e busca ativa!!
  26. Considerações Finais 3/3 Incentive mulheres, pessoas negras, pessoas LGBTQI+, pessoas

    Trans e pessoas com deficiência no seu time, empresa e na Comunidade. #DeixaElaFalar bit.ly/culturadediversidade Empresas/RH: invistam em formação e busca ativa!!
  27. Nem Todo mundo teve as mesmas oportunidades Para as pessoas

    babacas eu desejo... Resumo: Não seja uma pessoa babaca...
  28. Um Inferno de Código Legado Sem Teste Sem Qualidade Sem

    Comunicação Sem Compartilhamento Sem Elixir Extremamente acoplado