Build-Grundlagen

Ein Build-System ist einer der wichtigsten Teile einer Entwicklungsorganisation, da jeder Entwickler damit potenziell Dutzende oder Hunderte von Malen interagiert. Ein voll funktionsfähiges Build-System ist erforderlich, um die Produktivität der Entwickler zu steigern, während das Unternehmen wächst. Für einzelne Entwickler ist es einfach, Code einfach zu kompilieren, sodass ein Build-System zu viel erscheint. Im großen Maßstab hilft ein Build-System aber bei der Verwaltung gemeinsam genutzter Abhängigkeiten, wie z. B. der Abhängigkeit von einem anderen Teil der Codebasis oder einer externen Ressource wie einer Bibliothek. Build-Systeme sorgen dafür, dass Sie alles haben, was Sie zum Erstellen des Codes benötigen, bevor er mit der Erstellung beginnt. Build-Systeme erhöhen außerdem die Geschwindigkeit, wenn sie eingerichtet sind, um Entwicklern das Freigeben von Ressourcen und Ergebnissen zu erleichtern.

In diesem Abschnitt werden einige historische Daten und Grundlagen zum Erstellen und Erstellen von Systemen erläutert, einschließlich Designentscheidungen, die bei der Entwicklung von Bazel getroffen wurden. Wenn Sie mit artefakten Build-Systemen wie Bazel, Buck und Pants vertraut sind, können Sie diesen Abschnitt überspringen. Dieser bietet aber nützliche Informationen, um zu verstehen, warum Artefaktbasierte Build-Systeme sehr gut zum Skalieren geeignet.

  • Vorteile eines Build-Systems

    Wenn Sie noch kein Build-System verwendet haben, beginnen Sie hier. Auf dieser Seite wird beschrieben, warum Sie ein Build-System verwenden sollten und warum Compiler und Build-Skripts nicht die beste Wahl sind, wenn Ihre Organisation über einige Entwickler hinaus skaliert wird.

  • Aufgabenbasierte Build-Systeme

    Auf dieser Seite werden aufgabenbasierte Build-Systeme wie Make, Maven und Gradle und einige ihrer Herausforderungen erläutert.

  • Artefaktbasierte Build-Systeme

    Auf dieser Seite werden artbasierte Build-Systeme als Reaktion auf Schwachstellen aufgabenbasierter Build-Systeme erläutert.

  • Verteilte Builds

    Auf dieser Seite werden verteilte Builds oder Builds behandelt, die außerhalb Ihres lokalen Computers ausgeführt werden. Dies erfordert eine robustere Infrastruktur, um Ressourcen gemeinsam zu nutzen und Ergebnisse zu erstellen. Und genau hier liegt die eigentliche Magie!

  • Abhängigkeitsmanagement

    Auf dieser Seite werden einige Zusatzfunktionen von Abhängigkeiten im großen Maßstab und Strategien zu deren Bekämpfung beschrieben.