Pular para o conteúdo

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 → context
filho de uma raiz → container
filho de um container → component
filho de um componente → code ← aqui

Uma 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.

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.

model/reservas/classes.yaml
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: Usa

E o diagrama:

model/reservas/codigo.yaml
kind: diagram
id: codigo
title: Servico de Reserva — Codigo
level: code
scope: servico-de-reserva
relations: auto

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.

Os quatro níveis estão cobertos. As próximas páginas são sobre como um diagrama escolhe o que mostraros seletores.