Monorepo versus meerdere opslagplaatsen verkennen

Voltooid

In een opslagplaats wordt uw werkgeschiedenis opgeslagen, meestal in een Git-submap.

Hoe moet u uw codeopslagplaats ordenen? Ontwikkelteams streven ernaar om problemen in hun software en opslagplaatsen te scheiden. Naarmate de tijd is verstreken, is het niet ongebruikelijk dat codeopslagplaatsen onbelangrijke informatie bevatten met irrelevante code en artefacten.

Als het gaat om het organiseren van uw opslagplaatsen, zijn er twee belangrijke filosofieën: het gebruik van één opslagplaats (Monorepo) of meerdere opslagplaatsen.

  • Monorepos is een broncodebeheerpatroon waarbij alle broncode in één opslagplaats wordt bewaard. Het is eenvoudig om alle werknemers in één keer toegang te geven tot alles. Kloon het en u bent klaar.
  • Het ordenen van uw projecten in afzonderlijke opslagplaatsen wordt aangeduid als meerdere opslagplaatsen.

Het fundamentele verschil tussen mono-opslagplaats en meerdere opslagplaatsfiosieën is wat teams in staat stelt om het efficiëntst samen te werken. In een extreem scenario suggereert de weergave meerdere opslagplaatsen dat elk subteam in de opslagplaats kan werken. Hiermee kunnen ze in hun respectieve gebieden werken met behulp van de bibliotheken, hulpprogramma's en ontwikkelwerkstromen die hun productiviteit optimaliseren.

De kosten voor het verbruiken van iets dat niet in een bepaalde opslagplaats is ontwikkeld, is gelijk aan het gebruik van een bibliotheek of service van derden, zelfs als deze is geschreven door iemand die zich in de buurt bevindt.

Als u een fout in uw bibliotheek tegenkomt, moet u deze in de bijbehorende opslagplaats aanpakken. Zodra u een nieuw artefact hebt gepubliceerd, kunt u terugkeren naar uw opslagplaats en de benodigde codewijzigingen aanbrengen. Als de fout zich echter in een andere codebasis bevindt of verschillende bibliotheken, hulpprogramma's of werkstromen omvat, moet u mogelijk hulp van de eigenaar van dat systeem zoeken en wachten op hun reactie.

Wanneer u de monoopslagplaatsweergave gebruikt, kan het beheren van complexe afhankelijkheidsgrafieken de moeilijkheidsgraad van het gebruik van één opslagplaats vergroten. De voordelen van het onafhankelijk werken van verschillende teams zijn niet aanzienlijk. Sommige teams vinden mogelijk een efficiënte manier van werken, maar dit is mogelijk niet waar voor alle groepen. Bovendien kunnen andere teams een suboptimale benadering kiezen, waarbij alle voordelen van anderen worden ontkend. Door al uw werk in een monoopslagplaats samen te voegen, kunt u zich richten op het nauwkeurig bewaken van deze ene opslagplaats.

Het probleem van het aanbrengen van wijzigingen in andere opslagplaatsen of het wachten totdat teams wijzigingen voor u aanbrengen, wordt vermeden in een mono-opslagplaats waar iedereen iets kan wijzigen.

Als u een fout in een bibliotheek ontdekt, kunt u deze zo eenvoudig oplossen als het vinden van een fout in uw eigen code.

Notitie

In Azure DevOps is het gebruikelijk om een afzonderlijke opslagplaats te gebruiken voor elke bijbehorende oplossing binnen een project.