21 pontos por kciter1 2026-03-28 | Ainda não há comentários. | Compartilhar no WhatsApp
  • A tese é que a maioria dos principais desafios do desenvolvimento de software surge não dentro do código, mas na fronteira (Boundary) onde código encontra código e sistema encontra sistema
  • Fronteira = ponto em que diferentes interesses, responsabilidades e contextos se encontram
  • Quase toda ação no desenvolvimento, como separar funções, modularizar e adotar microsserviços, é um ato de criar fronteiras
  • Ironia: criamos fronteiras para lidar com a complexidade, mas a própria fronteira se torna uma nova fonte de complexidade

Fronteiras que surgem no código

  • Fronteira chamador-callee: ambiguidade de contrato, como retornar null vs lançar exceção
  • Fronteira de interface: lei do vazamento de abstração — a complexidade escondida acaba rompendo a fronteira em algum momento
  • Fronteira de dependência: APIs e bibliotecas externas podem mudar sem aviso
  • Fronteira de transformação: assim como no descompasso objeto-relacional, sempre que se cruza uma fronteira há distorção ou perda de informação
  • Fronteira de confiança: limite entre dados validados e não validados → vulnerabilidades de segurança, como receber webhooks sem assinatura
  • Fronteira entre design e implementação: o acúmulo de perda de informação em cada etapa, de requisitos → design → implementação → operação

Fronteiras físicas

  • Fronteira de ordem: o estado pode mudar entre pontos assíncronos; em sistemas distribuídos isso é ainda mais grave
  • Fronteira de escala: ao ultrapassar um ponto crítico, ocorre uma mudança qualitativa, não apenas quantitativa
  • Fronteira de ambiente: acontecem casos como “na minha máquina funciona”
  • Fronteira de infraestrutura: ao separar serviços, não é possível garantir atomicidade

Fronteiras que surgem entre pessoas

  • Fronteira organizacional: Lei de Conway — a estrutura organizacional determina a estrutura do sistema. Quando equipes são reorganizadas, as fronteiras do código e da organização se desencontram
  • Fronteira de comunicação: como num telefone sem fio, a intenção se deforma a cada transmissão dos requisitos, e o conhecimento tácito às vezes nem chega a ser transmitido
  • Fronteira usuário-desenvolvedor: fronteiras criadas por desenvolvedores para segurança podem virar barreiras incômodas para usuários

Como governar as fronteiras

  • Reconheça as fronteiras ocultas: preste atenção a acoplamentos que não aparecem no código, como dois serviços compartilhando a mesma tabela no banco de dados
  • Padrões não são a resposta: padrões são apenas “soluções eficazes sob determinadas condições”; não devem ser aplicados cegamente
  • Três perguntas a fazer diante de uma fronteira:
    1. O que está atravessando essa fronteira?
    2. O que acontece se essa fronteira quebrar?
    3. Quem é responsável por administrar essa fronteira?
  • Não traçar uma fronteira também é uma escolha: manter o monólito, evitar separações precipitadas etc.
  • As fronteiras evoluem: separam-se, depois se juntam, depois se dividem de novo → é preciso revisá-las de forma consciente e regular

Ainda não há comentários.

Ainda não há comentários.