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

Arquitetura de software e a Clean Architecture

Arquitetura de software e a Clean Architecture

A importância da arquitetura de software e sobre a Clean Architecture, definida pelo autor Robert “Uncle Bob” Martin. Uma arquitetura simples, com foco em alguns pontos como testabilidade e independência de frameworks, bancos de dados e interfaces. Ira mostrar exemplos de como aplicar estes conceitos em projetos escritos em Golang, que podem ser aplicados em qualquer linguagem de programação.

Elton Minetto

October 31, 2020
Tweet

More Decks by Elton Minetto

Other Decks in Programming

Transcript

  1. Elton Minetto ๏ Escrevo códigos, sou professor, palestrante, e escritor

    ๏ Escrevo no https://eltonminetto.dev e no twitter ๏ Sou tech manager na Trybe
  2. Olhando para a estrutura de diretórios do seu projeto, ele

    fala sou um sistema de contabilidade? ou sou um projeto Rails/Laravel/Django?
  3. Arquiteturas de software não são (ou não deveriam ser) sobre

    frameworks. Arquiteturas não deveriam ser fornecidas por frameworks. Frameworks são ferramentas para serem usadas.
  4. Uma boa arquitetura de software permite decisões como frameworks, bancos

    de dados, servidores, serem adiadas. Uma boa arquitetura de software permite que mudanças nestas decisões sejam fáceis de serem tomadas.
  5. ๏ The Clean Architecture ๏ Arquitetura Limpa: o Guia do

    Artesão Para Estrutura e Design de Software
  6. Premissas ๏ Independente de frameworks ๏ Testável ๏ Independente de

    UI ๏ Independente de Database ๏ Independente qualquer agente externo
  7. Entities Encapsulam as regras de negócios de toda a empresa.

    Uma entidade pode ser um objeto com métodos ou um conjunto de estruturas de dados e funções. Não importa, desde que as entidades possam ser usadas por muitos aplicativos diferentes na empresa.
  8. Use Cases O software nesta camada contém regras de negócios

    especí fi cas do aplicativo. Ele encapsula e implementa todos os casos de uso do sistema
  9. Interface Adapters Adaptam e convertem os dados do formato usado

    pelas entidades e use cases para agentes externos como bancos de dados , web, etc
  10. Framework & Driver Frameworks e ferramentas como bancos de dados,

    frameworks web, etc. Esta camada é para onde vão todos os detalhes.
  11. Neste pacote temos a definição das entidades, das regras de

    negócio relacionada a elas e seus testes unitários
  12. ๏ Numa aplicação podem existir diferentes formas de acesso aos

    UseCases. ๏ Um exemplo seria através de um aplicativo de linha de comando e a outro é usando uma API.
  13. ๏ Screaming Architecture ๏ The Clean Architecture ๏ Arquitetura Limpa:

    o Guia do Artesão Para Estrutura e Design de Software ๏ Clean Architecture, 2 anos depois ๏ Links sobre arquitetura de software