Utforska monorepo jämfört med flera lagringsplatser
En lagringsplats är den plats där din arbetshistorik lagras, vanligtvis i en git-underkatalog.
Hur ska du organisera din kodlagringsplats? Utvecklingsteamen strävar efter att separera problem i sina program- och lagringsplatser. Med tiden är det inte ovanligt att kodlagringsplatser blir belamrade med irrelevant kod och artefakter.
När det gäller att organisera dina lagringsplatser finns det två huvudsakliga filosofier: att använda en enda lagringsplats (Monorepo) eller flera lagringsplatser.
- Monorepos är ett källkontrollmönster där all källkod lagras på en lagringsplats. Det är enkelt att ge alla anställda tillgång till allt på en gång. Klona den, så är du klar.
- Att organisera dina projekt i separata lagringsplatser kallas för flera lagringsplatser.
Den grundläggande skillnaden mellan mono-lagringsplats och flera lagringsplatsens filosofier är det som gör det möjligt för team att arbeta tillsammans mest effektivt. I ett extremt scenario tyder vyn med flera lagringsplatser på att varje underteam kan arbeta på lagringsplatsen. Det gör att de kan arbeta inom sina respektive områden med hjälp av bibliotek, verktyg och arbetsflöden för utveckling som optimerar deras produktivitet.
Kostnaden för att använda något som inte har utvecklats på en viss lagringsplats motsvarar användningen av ett bibliotek eller en tjänst från tredje part, även om det skrevs av någon som satt i närheten.
Om du stöter på en bugg i biblioteket bör du åtgärda den på motsvarande lagringsplats. När du har publicerat en ny artefakt kan du gå tillbaka till lagringsplatsen och göra nödvändiga kodändringar. Men om felet finns i en annan kodbas eller omfattar olika bibliotek, verktyg eller arbetsflöden kan du behöva söka hjälp från systemets ägare och vänta på deras svar.
När du använder vyn monolagringsplats kan hanteringen av komplexa beroendediagram öka svårigheten att använda en enda lagringsplats. Fördelarna med att låta olika team arbeta självständigt är inte betydande. Vissa team kan hitta ett effektivt sätt att arbeta, men det kanske inte gäller för alla grupper. Dessutom kan andra team välja en suboptimal metod, vilket negerar eventuella fördelar som andra har fått. Genom att konsolidera allt arbete på en lagringsplats kan du fokusera på att noggrant övervaka den här lagringsplatsen.
Besväret med att göra ändringar i andra lagringsplatser eller vänta på att team ska göra ändringar åt dig undviks i en monolagringsplats där vem som helst kan ändra vad som helst.
Om du upptäcker en bugg i ett bibliotek är det lika enkelt att hitta en bugg i din egen kod.
Kommentar
I Azure DevOps är det vanligt att använda en separat lagringsplats för varje associerad lösning i ett projekt.