Explore o monorepo versus vários repositórios
Um repositório é onde seu histórico de trabalho é armazenado, geralmente em um subdiretório git.
Como você deve organizar seu repositório de código? As equipas de desenvolvimento procuram separar as preocupações no seu software e repositórios. Com o passar do tempo, não é incomum que repositórios de código fiquem abarrotados de códigos e artefatos irrelevantes.
Quando se trata de organizar seus repositórios, existem duas filosofias principais: usar um único repositório (Monorepo) ou vários repositórios.
- Monorepos é um padrão de controle de código-fonte onde todo o código-fonte é mantido em um repositório. É fácil dar a todos os funcionários acesso a tudo de uma só vez. Clone e pronto.
- Organizar seus projetos em repositórios separados é conhecido como vários repositórios.
A diferença fundamental entre as filosofias de recompra mono e múltipla é o que permite que as equipes trabalhem juntas de forma mais eficiente. Em um cenário extremo, a exibição de vários repositórios sugere que cada subequipe pode trabalhar em seu repositório. Ele permite que eles trabalhem em suas respetivas áreas usando as bibliotecas, ferramentas e fluxos de trabalho de desenvolvimento que otimizam sua produtividade.
O custo de consumir qualquer coisa não desenvolvida dentro de um determinado repositório é equivalente ao uso de uma biblioteca ou serviço de terceiros, mesmo que tenha sido escrito por alguém sentado nas proximidades.
Se você se deparar com um bug em sua biblioteca, você deve resolvê-lo no repositório correspondente. Depois de publicar um novo artefato, você pode retornar ao repositório e fazer as alterações de código necessárias. No entanto, se o bug estiver em uma base de código diferente ou envolver bibliotecas, ferramentas ou fluxos de trabalho diferentes, talvez seja necessário procurar assistência do proprietário desse sistema e aguardar sua resposta.
Ao usar a visualização de repositório mono, o gerenciamento de gráficos de dependência complexos pode aumentar a dificuldade de usar um único repositório. Os benefícios de permitir que diferentes equipes trabalhem de forma independente não são substanciais. Algumas equipas podem encontrar uma forma eficiente de trabalhar, mas isso pode não ser verdade para todos os grupos. Além disso, outras equipes podem escolher uma abordagem subótima, negando quaisquer benefícios obtidos por outros. Consolidar todo o seu trabalho em um repositório mono permite que você se concentre em monitorar de perto esse repositório único.
O incômodo de fazer alterações em outros repositórios ou esperar que as equipes façam alterações para você é evitado em um repositório mono onde qualquer pessoa pode alterar qualquer coisa.
Se você descobrir um bug em uma biblioteca, corrigi-lo é tão fácil quanto encontrar um bug em seu próprio código.
Nota
No Azure DevOps, é comum usar um repositório separado para cada solução associada dentro de um projeto.