Arquitetura como código com C4

Feb 15 2023
Existem várias ferramentas e abordagens para diagramar conceitos, projetos e arquiteturas de software. Quando preciso descrever a sequência e o fluxo de comunicação entre sistemas ou pessoas, normalmente confio em um diagrama de sequência.

Existem várias ferramentas e abordagens para diagramar conceitos, projetos e arquiteturas de software. Quando preciso descrever a sequência e o fluxo de comunicação entre sistemas ou pessoas, normalmente confio em um diagrama de sequência. Os diagramas de estado também são úteis ao trabalhar com o comportamento do sistema com base em ações e nas transições de estado do sistema que ocorrem como resultado. Em termos de diagramas de sistema para sistema ou de componente para sistema, caixas e setas são usadas. Para fazer melhor nisso, C4 (https://c4model.com/) foi criado por Simon Brown para fornecer uma abordagem comum para diagramar contexto, contêineres, componentes e diagramas de classe.

como código

As técnicas acima encontraram seu caminho para ferramentas que suportam o uso de linguagem específica de domínio (DSL) baseada em texto para, de fato, usar código para descrever e renderizar o desenho em vários formatos gráficos. Alguns exemplos dessas ferramentas incluem www.sequencediagram.org, que é realmente intuitivo para desenvolver diagramas de sequência. Outra dessas ferramentas é PlantUML. Recentemente, começamos a alavancar seu suporte C4 e integração com o Visual Studio Code por meio da extensão (https://marketplace.visualstudio.com/items?itemName=jebbs.plantuml). Isso provou ser extremamente valioso.

Já foi dito que a arquitetura visa oferecer uma compreensão compartilhada do sistema de software e seu design. A melhor maneira de garantir isso é fazer com que os desenvolvedores e as equipes usem meios consistentes para transmitir esse entendimento. Visual Studio, PlantUML e C4 contribuem significativamente para esse objetivo. E com o DSL do PlantUML, as equipes podem gerenciar esse entendimento compartilhado como código.