Go Programming Blueprints
294 Seiten
German
PDF
4.5

Go Programming Blueprints

Go Programming Blueprints

Autor:

Jahr:

Zusammenfassung:

Einleitung

Das Buch „Go Programming Blueprints“ (zweite Ausgabe, 2016) von Mat Ryer ist kein weiteres Lehrbuch zur Syntax der Sprache Go, sondern ein praktischer Leitfaden zur Erstellung realer, einsatzbereiter Anwendungen. Im Gegensatz zu vielen Büchern, die sich auf einfache Beispiele wie „Hello, World“ beschränken, taucht dieses Werk den Leser sofort in die Entwicklung vollwertiger Projekte ein: von Chatbots und REST-APIs bis hin zu verteilten Systemen und Kommandozeilen-Tools. Das Buch richtet sich an diejenigen, die bereits mit den Grundlagen von Go vertraut sind und zur professionellen Entwicklung übergehen möchten.

Worum es in dem Buch geht

Das Buch besteht aus 10 Kapiteln, die sich jeweils der Erstellung eines abgeschlossenen Projekts widmen. Der Autor führt den Leser Schritt für Schritt durch alle Phasen: von der Architekturplanung bis zur Bereitstellung. Besonderes Augenmerk liegt auf praktischen Aspekten: Arbeit mit Datenbanken, Erstellung von WebSockets, Authentifizierung, Testen und Leistungsoptimierung. Alle Projekte verwenden nur die Standardbibliothek von Go und einige wenige bewährte Drittanbieter-Pakete, was den Code maximal transparent und portabel macht.

Für wen ist dieses Buch geeignet

Das Buch ist nützlich für:

  • Entwickler, die bereits die Grundlagen von Go beherrschen und lernen möchten, skalierbare Webdienste zu erstellen;
  • Programmierer anderer Sprachen (Python, Java, C#), die schnell auf Go umsteigen und seine Stärken an realen Aufgaben sehen möchten;
  • Studenten und Enthusiasten, die ein Portfolio aus anspruchsvollen Projekten aufbauen möchten;
  • Teamleiter und Architekten, die Inspiration für den Aufbau einer Microservice-Architektur in Go suchen.

Was der Leser lernen wird

Nach der Durcharbeitung des Buches wird der Leser lernen:

  • RESTful-APIs mit dem Standardpaket net/http zu entwerfen und zu implementieren;
  • Echtzeit-Chat-Anwendungen auf Basis von WebSocket zu erstellen;
  • Mit Datenbanken (MongoDB, PostgreSQL) über Go-Treiber zu arbeiten;
  • Authentifizierung und Autorisierung (OAuth2, JWT) zu implementieren;
  • Multithread-Programme mit Goroutinen und Kanälen zu schreiben;
  • Datenverarbeitungspipelines und Aufgabenwarteschlangen zu erstellen;
  • CLI-Tools mit einer umfangreichen Benutzeroberfläche zu entwickeln;
  • Code mit Tests (Unit, Integration) abzudecken und Benchmarks durchzuführen;
  • Anwendungen in Docker-Containern und Cloud-Plattformen bereitzustellen;
  • Für Go typische Entwurfsmuster (z. B. Middleware, Fan-In/Fan-Out) zu verwenden.

Stärken

Der Hauptvorteil des Buches ist seine praktische Ausrichtung. Jedes Kapitel ist ein abgeschlossenes Projekt, das sofort gestartet und genutzt werden kann. Der Autor gibt nicht nur den Code, sondern erklärt auch, warum eine bestimmte Lösung gewählt wurde, welche Alternativen es gibt und in welchen Fällen sie vorzuziehen sind. Das Buch ist in einer lebendigen, zugänglichen Sprache geschrieben, die Beispiele sind mit ausführlichen Kommentaren versehen. Besonders hervorzuheben ist, dass alle Projekte die zum Zeitpunkt der Veröffentlichung des Buches aktuellen Versionen von Go und Bibliotheken verwenden, was sie auch heute noch (mit kleinen Einschränkungen) relevant macht.

Ein weiterer Pluspunkt ist der Fokus auf die Architektur. Mat Ryer lehrt nicht nur, Code zu schreiben, sondern in Kategorien von Modularität, Testbarkeit und Skalierbarkeit zu denken. Der Leser erfährt, wie man Code organisiert, damit er leicht zu warten und zu erweitern ist. Das Buch behandelt auch Sicherheits- und Leistungsaspekte, was in der Lehrliteratur selten vorkommt.

Schließlich enthält das Buch zahlreiche Rezepte und Tricks, die im Arbeitsalltag nützlich sind: Fehlerbehandlung, Logging, Arbeit mit Konfigurationen, Graceful Shutdown usw.

Empfehlung

Das Buch „Go Programming Blueprints“ ist eine Pflichtlektüre für alle, die in Go von der Theorie zur Praxis übergehen möchten. Es ist sowohl für Anfänger in der Go-Entwicklung (sofern sie mit den Grundlagen vertraut sind) als auch für erfahrene Ingenieure nützlich, die ihr Werkzeugset erweitern möchten. Besonders empfehle ich es denen, die

Empfehlungen