Algorithmen und Datenstrukturen in Go (Golang)
Algorithmen und Datenstrukturen in Go (Golang)
Zusammenfassung:
Dieses Buch ist Ihr Leitfaden in die Welt der effektiven Programmierung mit Go (Golang). Es wurde für Entwickler erstellt, die nicht nur Code schreiben, sondern schnelle, zuverlässige und skalierbare Anwendungen entwickeln möchten. Egal, ob Sie gerade erst mit Go beginnen oder bereits Erfahrung haben, Sie werden hier wertvolles Wissen finden.
Das Buch ist nach dem Prinzip „vom Einfachen zum Komplexen“ aufgebaut. Wir beginnen mit den Grundlagen: Wir erläutern, was Algorithmen und Datenstrukturen sind, warum ihre Wahl für die Leistung entscheidend ist und wie Go hilft, prägnanten, aber leistungsstarken Code zu schreiben. Dann tauchen wir in die Praxis ein.
Was Sie in diesem Buch lernen werden:
- Grundlegende Datenstrukturen: Arrays, Slices, Listen, Stack und Queue, Hash-Tabellen (map), Bäume (binäre, AVL, Rot-Schwarz-Bäume). Sie lernen, die richtige Struktur für jede Aufgabe auszuwählen.
- Klassische Algorithmen: Sortierung (Quick Sort, Merge Sort, Bubble Sort), Suche (lineare, binäre Suche), Graphenalgorithmen (BFS, DFS, Dijkstra).
- Speicherverwaltung in Go: Pointer, Garbage Collection, Speicherverwaltung in Goroutinen. Wie man Code schreibt, der nicht „leckt“ und nicht langsamer wird.
- Nebenläufigkeit und Parallelität: Channels, Goroutinen, Mutexe. Implementierung von Multithreading-Algorithmen: Merge Sort in Goroutinen, paralleler Graphdurchlauf.
- Leistungsoptimierung: Benchmarks, Profiling (pprof), Suche nach Engpässen. Wie Sie Ihren Code messen und beschleunigen.
- Praktische Projekte: Wir schreiben einen In-Memory-Cache, eine einfache Datenbank, einen Log-Parser und einen HTTP-Router von Grund auf. Jedes Projekt ist ein gebrauchsfertiges Modul.
Für wen dieses Buch gedacht ist:
- Anfängende Go-Entwickler, die ihr Wissen systematisieren möchten.
- Erfahrene Programmierer, die von anderen Sprachen (Python, Java, C++) wechseln.
- Studenten und Dozenten von Algorithmen-Kursen.
- Ingenieure, die sich auf technische Vorstellungsgespräche vorbereiten.
Jedes Kapitel enthält Theorie, anschauliche Diagramme, Codebeispiele in Go und Übungen zur Vertiefung. Sie werden nicht nur lesen – Sie werden Dutzende von Funktionen, Strukturen und Tests schreiben. Am Ende des Buches werden Sie ein „algorithmisches Denken“ entwickelt haben: Sie werden komplexe Aufgaben in einfache Schritte zerlegen und in Go implementieren können.
Das Buch ist in einer lebendigen Sprache geschrieben, mit Fokus auf die Praxis. Kein „Füllmaterial“ – nur das, was in der Arbeit wirklich nützlich ist. Alle Beispiele wurden mit Go Version 1.21+ getestet und sind im Repository verfügbar.