O nível de código
O quarto nível do C4 mostra como um componente está estruturado por dentro: classes, interfaces, funções.
No cfourdev ele não é um recurso separado. É a mesma coisa de sempre, um degrau mais fundo na árvore:
sem parent → contextfilho de uma raiz → containerfilho de um container → componentfilho de um componente → code ← aquiUma caixa filha de um componente está no nível code. Nada mais muda: os mesmos
campos, as mesmas relações, o mesmo tipo de diagrama.
O que existe de específico
Seção intitulada “O que existe de específico”A forma class. Um desenho compacto, com a cor mais clara da escala. É a
única forma pensada para este nível, e nada impede usar outra.
Nada além disso. Não há campo para método, para atributo, para visibilidade, para herança, nem para generics. O cfourdev não é uma ferramenta de UML — o vocabulário é o do C4, e no C4 este nível é opcional e informal.
Um exemplo
Seção intitulada “Um exemplo”elements: - id: reserva name: Reserva shape: class parent: servico-de-reserva description: Sala, horario, quem pediu e o estado da confirmacao.
- id: janela-de-horario name: JanelaDeHorario shape: class parent: servico-de-reserva description: Um intervalo, e a regra de sobreposicao entre dois deles.
relations: - from: reserva to: janela-de-horario kind: dep label: UsaE o diagrama:
kind: diagramid: codigotitle: Servico de Reserva — Codigolevel: codescope: servico-de-reservarelations: autoQuando isso vale a pena
Seção intitulada “Quando isso vale a pena”Raramente, e é honesto dizer.
O código é a única descrição de si mesmo que nunca desatualiza, e ele está a um clique de distância de quem lê. Um diagrama de classes escrito à mão compete com isso e perde na semana seguinte.
Os casos em que ele ganha:
- um desenho que sobrevive à implementação — o modelo de domínio que a equipe combinou antes de escrever qualquer coisa, e ao qual ela volta;
- uma peça central e estável — o núcleo de regras que muda uma vez por ano e que todo mundo precisa entender;
- uma explicação para quem não vai ler o código — arquitetos de outra equipe, uma auditoria, um pedido de aprovação.
Se o seu caso não é um desses, pare no nível de componente.
Próximo passo
Seção intitulada “Próximo passo”Os quatro níveis estão cobertos. As próximas páginas são sobre como um diagrama escolhe o que mostrar — os seletores.