Softwareentwicklung bei Google
600 Seiten
German
PDF
4.5

Softwareentwicklung bei Google

Softwareentwicklung bei Google

Autor:

Jahr:

Zusammenfassung:

Einleitung

Das Buch „Software Engineering at Google: Lessons Learned from Programming Over Time“ (auf Deutsch: „Softwareentwicklung bei Google: Lehren aus jahrelanger Programmiererfahrung“) ist nicht nur eine Sammlung technischer Rezepte. Es ist eine tiefgehende Untersuchung darüber, wie eines der erfolgreichsten Technologieunternehmen der Welt an die Entwicklung, Wartung und Skalierung von Software herangeht. Geschrieben von drei führenden Google-Ingenieuren – Titus Winters, Tom Manshreck und Hyrum Wright – erschien das Buch im Jahr 2020 und wurde sofort zum Standardwerk für viele Architekten, Teamleiter und Senior-Entwickler.

Obwohl im Buch intensiv C++ verwendet wird (die Hauptsprache für viele interne Google-Systeme), geht sein Wert weit über eine einzelne Sprache hinaus. Die hier beschriebenen Prinzipien sind auf jeden Stack anwendbar, einschließlich Python, Java, Go und andere. Für die Bildungswebsite pythonlib.ru ist dieses Buch ein echter Glücksgriff, da es nicht nur lehrt, Code zu schreiben, sondern wie ein Ingenieur zu denken, der in einer riesigen Codebasis arbeitet.

Worum geht es in diesem Buch?

Das Buch ist in drei große Teile gegliedert, die jeweils Schlüsselaspekte der Softwareentwicklung bei Google beleuchten.

Teil 1: Was ist Softwareentwicklung?

Die Autoren ziehen eine klare Grenze zwischen Programmierung (Code schreiben, der jetzt funktioniert) und Softwareentwicklung (Code erstellen, der über Jahre hinweg lebt und sich weiterentwickelt). Sie führen das Konzept der „Code-Hygiene“ ein und erklären, warum Code-Reviews, Tests und Dokumentation bei Google so wichtig sind.

Teil 2: Kultur und Prozesse

Hier werden soziale und organisatorische Aspekte behandelt: Wie man Teams aufbaut, wie man effektive Code-Reviews durchführt, wie man Wissen verwaltet und warum „psychologische Sicherheit“ wichtiger ist als die Anzahl der Codezeilen. Ein eigenes Kapitel widmet sich dem Code Review – einem Prozess, der bei Google zur Perfektion gebracht wurde.

Teil 3: Werkzeuge und Praktiken

Der technischste Teil. Er umfasst Build-Systeme (Bazel), Abhängigkeitsverwaltung, Tests (von Unit-Tests bis zu Integrationstests), Refactoring, Deployment und Monitoring. Besonders interessant ist das Kapitel über „Large-Scale Changes“ – wie Google Änderungen vornimmt, die Millionen von Codezeilen betreffen, ohne das Produkt zu beschädigen.

Für wen ist dieses Buch?

Das Buch richtet sich an erfahrene Entwickler (Middle/Senior), Teamleiter, Architekten und alle, die verstehen wollen, wie Entwicklung auf einem Niveau funktioniert, auf dem die Codebasis Milliarden von Zeilen umfasst. Aber auch Anfänger werden hier viel Nützliches finden, wenn sie bereit für eine ernsthafte Lektüre sind.

Was lernt der Leser?

  • Warum Programmierung ≠ Softwareentwicklung ist – und wie dieses Verständnis den Arbeitsansatz verändert.
  • Wie man Code-Reviews richtig durchführt – nicht nur „Code ansehen“, sondern eine Kultur des gegenseitigen Lernens entwickeln.
  • Wie man im großen Maßstab testet – von einfachen Unit-Tests bis zu komplexen Integrationsszenarien.
  • Wie man Abhängigkeiten verwaltet – und warum „Dependency Hell“ kein Witz ist.
  • Wie man Refactoring ohne Angst durchführt – mit automatisierten Werkzeugen und Praktiken.
  • Wie man Prozesse aufbaut, die die Entwicklung nicht ausbremsen – Balance zwischen Kontrolle und Geschwindigkeit.
  • Wie das Build-System Bazel funktioniert – und warum es für große Projekte besser ist als Make oder CMake.
  • Wie Google einen einheitlichen Codestil aufrechterhält – und warum dies für die Lesbarkeit wichtig ist.

Stärken des Buches

1. Praktischer Nutzen. Das Buch erzählt nicht nur Theorien – es beschreibt reale Probleme, mit denen Google-Ingenieure konfrontiert sind, und konkrete Lösungen. Zum Beispiel erklärt das Kapitel über „Hyrum’s Law“ (Hyrums Gesetz), warum selbst interne APIs mit der Zeit zu öffentlichen Verträgen werden.

2.

Empfehlungen