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

Simplificando SOLID com o universo Star Wars

Simplificando SOLID com o universo Star Wars

Provavelmente você já ouviu falar de SOLID: um conjunto de princípios que definem boas práticas para se ter um código limpo, de fácil entendimento, manutenção e extensão. Mas, como lembrar dele na hora H? É aí que o universo do Star Wars entra! Vamos desmistificar cada princípio de forma ilustrativa e prática, unindo duas coisas que somos apaixonados: mundo geek e programação.

Apresentado em: 26 de Agosto de 2021, no TDC Transformation na trilha de Design de Código e XP.

Mônica Ribeiro

August 27, 2021
Tweet

More Decks by Mônica Ribeiro

Other Decks in Programming

Transcript

  1. 01 Sobre mim 02 SOLID: uma nova esperança EPISÓDIO IV

    03 O Despertar da Força EPISÓDIO VII: 04 Os Últimos Jedi EPISÓDIO VIII
  2. Sobre mim linktr.ee/monicaintech Mônica Ribeiro Dev Backend @ Zup IT

    Simplificando SOLID com o universo Star Wars
  3. SOLID: uma nova esperança Simplificando SOLID com o universo Star

    Wars O que é SOLID? Esses princípios estabelecem práticas que contribuem para o desenvolvimento de software com considerações de manutenção e extensão à medida que o projeto cresce. A adoção dessas práticas também pode contribuir para evitar code smells, refatoração de código e desenvolvimento de software ágil ou adaptativo.
  4. Eu sou um motorista, um professor e um ciclista. O

    Despertar da Força Simplificando SOLID com o universo Star Wars Uma classe* deve ter apenas uma responsabilidade
  5. O Despertar da Força Simplificando SOLID com o universo Star

    Wars Eu sou um motorista Eu sou um motorista Eu sou um professor Eu sou um motorista Eu sou um ciclista
  6. O Despertar da Força Simplificando SOLID com o universo Star

    Wars Uma classe* deve ter apenas ter um propósito.
  7. Eu posso desenhar! O Despertar da Força Simplificando SOLID com

    o universo Star Wars Uma classe* deve ser aberta para extensão, mas fechada para modificação.
  8. O Despertar da Força Simplificando SOLID com o universo Star

    Wars Eu posso desenhar. Agora, eu posso escrever. Não é uma boa prática
  9. O Despertar da Força Simplificando SOLID com o universo Star

    Wars Eu posso desenhar. Agora, eu posso desenhar e escrever. A melhor abordagem seria
  10. O Despertar da Força Simplificando SOLID com o universo Star

    Wars Isso evita causar bugs onde quer que a habilidade de desenho já esteja sendo usada.
  11. Barbara Liskov, a responsável por este princípio O Despertar da

    Força Simplificando SOLID com o universo Star Wars
  12. O Despertar da Força Simplificando SOLID com o universo Star

    Wars Este princípio visa reforçar a consistência para que a classe pai ou sua classe filha possam ser usadas da mesma maneira sem erros. Oi, sou o R2-D2, faço cafés Oi, sou X. Filho do R2- D2.
  13. Aqui está seu café! R2-D2, me faz um café, por

    favor? Obrigada! :) O Despertar da Força Simplificando SOLID com o universo Star Wars
  14. O Despertar da Força Simplificando SOLID com o universo Star

    Wars Não faço café. Aqui um chá! Ei, X. Seu pai não está aqui. Me faz um café, por favor? WHAT?
  15. O Despertar da Força Simplificando SOLID com o universo Star

    Wars Ei, X. Seu pai não está aqui. Me faz um café, por favor? obrigada! Claro. Aqui está seu capuccino
  16. O Despertar da Força Simplificando SOLID com o universo Star

    Wars Os clientes não devem ser forçados a depender de métodos que não usam.
  17. O Despertar da Força Simplificando SOLID com o universo Star

    Wars EXERCÍCIOS Todos Robôs - Girar - Rodar braços - Encaixar peça de lego Ué, não tenho legos
  18. O Despertar da Força Simplificando SOLID com o universo Star

    Wars EXERCÍCIOS Robôs que giram Robôs que rodam braços Robôs de Legos - Girar Ótimo! - Rodar Braços - Encaixar Lego
  19. O Despertar da Força Simplificando SOLID com o universo Star

    Wars Dependa de abstrações e não de implementações. Vou colocar na pizza qualquer molho que queiram Vou colocar maionese na pizza
  20. O Despertar da Força Simplificando SOLID com o universo Star

    Wars Abstração: representa uma interface que conecta várias classes que a implementam. Por exemplo, ao invés de colocarMolhoNaPizza(Maionese maionese); utilizar: colocarMolhoNaPizza(Molho molho);
  21. Os Últimos Jedi Simplificando SOLID com o universo Star Wars

    Sugestões de conteúdos SOLID Principles: melhorando o design do seu código https://www.zup.com.br/blog/design-principle-solid The S.O.L.I.D Principles in Pictures https://medium.com/backticks-tildes/the-s-o-l-i-d-principles-in-pictures- b34ce2f1e898 O que é SOLID: O guia completo para você entender os 5 princípios da POO https://medium.com/desenvolvendo-com-paixao/o-que-%C3%A9-solid-o-guia- completo-para-voc%C3%AA-entender-os-5-princ%C3%ADpios-da-poo- 2b937b3fc530