Asynchrones Go (Golang): Das vollständige Handbuch
Asynchrones Go (Golang): Das vollständige Handbuch
Zusammenfassung:
Dieses Buch ist ein umfassender Leitfaden zur asynchronen und nebenläufigen Programmierung in der Sprache Go (Golang). Im Gegensatz zu vielen anderen Sprachen, in denen Asynchronität ein nachträglicher Zusatz ist, ist sie in Go tief im Kern der Sprache verankert. Der Autor, Alexey Vetrov, ein Senior-Entwickler mit 10 Jahren Erfahrung, enthüllt konsequent alle Aspekte der Arbeit mit Parallelität, von den Grundlagen bis hin zu komplexen Production-Patterns.
Was Sie aus dem Buch lernen werden:
- Goroutines: Wie man leichtgewichtige Threads erstellt, ihren Lebenszyklus verwaltet und Lecks vermeidet.
- Channels: Gepufferte und ungepufferte, unidirektionale, fan-in/fan-out-Patterns, select.
- Synchronisation: Mutexe (sync.Mutex), RWMutex, atomare Operationen, wait groups, once, cond.
- Context: Übertragung von Abbruchsignalen, Deadlines und Werten zwischen Goroutinen.
- Fortgeschrittene Patterns: pipeline, worker pool, rate limiting, graceful shutdown, paralleles map/reduce.
- Fehlerbehandlung in asynchronem Code: errgroup, panic recovery, structured logging.
- Testen von nebenläufigem Code: race detector, Lasttests, Mock-Objekte.
Für wen dieses Buch ist:
- Go-Entwickler, die von sequenziellem zu asynchronem Code übergehen möchten.
- Backend-Ingenieure, die hochlastige Dienste und Microservices erstellen.
- Programmierer, die von anderen Sprachen (Python, Java, C#) zu Go wechseln und dessen Philosophie der Nebenläufigkeit erlernen möchten.
- Team Leads, die bewährte Praktiken für die Arbeit mit Parallelität in ihrem Team einführen möchten.
Warum Sie dieses Buch lesen sollten:
Nebenläufigkeit ist eines der schwierigsten Themen in der Programmierung. Fehler in asynchronem Code (Deadlocks, Race Conditions, Goroutine Leaks) sind schwer zu finden und zu reproduzieren. Dieses Buch bietet nicht nur Theorie, sondern in der Praxis erprobte Lösungen. Jedes Pattern wird von funktionierendem Code, Diagrammen und Erklärungen begleitet, warum genau dieser Ansatz richtig ist. Sie lernen, in Begriffen von Goroutinen und Channels zu denken, anstatt in blockierenden Aufrufen.
Besonderes Augenmerk wird auf typische Fallstricke gelegt: wie man Daten bei der Verwendung von Channels nicht verliert, wie man Goroutinen korrekt beendet und wie man Paniken in nebenläufigem Code vermeidet. Das Buch ist so aufgebaut, dass es sowohl sequenziell gelesen als auch als Nachschlagewerk für spezifische Patterns verwendet werden kann.
Nach der Lektüre werden Sie in der Lage sein, asynchrone Systeme jeder Komplexität sicher zu entwerfen: von einfachen Webservern bis hin zu verteilten Event-Handlern und Stream-Prozessoren.
Empfehlungen
TypeScript und Microservices: Von der Idee bis zur Produktion
DevOps für Rust-Entwickler: Vom Build bis zur Produktion
Architektur von Java-Anwendungen: Vom Monolithen zu Microservices
Maschinelles Lernen und C++: Von Algorithmen zur Produktion
Funktionale Programmierung in C++: Ein moderner Ansatz
Maschinelles Lernen und Swift: Entwicklung für iOS und macOS