Ir para o conteúdo

Fundamentos de arquitetura

Decisões técnicas com contexto, princípios e referências.

Esta biblioteca reúne o embasamento usado na construção da TOTVS Apps e de suas aplicações. É um material de aprofundamento para arquitetos e times técnicos que precisam conectar escolhas de implementação às capacidades da plataforma.

Entenda o porquêRelacione decisões técnicas aos resultados esperados.
Crie linguagem comumAlinhe produto, arquitetura, engenharia e operação.
Avalie com consistênciaUse princípios reconhecíveis para revisar soluções.

Material de aprofundamento

Use esta página depois de entender o que a plataforma entrega.

Se o objetivo é avaliar benefícios e compromissos, comece por Capacidades. As referências abaixo ajudam a compreender os conceitos, práticas e padrões que sustentam essas capacidades.

Arquiteturas evolucionárias

Uma arquitetura evolucionária permite que arquitetos e desenvolvedores façam mudanças relevantes com confiança, sem depender de previsões perfeitas sobre o futuro. Ela combina mecanismos de avaliação, mudança incremental e limites de acoplamento para preservar a capacidade de evolução.

  • Funções de aptidão: avaliações objetivas da integridade de características arquiteturais;
  • Mudança incremental: evolução guiada em diferentes dimensões, com impacto controlado;
  • Acoplamento apropriado: identificação das relações que devem permanecer juntas e das que precisam evoluir de forma independente;
  • Dados evolucionários: capacidade de desenvolver estruturas de dados conforme requisitos mudam;
  • Reconhecimento de antipadrões: identificação de acoplamentos que restringem evolução, teste ou entrega.

Cloud Native

Aplicações cloud-native são construídas para execução distribuída, automação, resiliência e evolução frequente. Na plataforma, esse modelo se materializa nos conceitos abaixo.

  • Contêineres

    Unidades padronizadas que empacotam software e dependências para execução consistente entre ambientes.

    Representação de contêineres

  • Microsserviços

    Serviços implantáveis de forma independente, organizados por capacidades de negócio, pertencentes a times pequenos e desenhados com baixo acoplamento, manutenibilidade e testabilidade.

    Representação de microsserviços

  • Service mesh

    Infraestrutura de software que trata comunicação entre serviços, acrescentando entrega confiável, segurança, visibilidade e mecanismos de controle.

    Representação de service mesh

  • APIs declarativas

    Contratos que descrevem o estado ou resultado desejado e reduzem a necessidade de coordenar detalhes imperativos entre consumidores e provedores.

    Representação de APIs declarativas

  • Infraestrutura imutável

    Modelo em que mudanças geram uma nova versão da infraestrutura, construída a partir de código e automação, em vez de alterações locais em produção.

    Representação de infraestrutura imutável

Princípios e práticas

Princípios mantêm a arquitetura reconhecível e dão critérios para revisar decisões ao longo do ciclo de vida do software.

  • Clean Architecture

    Separação de responsabilidades entre camadas e blocos, protegendo o domínio de detalhes externos.

    Diagrama de Clean Architecture

  • Domain-Driven Design

    Mantém o foco no coração do negócio, aproxima a linguagem do software da linguagem usada pelas pessoas e representa complexidade em modelos de domínio.

    Representação de Domain-Driven Design

  • Teorema CAP

    Explicita compromissos entre consistência, disponibilidade e tolerância a partições em sistemas distribuídos.

    Relações do Teorema CAP

  • Princípios SOLID

    Princípios de design que apoiam responsabilidade, extensibilidade, substituição, contratos focados e inversão de dependências.

    Representação dos princípios SOLID

  • Os Doze Fatores

    Práticas para aplicações portáveis, automatizáveis e adequadas a ambientes cloud-native.

    Representação dos Doze Fatores

  • DevOps

    Práticas que conectam desenvolvimento e operação para reduzir o ciclo de entrega e sustentar mudanças frequentes com qualidade.

    Representação de DevOps

Estilos e padrões

Padrões tornam decisões recorrentes mais explícitas e ajudam times a discutir alternativas usando uma linguagem comum.

Da referência à decisão

Use fundamentos para tornar trade-offs explícitos.

Retorne às capacidades para conectar essas referências aos resultados esperados ou revise as formas de extensão para aplicar contratos e limites na prática.