GoConqr has a new look! Let us know what you think.

Mind map

Arquitetura limpa

Guilherme Gonçalves Portuguese

Map content

Arquitetura limpa

  1. Definições

    • Design = arquitetura
    • Objetivo
      • Minimizar recursos humanos na manutenção
  2. Valores

    • Comportamento
      • Urgente
      • Não importante
    • Estrutura
      • Não urgente
      • Importante
  3. Paradigmas

    • Programação estruturada
    • Programação orientada a objetos
    • Programação funcional
    • Falam sobre o que não fazer, não sobre o que fazer
  4. Princípios de design

    • Objetivos
      • Tolerância a mudanças
      • Fácil de entender
      • Base para reutilização
    • SOLID
      • SRP
      • OCP
      • LSP
      • ISP
      • DIP
  5. Componentes

    • Unidades de implantação
    • Coesão
      • REP
        • A granularidade do reuso é a granularidade do release
      • CRP
        • Não force clientes a dependerem de coisas que eles não precisam
      • CCP
        • Reúna componentes que mudam pela mesma razão
    • Acoplamento
      • Problema das dependências externas
        • Builds semanais
        • Gestão de releases
      • Grafo de ciclo de dependências
        • DAG - Grafo aciclico de dependências
        • Quebrando o ciclo
          • Aplicar DIP
          • Novo componente comum
      • Design top download - não funciona
      • Princípio das dependências estáveis
        • Estabilidade
          • Quantidade de trabalho envolvido na mudança
          • Números de dependências externas
            • I = Fanout /(Fanin+Fanout)
        • Nem todos os componentes devem ser estáveis
          • Componentes instáveis no topo
      • Princípio de abstrações estáveis
        • Quanto mais abstrato, mais estável deve ser
        • Zona da dor
        • Zona da inutilidade
        • Sequência principal
  6. Arquitetura

    • Máximo de opções abertas pelo maior tempo possível
    • Ciclo de vida
      • Desenvolvimento
      • Implantação
      • Operação
      • Manutenção
    • Regras de negócio não devem depender de serviços externos
  7. Independência

    • Como equilibrar todas as preocupações?
      • Desacoplar o que muda por razões diferentes
      • Separar por casos de uso
      • Microserviços
    • Duplicação de código
      • Real
      • Acidental
    • Modos de desacoplamento
      • Código fonte (monolito)
      • Implantação (processo)
      • (Micro) serviços
  8. Limites

    • Arquitetura plugin
      • Separe o que importante do que não importa
      • "GUI e DB não são importantes"
    • Estratégias
      • Código fonte
      • Processos
      • Threads
      • Rede
    • Sistemas são declarações de políticas
      • Mais longe de E/S, maior o nivel
  9. Regras de negócio

    • Regras cruciais que geram dinheiro
      • Devem ficar isoladas
    • Entidades
      • Opera os dados de Negócios
    • Casos de uso
      • Maneira como um sistema é usado
  10. Ponderações

    • Primeiro o desenho da casa, depois os tijolos
    • Framework são ferramentas
    • Casos de uso devem ser testáveis de forma independente do resto
    • Observar a evolução da arquitetura e a necessidade de limites
  11. Modelos

    • Preocupações
      • Separação das camadas
      • Regra da dependência
    • Objeto humble
      • Facilmente testáveis
      • Dificilmente testáveis
    • Limites parciais
      • Código separado em um mesmo componente
      • Padrão strategy
      • Padrão facade
  12. Componente main

    • Mais sujo
    • Nível mais baixo
    • Plugin para a aplicação
  13. Arquitetura de serviços

    • Falácia do desacoplamento
    • Falácia da independência de implantação e desenvolvimento
    • Dependa de componentes abstratos em implementações concretas
  14. Testes

    • Testes são rígidos e concretos
    • Desacoplar testes em componente separado
    • Testes acoplados tornam a API rígida e difícil de mudar
  15. Embarcados

    • Mesmo cuidados para evitar acoplamento entre firmware e hardware
    • Teste de APP-TIDÃO
      • Faça funcionar
      • Refatorar
      • Otimizar
  16. Bancos de dados

    • Estruturas de dados são importantes
    • Tecnologia de armazenamento não
    • BD deve ser isolado, porque é um detalhe
  17. Web

    • Web foi uma de muitas mudanças
    • Mudanças de GUI são parte do processo
    • "Gênios do marketing"
    • GUI deve ser desacoplada das regras de negócio
  18. Framework

    • Não case com o framework

Information

Description
Mind Map on Arquitetura limpa, created by Guilherme Gonçalves on 30/01/2022.
Views
3
Rating

Feedback

What is it about?

What do you think of the new look?

How do you like it?