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

8 Principios para cria um código melhor

8 Principios para cria um código melhor

Desenvolver software de qualidade pode ser um grande desafio. Por isso, a adoção de princípios sólidos é essencial para criar código melhor. Venha conhecer 8 princípios fundamentais para escrever código de qualidade e evitar problemas comuns, tais como dificuldades de manutenção e clareza.

Thiago

June 14, 2023
Tweet

More Decks by Thiago

Other Decks in Technology

Transcript

  1. O caminho para o código mais sustentável e de alta

    qualidade: 8 princípios-chave Thiago Bomfim
  2. Sumário 1. SRP 2. OCP 3. LSP 4. ISP 5.

    DIP 6. DRY 7. KISS 8. YAGNI
  3. • Tolerante a mudança • Compreensível • Simples de ser

    testado • Fácil de ser mantido • Orgulho Design Principles Design Principles
  4. Um prédio com boa arquitetura, mas com tijolos mal feitos

    não resultará numa boa construção. Design Principles Design Principles Por outro lado, mesmo com bons tijolos e arquitetura, caso a interligação entre os tijolos não seja de qualidade, a construção também não será satisfatória. Por isso que os princípios são de grande valia.
  5. Reúna as coisas que mudam pelas mesmas razões. Separe as

    coisas que mudam por diferentes razões. SRP - Single Responsibility SRP
  6. Cada módulo de software tem um, e apenas um, motivo

    para mudar. SRP - Single Responsibility SRP
  7. SRP

  8. Para sistemas de software serem fáceis de mudar, eles devem

    ser projetados para permitir o comportamento desses sistemas sejam alterados a adicionar novo código, em vez de alterar código. OCP - Open-Closed OCP
  9. OCP

  10. A famosa definição de subtipos de Barbara Liskov, de 1988.

    Em suma, este princípio diz que para construir sistemas de software a partir de partes intercambiáveis, essas partes devem aderir a um contrato que permite que essas partes sejam substituídas uma por outra. LSP - Liskov Substitution LSP
  11. Um programa que usa uma interface não deve ser confundido

    por uma implementação dessa interface. LSP - Liskov Substitution LSP
  12. LSP

  13. LSP

  14. Este princípio aconselha os designers de software a evitar depender

    de coisas que eles não usam. ISP - Segregation Principle ISP
  15. Mantenha os contratos pequenos para que os usuários não acabem

    dependendo de coisas que não precisam. ISP - Segregation Principle ISP
  16. ISP

  17. O código que implementa a política de alto nível não

    deve depender do código que implementa detalhes de baixo nível. Em vez disso, os detalhes devem depender das políticas. DIP - Dependency Principle DIP
  18. Módulos de alto nível não devem depender de detalhes de

    baixo nível. DIP - Dependency Principle DIP
  19. DIP

  20. DIP

  21. O Acrónimo SOLID foi cunhado nos anos 2004, identificado por

    Michael Feathers a possibilidade da criação desse Acrónimo com base nos princípios de diversos profissionais compilados pelo Robert C. Martin e apresentado por volta dos anos 2000s. SOLID SOLID
  22. Todo conhecimento deve ter uma representação única não ambígua e

    autorizada dentro de um sistema. DRY - Don’t Repeat Yourself DRY
  23. O objetivo do DRY é reutilizar o código já escrito

    anteriormente. DRY - Don’t Repeat Yourself DRY
  24. DRY

  25. A simplicidade deve ser um objetivo chave no design, e

    a complexidade desnecessária deve ser evitada KISS - Keep It Simple, Stupid KISS
  26. O princípio do KISS afirma que as coisas funcionam melhor

    se forem mantidos simples em vez de complicados. KISS - Keep It Simple, Stupid KISS
  27. Sempre implemente as coisas quando você realmente precisa delas, nunca

    quando você apenas prevê que precisa delas YAGNI - You Ain’t Gonna Need It YAGNI
  28. Tem como objetivo apagar todo o código desnecessário e se

    concentra nas funcionalidades atuais. YAGNI - You Ain’t Gonna Need It YAGNI
  29. 1. SRP - The Single Responsibility Principle 2. OCP -

    The Open-Closed Principle 3. LSP - The Liskov Substitution Principle 4. ISP - The Interface Segregation Principle 5. DIP - The Dependency Inversion Principle 6. DRY - Don’t Repeat Yourself 7. KISS - Keep It Simple, Stupid 8. YAGNI - You Ain’t Gonna Need It Recapitulando