Pular para o conteúdo

O que é o cfourdev

O cfourdev descreve a arquitetura de um sistema em arquivos YAML, guardados no mesmo repositório Git do código. Uma ferramenta de linha de comando valida esses arquivos e os publica; um leitor no navegador transforma o resultado em diagramas navegáveis, nos quatro níveis do modelo C4.

Você escreve o modelo. Os diagramas são consequência dele.

Diagramas de arquitetura desenhados à mão envelhecem em silêncio. Eles ficam numa ferramenta separada do código, ninguém revisa um retângulo num pull request, e a única forma de saber que um desenho está errado é alguém reparar.

Quando o mesmo sistema aparece em três desenhos — contexto, containers, componentes —, o problema piora: acrescentar um serviço obriga a editar os três, e o primeiro que alguém esquecer passa a mentir.

O cfourdev inverte isso:

  • o modelo é texto, então ele entra no pull request, tem histórico, tem autor e tem revisão, como qualquer outra mudança;
  • um diagrama não guarda a lista de quem ele mostra — ele guarda um critério. “Todos os containers deste sistema” continua correto depois que o container novo é criado, sem ninguém editar o desenho;
  • uma seta é escrita uma vez, no nível mais fino que você conhece. Os diagramas mais gerais derivam a versão deles sozinhos;
  • o modelo é validado. Uma referência para uma caixa que não existe é um erro na hora do cfour check, e não uma surpresa no navegador.
  • Não é uma ferramenta de desenho. Você não posiciona caixas para criar conteúdo: o conteúdo vem do modelo. O leitor no navegador permite arrastar caixas para arrumar um desenho, e essa arrumação é salva à parte.
  • Não é um catálogo de serviços nem um inventário automático. Nada é descoberto sozinho a partir do seu código ou da sua nuvem — o modelo é escrito por quem conhece o sistema.
  • Não é um formato proprietário fechado. O que você escreve é YAML comum, legível e editável em qualquer editor, e a ferramenta que o valida é a mesma que você roda na sua máquina.