Die erste Antwort auf eine alte, kürzlich aktive Frage, die mit einem Video verknüpft ist, in dem erläutert wird, wie das Google-Repository erstellt wird.
Eine interessante Sache, die erwähnt wurde, ist die Tatsache, dass alles aus dem Quellcode erstellt wird, ohne auf Binärdateien angewiesen zu sein. Dies hilft zu vermeiden, dass Probleme mit Abhängigkeiten veraltet sind, aber immer noch in anderen Projekten verwendet werden, ein Problem, auf das ich in der Tat häufig gestoßen bin.
Wie ist es technisch möglich? Wenn ich in meinem Unternehmen dasselbe versuche, selbst wenn man die große Lücke zwischen der Größe meiner Unternehmenscodebasis und der Größe von Googles berücksichtigt, wäre dies aus zwei Gründen nicht möglich:
Die IDE (Visual Studio) reagiert schnell nicht mehr, da selbst kleine Lösungen mit beispielsweise 50 Projekten stark darunter leiden.
Jede statische Analyse würde durch die Größe der gesamten Codebasis beeinträchtigt. Beispielsweise wären Code-Metriken oder statische Überprüfungen von Code-Verträgen kaum möglich (Code-Verträge würden wahrscheinlich Tage oder Wochen dauern).
Bei kontinuierlicher Integration würde das Kompilieren ebenfalls viel Zeit in Anspruch nehmen und die Server zum Erliegen bringen, sobald ein Projekt mit vielen Abhängigkeiten geändert wird, sodass ein großer Baum von Projekten neu kompiliert werden muss.
Wie kann ein kleines Unternehmen diese Probleme umgehen und in der Lage sein:
Verwenden Sie die IDE, ohne von schlechter Leistung beeinträchtigt zu werden.
Kompilieren Sie den Code nach jedem Commit, ohne den Server zu beschädigen, auch wenn die Folgen einer Änderung erfordern, dass ein großer Teil der Codebasis neu kompiliert wird.