A ausência de padrões leves para externar (seja para documentação ou na elaboração) a arquitetura de um software sempre é um dos maiores desafios que encontro em minhas consultorias.
Representações exóticas, pouco expressivas e com significado difícil de determinar são bem comuns.
C4 Model tem se apresentado como uma excelente alternativa para resolver esse problema.
O que é?
C4 Model é um combinado de método (leve) e linguagem gráfica, concebidos por Simon Brown, para representar arquitetura de software, tanto para concepção quanto para documentação.
O nome C4 vem dos quatro “níveis” de diagrama propostos pelo autor.
- Contexto
- Containers
- Componentes
- Classes/Código
Todos os níveis estão relacionados. O nível de Containers é derivado do Contexto; Componentes é derivado de Containers; Classes é derivado de Componentes.
A construção dos diagramas conforme prescrito no C4 Model permite que você consiga ter uma linguagem consistente, em quatro níveis de detalhe, conforme a necessidade (e o stakeholder).
Para que serve?
Como já destacado, C4 Model é uma proposta para padronizar de forma coerente e eficiente a representação da arquitetura de um software.
Os diagramas do C4 Model facilitam a comunicação entre todos os envolvidos no projeto do software.
Cenas dos próximos capítulos
Se você ainda não conhece o C4 model, recomendo fortemente que acesse o site oficial.
Nos próximos posts, vou compartilhar um pouco mais sobre como o C4 Model tem me ajudado em minhas atividades de consultoria. Também vou compartilhar algumas lições aprendidas.
O que você acha do C4 Model? Vê alguma restrição para sua adoção? O que tem usado para documentar a arquitetura de software em seus projetos.
Quer ser notificado para novas publicações, assine a newsletter no formulário abaixo.
Tudo em ordem? Desejo que sim!
Quais ferramentas você indicaria para a confecção de documentos no padrão C4?
Abraços
Eu uso um extensão do VS code chamado Drawio.
Eu uso o yEd Editor. Funciona muito bem!
Eu conheci o C4 hoje, por indicação de um entrevistador e fiquei impressionado com a simplicidade e leveza. Vai me ajudar muito na tarefa de documentação da arquitetura de software.