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.
O problema que ele resolve
Seção intitulada “O problema que ele resolve”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.
O que você vai fazer
Seção intitulada “O que você vai fazer”O que ele não é
Seção intitulada “O que ele não é”- 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.