Skip to content

Instantly share code, notes, and snippets.

@elvitin
Last active February 7, 2023 04:26
Show Gist options
  • Save elvitin/ff60c6360b76af530cc4d5fbdc14d8dc to your computer and use it in GitHub Desktop.
Save elvitin/ff60c6360b76af530cc4d5fbdc14d8dc to your computer and use it in GitHub Desktop.
dúvida-1

Como as empresas produzem documentação de software hoje em dia? Se produzem, é todo o sistema? ou algumas partes? Se é algumas partes, qual critério que define qual parte será documentada? Quais técnicas/ferramentas essas empresas costumam utilizar? Utiliza-se versionamento em documentação? e que Linguagens utilizam? UML seria uma das? Como funciona isso? imagino que deva ter alguma estrátegia adotada dado esses sistemas gigantes e complexos.

Geralmente as documentações de sistemas seguem algum padrão de mercado. Um dos padrões adotados na estrutura aqui do GB é o C4 Model

Nesse padrão temos basicamente quatro níveis de documentação de arquitetura: Contexto > Container > Componente > Código.

A idéia de documentar os sistemas é passar o entendimento das escolhas que foram tomadas na construção para o restante da organização, então vc deve buscar esse contexto quando pensa em como gerar uma documentação de sistema.

A maior parte das aplicações possui um swagger como “documentação”.

Existem várias ferramentas utilizadas para documentar... Minha squad, por exemplo, documenta tudo no GIST e segue o fluxo de desenvolvimento padrão para aprovar documentos (inclusive enviando PRs, esperando pelo menos 2 aprovações e fazendo o merge na main quando finalizado).

UML é sim um dos padrões utilizados para documentar sistemas, muito comum criar diagramas de contexto, classe, caso de uso e usar um modelo UML para isso.

E pra finalizar, como escolher o que documentar? Geralmente quando se pensa nas soluções vc já tem algum tipo de documentação como um ADR e isso já começa a constar como documentação do seu sistema. Um desenho de arquitetura mais macro e ai pegando as partes principais que serão consumidas por outros times geralmente é o caminho natural de escolha para documentação mais robusta. Mas vai do contexto e necessidade, a melhor prática é sempre ter documentação suficiente para que as pessoas possam entender de forma simples o que uma aplicação faz.

by latan

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment