Especificação técnica de "Architecture.md (2021)"
(matklad.github.io)Recomendação para escrever ARCHITECTURE.md
- Recomenda-se fortemente que mantenedores de projetos open source adicionem um documento
ARCHITECTUREao lado deREADMEeCONTRIBUTING. - Este documento descreve a arquitetura de alto nível do projeto e, como deve ser lido por contribuidores recorrentes, é melhor mantê-lo curto.
- O documento
ARCHITECTUREdeve incluir apenas conteúdos que não mudam com frequência e, em vez de tentar sincronizá-lo com o código, o ideal é revisá-lo algumas vezes por ano.
Objetivo e importância do documento
- O conhecimento sobre a arquitetura física de um projeto é a maior diferença entre contribuidores em geral e desenvolvedores centrais.
- Se você não estiver familiarizado com o projeto, leva 2 vezes mais tempo para escrever um patch e 10 vezes mais tempo para descobrir onde o código precisa ser alterado.
- O arquivo
ARCHITECTUREé uma forma eficaz de reduzir essa lacuna e também oferece uma oportunidade de refletir sobre a estrutura do projeto.
Estrutura do documento
- Ele deve começar com uma visão geral sob uma nova perspectiva do problema e fornecer um mapa de código detalhado que explique a relação entre os módulos.
- Arquivos, módulos e tipos importantes devem ser citados, mas, em vez de linkar diretamente, deve-se incentivar a busca pelos nomes para evitar necessidade de manutenção.
- Também é preciso apontar explicitamente as invariantes arquiteturais e destacar os limites entre as camadas.
Invariantes arquiteturais e limites
- Invariantes importantes muitas vezes são expressas pela ausência de algo, e é difícil percebê-las apenas lendo o código.
- Os limites entre camadas ou sistemas incluem implicitamente informações sobre a implementação do sistema e restringem todas as implementações possíveis.
Interesses transversais
- Após concluir o mapa de código, deve-se adicionar uma seção separada sobre interesses transversais.
- Um bom exemplo de documento
ARCHITECTUREé o architecture.md do rust-analyzer.
Opinião do GN⁺:
- O documento
ARCHITECTUREajuda a entender o projeto e tem um papel importante para que novos contribuidores se familiarizem rapidamente com a base de código. - Este documento esclarece a estrutura do projeto e destaca princípios e limites arquiteturais importantes, ajudando os desenvolvedores a compreender melhor o sistema.
- A adoção do documento
ARCHITECTUREna comunidade open source pode contribuir para o crescimento sustentável e a manutenção do projeto, sendo uma abordagem muito útil e interessante para desenvolvedores.
1 comentários
Comentários do Hacker News