17
Visualize a arquitetura do seu sistema com C4 Model
website: https://c4model.com/
author: Simon Brown
Inspirado em UML e 4+1 Model, foi criado e melhorado ao longo do tempo para ajudar a visualizar a arquitetura de sistemas e aproximar o modelo do sistema com o código.
- Foco nas estruturas estáticas (componentes)
- Abstrações e não notações (mapas)
- Engenharia e não arte, não use visio use plantuml
- Desculpas
- "Nem todos sabem UML no time"
- "Vou parecer velho"
- "Ferramentars ruins"
- "Muito detalhado"
- "É uma bela forma de perder tempo"
- "Agile não precisa documentar"
- "O valor ta na conversa", daí a conversa é só sobre ficar até mais tarde...
- "O valor tá no código", daí vc olha o código e...
Com a chegada das metodologias ágeis as pessoas tem buscado simplificar e usar formas mais simples de modelagem.
- Use um quadro branco!
- O problema é que faltou tempo e/ou ferramenta adequada!
- Problemas dos diagramas atuais
- Tamanhos, cores diferentes
- Falta de legenda e descrição
- Não padronização
- Abreviações
- Falta de títulos
- Troca de pessoas, rotatividade = informação pro ralo
- Visualização!
- Peça para um arquiteto desenhar a sua casa, o que terá? Sim, a planta baixa da sua casa.
- Você, uma pessoa que não é formada em arquitetura conseguirá entender todo contexto, principais idéias da planta. Consegue se localizar e localizar portas, janelas etc.
"Boa comunicação = times melhores"
- Temos que ter em mente que o público de nossos diagramas pode ser amplo, desde um presidente e um diretor da companhia até seu colega que acabou de entrar na firma.
Olhe o mapa da sua cidade ou imagine ele.
O que vai notar?
- Igrejas
- Hospitais
- Ferrovias
- Estradas
- Estações de metrô
- Museus
Olhe o mapa de outra cidade e perceba como as mesmas abstrações estarão presentes, apenas com notações diferentes (fontes, linhas cores, formatos)
Contamos uma história linear de C1 até C4 , ou seja a história continua ao dar o zoom.
O C4 Model é uma estrutura estática, uma vez definido pode-se por exemplo criar outras documentações mais específicas caso necessário, como: diagramas de sequência, ER, BP, etc.
C1 - Contexto | Overview | Continente
C2 - Containers | Overview | Estado
C3 - Componentes | Zoom | Cidade
C4 - Código | Detalhes | Foto da rua
!!! C4 não é recomendado devido ao detalhamento, pode ser usado por exemplo com uma ferramenta que gere essa doc
- Use títulos!
- Coloque descrições do que o sistema faz!
- Se seu diagrama tem mais de ~20 elementos já pode ser melhor dividir nas camadas do C4 para melhor entendimento
17