Auto Layout: Organize Seus Diagramas de Arquitetura Instantaneamente
Há uma tarefa que toda equipe de arquitetura eventualmente enfrenta: o diagrama cresceu. O que começou como cinco sistemas organizados agora são vinte e sete elementos com quarenta relacionamentos, metade deles se cruzando. Alguém adicionou um novo container na semana passada e o colocou no único espaço aberto — o canto inferior direito, conectado por uma linha que corta três outros nos. O diagrama ainda contem informações precisas. Só é ilegível.
Então alguém passa uma tarde arrastando caixas. Consegue deixar a metade superior bonita, depois percebe que mover o API gateway quebra o alinhamento de tudo abaixo. Começa de novo. Uma hora depois, o diagrama esta um pouco melhor. A próxima pessoa a adicionar um elemento o coloca no lugar errado, e o ciclo se repete.
Este é um problema de layout, e problemas de layout têm soluções algorítmicas. E isso que o Auto Layout faz.
Um Clique, Tudo se Move
O Auto Layout está na barra de ferramentas do diagrama. Clique no botão, e cada elemento no seu diagrama — sistemas, containers, componentes, elementos de código, overlays e grupos compostos — se move para uma posição ótima calculada. Relacionamentos se desembaraçam. Arestas que se cruzam se separam. A hierarquia se torna visível.
A animação leva 400 milissegundos. Os nos deslizam de suas posições atuais para as novas com uma curva cubica suavizada. Você vê a transformação acontecer, o que ajuda a manter a orientação espacial.
Como Funciona
Por trás dos bastidores, o Auto Layout usa o ELK.js, o Eclipse Layout Kernel compilado para JavaScript. O ELK é um motor de layout de grafos que implementa varias décadas de pesquisa em desenho automático de grafos. O Archyl usa seu algoritmo em camadas, especificamente projetado para grafos direcionados — exatamente o que são diagramas de arquitetura.
O processo de layout acontece em varias etapas:
Atribuição de Camadas
O ELK primeiro atribui cada no a uma camada baseada em sua posição no grafo de dependências. Elementos sem relacionamentos de entrada vão para a primeira camada. Elementos que dependem apenas de elementos da primeira camada vão para a segunda. E assim por diante.
Minimização de Cruzamentos
Dentro de cada camada, o ELK reordena nos para minimizar o numero de arestas que se cruzam. Usa uma técnica chamada varredura de camadas — passando repetidamente pelas camadas e trocando posições de nos ate a contagem de cruzamentos estabilizar.
Posicionamento de Nós
Uma vez determinadas as camadas e a ordenação, o ELK calcula as coordenadas x/y reais. O Archyl usa o algoritmo Brandes-Koepf com alinhamento balanceado, que produz layouts compactos.
Roteamento de Arestas
O ELK roteia arestas usando caminhos spline, e o Archyl recalcula a conexão ótima — topo, base, esquerda ou direita — para cada relacionamento baseado nas posições finais dos nos.
Suporte a Grafos Compostos
Diagramas de arquitetura não são planos. Containers vivem dentro de sistemas. Componentes vivem dentro de containers. Overlays agrupam elementos relacionados. O Auto Layout lida com todas essas relações de aninhamento.
Quando um sistema contem containers no diagrama (exibido como um no de grupo composto), o ELK o trata como um pai composto com filhos internos. Os filhos são dispostos dentro do pai, e o pai redimensiona para caber.
Pós-Processamento: Alinhamento e Encaixe na Grade
A saída bruta do ELK e boa mas não perfeita. O Archyl aplica duas passagens de pós-processamento.
Alinhamento de cadeia encontra nos conectados que estão quase alinhados no eixo perpendicular e forca-os para exatamente a mesma linha central. O resultado são setas perfeitamente retas entre elementos conectados.
Resolução de sobreposição detecta nos que ficaram muito próximos apos o alinhamento e os afasta. Apos ambas as passagens, cada posição se encaixa em uma grade de 20 pixels.
Alternância de Direção
O Auto Layout suporta duas direções: De Cima para Baixo e Da Esquerda para a Direita. Um alternador ao lado do botão Auto Layout permite trocar entre elas.
De Cima para Baixo é o padrão e funciona bem para a maioria dos diagramas de arquitetura. Da Esquerda para a Direita funciona melhor para arquiteturas no estilo pipeline.
O Que é Persistido
O Auto Layout não é apenas um truque visual. Apos a animação completar, cada posição calculada é persistida no servidor. Posições de nos, limites de overlays, dimensões de grupos compostos e handles de arestas são todos salvos.
Visão da Arquitetura Global
O Auto Layout também funciona na pagina de Arquitetura Global — não apenas em projetos individuais. Quando você está olhando sistemas em toda a sua organização com dezenas de relacionamentos entre projetos, layout manual é especialmente doloroso.
Quando Usar
O Auto Layout é mais útil em três cenários:
Apos a descoberta com IA. Quando a IA do Archyl analisa um repositório e gera um modelo C4, as posições iniciais podem não refletir o layout que você escolheria. O Auto Layout dá um ponto de partida limpo.
Apos mudanças significativas. Você adicionou cinco novos containers, reorganizou relacionamentos e moveu componentes entre sistemas. O diagrama ficou bagunçado. O Auto Layout recalcula tudo do zero.
Ao explorar um novo projeto. Você entrou em um projeto e quer entender sua arquitetura. O Auto Layout produz um arranjo padrão e legível.
Você sempre pode ajustar elementos individuais apos executar o Auto Layout. E um ponto de partida, não uma restrição.
Começando
O Auto Layout está disponível agora em todos os planos e em cada diagrama — nível de projeto e global. Abra qualquer diagrama, clique no botão Auto Layout na barra de ferramentas, e assista sua arquitetura se organizar.
Sua arquitetura merece ser legível. O Auto Layout garante que o diagrama não atrapalhe.
Para mais sobre como construir diagramas de arquitetura eficazes, veja nosso guia do modelo C4. Para entender como o Auto Layout interage com visualizações entre projetos, explore Colaboração em Tempo Real e Arquitetura Global. Para analisar os relacionamentos que o Auto Layout organiza, experimente o Radar de Impacto.