Praktische Softwareentwicklung mit Golang
554 Seiten
German
PDF
4.5

Praktische Softwareentwicklung mit Golang

Praktische Softwareentwicklung mit Golang

Autor:

Jahr:

Zusammenfassung:

Einleitung

Das Buch „Hands-On Software Engineering with Golang“ (2020, 554 Seiten) von Achilleas Anagnostopoulos ist keine weitere Einführung in die Go-Syntax, sondern ein tiefgehender praktischer Leitfaden zur Entwicklung komplexer, skalierbarer und wartbarer Softwaresysteme in der Sprache Go. Im Gegensatz zu vielen Büchern, die sich auf die Grundlagen konzentrieren, widmet sich dieses Werk gezielt den Ingenieurspraktiken: Architektur, Design, Testen, Bereitstellung und Überwachung. Es ist ideal für diejenigen, die bereits mit Go vertraut sind und den Schritt zum Senior-Entwickler oder Architekten machen möchten.

Worum es in dem Buch geht

Das Buch ist um die Entwicklung einer realen Anwendung herum aufgebaut – eines Systems zur Analyse von Links (Link Graph). In allen Kapiteln wendet der Autor konsequent die Prinzipien des Domain-Driven Design (DDD) an, baut eine Microservice-Architektur auf, nutzt gRPC für die serviceübergreifende Kommunikation, integriert Containerisierung (Docker, Kubernetes) und richtet CI/CD-Pipelines ein. Jedes Kapitel ist eine abgeschlossene Phase, die sofort in der Praxis angewendet werden kann.

Die Hauptthemen:

  • Architekturmuster: DDD, CQRS, Event Sourcing, hexagonale Architektur.
  • Microservices: Design, Kommunikation (gRPC, RabbitMQ), Orchestrierung.
  • Testen: Unit-, Integrations-, End-to-End- und Property-basiertes Testen.
  • CI/CD: Einrichtung von Pipelines, automatisiertes Testen und Deployment.
  • Monitoring und Observability: Logging, Metriken, Tracing (OpenTelemetry).
  • Leistung: Profiling, Benchmarking, Optimierung.

Für wen ist dieses Buch geeignet

Das Buch richtet sich an erfahrene Go-Entwickler (mindestens 1-2 Jahre Erfahrung), die ihr Wissen im Design komplexer Systeme vertiefen möchten. Es ist auch nützlich für Architekten, Teamleiter und alle, die vom Schreiben einfacher Dienstprogramme zur Entwicklung von Production-Grade-Anwendungen übergehen. Für Go-Anfänger könnte das Buch schwierig erscheinen, da der Autor die grundlegende Syntax nicht erklärt und Sprachkenntnisse voraussetzt.

Was der Leser lernen wird

  • Wie man DDD zur Identifizierung von Bounded Contexts und Aggregaten anwendet.
  • Wie man Microservices mit gRPC und asynchronen Warteschlangen erstellt.
  • Wie man CQRS und Event Sourcing in Go implementiert.
  • Wie man Tests auf verschiedenen Ebenen schreibt und Property-basiertes Testen einsetzt.
  • Wie man Anwendungen containerisiert und in Kubernetes bereitstellt.
  • Wie man CI/CD mit GitHub Actions oder GitLab CI einrichtet.
  • Wie man die Leistung von Go-Anwendungen profiliert und optimiert.
  • Wie man Observability implementiert: Logging, Metriken (Prometheus) und Tracing (Jaeger).

Stärken

Der Hauptvorteil des Buches ist seine praktische Ausrichtung. Jedes Konzept wird sofort durch Code untermauert, der ausgeführt und modifiziert werden kann. Der Autor wiederholt nicht nur die Theorie, sondern zeigt, wie man Architekturentscheidungen trifft und mit welchen Kompromissen diese verbunden sind. Der Code auf GitHub wird von detaillierten Kommentaren begleitet. Ein weiterer Pluspunkt ist die Aktualität: Das Buch wurde 2020 veröffentlicht, und die meisten Ansätze (gRPC, Kubernetes, OpenTelemetry) bleiben Industriestandard.

Besonders hervorzuheben sind die Kapitel über Testen und CI/CD – sie bieten fertige Rezepte, die sofort in jedes Projekt integriert werden können. Das Buch lehrt nicht nur, Code zu schreiben, sondern das System als Ganzes zu betrachten: von den Anforderungen bis zum Betrieb.

Empfehlung

Ich empfehle dieses Buch allen, die vom Schreiben von „Skripten“ in Go zur Entwicklung industrieller Systeme übergehen möchten. Es ist sowohl für einzelne Entwickler als auch für Teams nützlich, die Go in der Produktion einsetzen. Wenn Sie bereits „The Go Programming Language“ oder „Concurrency in Go“ gelesen haben und weitermachen möchten – dieses Buch ist ein hervorragender nächster Schritt.

Auf der Website PythonLib ist das Buch zur Ansicht verfügbar.

Empfehlungen