Erkunden von Monorepos im Vergleich zu mehreren Repositorys

Abgeschlossen

In einem Repository wird Ihr Arbeitsverlauf gespeichert, normalerweise in einem Git-Unterverzeichnis.

Wie sollten Sie Ihr Coderepository organisieren? Entwicklungsteams zielen darauf ab, die Anliegen in ihrer Software und ihre Repositorys zu trennen. Im Laufe der Zeit kann es vorkommen, dass Coderepositorys mit irrelevantem Code und Artefakten überladen werden.

Wenn es um die Organisation Ihrer Repositorys geht, gibt es zwei gängige Philosophien: die Verwendung eines einzelnen Repositorys (Monorepo) oder mehrerer Repositorys.

  • Monorepositorys sind ein Quellcodeverwaltungsmuster, bei dem der gesamte Quellcode in einem Repository gespeichert wird. Es ist einfach, allen Mitarbeitern Zugriff auf alles gleichzeitig zu geben. Klonen Sie es, und Sie sind fertig.
  • Das Organisieren Ihrer Projekte in separaten Repositorys wird als mehrere Repositorys bezeichnet.

Der grundlegende Unterschied zwischen Monorepositorys und mehreren Repositorys besteht darin, wie Teams am effizientesten zusammenarbeiten können. In einem extremen Szenario schlägt der Ansatz mit mehreren Repositorys vor, dass jedes Unterteam in seinem Repository arbeiten kann. Es ermöglicht ihnen, in ihren jeweiligen Bereichen mit den Bibliotheken, Tools und Entwicklungsworkflows zu arbeiten, die ihre Produktivität optimieren.

Die Kosten für alles, was nicht in einem bestimmten Repository entwickelt wurde, entsprechen denen für die Nutzung einer Bibliothek oder eines Dienstes eines Drittanbieters, selbst wenn sie von jemandem in der Nähe geschrieben wurden.

Wenn Sie auf einen Fehler in Ihrer Bibliothek stoßen, sollten Sie ihn im entsprechenden Repository behandeln. Nachdem Sie ein neues Artefakt veröffentlicht haben, können Sie zu Ihrem Repository zurückkehren und die erforderlichen Codeänderungen vornehmen. Wenn sich der Fehler jedoch in einer anderen Codebasis befindet oder unterschiedliche Bibliotheken, Tools oder Workflows umfasst, müssen Sie möglicherweise Hilfe vom Besitzer dieses Systems anfordern und auf deren Antwort warten.

Bei Verwendung von Monorepositorys kann die Verwaltung komplexer Abhängigkeitsdiagramme die Schwierigkeit der Verwendung eines einzelnen Repositorys erhöhen. Die Vorteile, die sich daraus ergeben, dass verschiedene Teams unabhängig voneinander arbeiten können, sind nicht sehr groß. Einige Teams finden möglicherweise eine effiziente Arbeitsweise, aber dies gilt möglicherweise nicht für alle Gruppen. Außerdem könnten andere Teams einen suboptimalen Ansatz wählen, der die Vorteile der anderen zunichte macht. Wenn Sie Ihre gesamte Arbeit in einem Monorepository konsolidieren, können Sie sich auf die genaue Überwachung dieses einen Repositorys konzentrieren.

Die Mühe, Änderungen in anderen Repos vorzunehmen oder darauf zu warten, dass Teams Änderungen für Sie vornehmen, entfällt in einem Monorepo, in dem jeder alles ändern kann.

Wenn Sie einen Fehler in einer Bibliothek entdecken, ist es genauso einfach, ihn zu beheben, wie einen Fehler in Ihrem eigenen Code zu finden.

Hinweis

In Azure DevOps ist es üblich, für jede zugehörige Lösung innerhalb eines Projekts ein eigenes Repository zu verwenden.