Skip to main content

Nível 01 — Fundamentos

Esta é a seção que torna o resto do percurso possível. Ela não ensina a projetar sistemas; ensina o vocabulário e os critérios com que sistemas são julgados.

O problema desta seção

A maior parte do material sobre arquitetura começa apresentando soluções: camadas, microsserviços, filas, caches. Isso produz um profissional que reconhece formas mas não sabe escolher entre elas, porque nunca aprendeu a articular o que está tentando otimizar.

Arquitetura não é um catálogo de estruturas. É a atividade de decidir sob restrição, sabendo que toda decisão fecha portas. Para decidir bem, é preciso antes conseguir nomear com precisão o que está em jogo: o que o sistema precisa fazer, quão bem precisa fazer, o que não pode ser mudado, e o que a organização consegue sustentar.

Sem esse vocabulário, discussões arquiteturais viram disputa de preferência estética. Com ele, viram análise.

O que você vai encontrar aqui

O que arquitetura é. A distinção entre arquitetura, design e implementação — e por que a fronteira entre elas é contextual, não absoluta. Arquitetura como conjunto de decisões, não como conjunto de diagramas.

O que o sistema precisa fazer. Requisitos funcionais, requisitos não-funcionais, atributos de qualidade e restrições. Por que confundir esses quatro é a origem de boa parte das arquiteturas erradas.

As propriedades estruturais. Acoplamento, coesão, modularidade, abstração e separação de responsabilidades. Estas são as métricas com que se avalia se uma estrutura vai aguentar mudança.

O custo de estar errado. Complexidade, gestão de dependências e dívida técnica — o que se acumula quando decisões são adiadas ou tomadas sem critério.

O contexto. Contexto de negócio, espaço do problema e espaço da solução. Arquitetura que ignora o negócio otimiza a coisa errada com grande competência.

A dimensão temporal. Princípios de arquitetura, características arquiteturais e evolução — porque nenhuma decisão é tomada uma vez só.

Ordem de leitura

Leia na ordem do sidebar. Esta é a única seção do percurso em que a sequência importa de verdade, porque cada conceito é usado para definir o próximo.

Se você já trabalha com sistemas há alguns anos, a tentação é pular. Resista a ela em três tópicos especificamente: atributos de qualidade, restrições e arquitetura como conjunto de decisões. São os que mais frequentemente estão presentes como intuição e ausentes como vocabulário — e vocabulário ausente é o que impede defender uma decisão diante de quem discorda.

Ao terminar

Você consegue pegar uma descrição de sistema e separar, sem ambiguidade, o que é requisito funcional, o que é atributo de qualidade e o que é restrição. Consegue apontar onde há acoplamento desnecessário e argumentar por que ele custa caro. Consegue explicar por que uma decisão é arquitetural e outra não.

Mais importante: você para de perguntar "qual é a arquitetura certa?" e passa a perguntar "certa para quê, sob quais restrições?".

Erros que esta seção previne

  • Tratar atributos de qualidade como desejos vagos em vez de números negociados.
  • Confundir restrição com preferência, e negociar o que não é negociável.
  • Chamar de arquitetura o que é convenção de código, e vice-versa.
  • Otimizar acoplamento sem considerar o custo da duplicação que o substitui.
  • Discutir tecnologia antes de ter estabelecido o que precisa ser verdade.

Continua em

Nível 02 — Design de Software, onde esses conceitos deixam de ser vocabulário e passam a ser critério de estruturação de código.