Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover
Titel
Impressum
Vorwort
Inhaltsverzeichnis
1 Einleitung
1.1 Ziel dieses Buches
1.2 Die Geschichte von Go
1.3 Installation
1.4 Sicherheit und Patches
1.5 Editoren für den Go-Werkzeugkasten
1.6 Der Spielplatz für Gopher
1.7 Hello World
1.8 Eine lesbare technische Spezifikation
1.9 Ausgabe mit dem fmt-Paket
2 Vorstellung der Syntax
2.1 Wörter, Funktionen und Typen von Go
2.2 Variablen
2.3 Konstanten
2.4 Pointer
2.5 Eigene Typen
2.6 Typumwandlung
2.7 Zusammengesetzte Strukturen
2.8 Funktionen
2.9 Objektorientierung mit Methode
2.10 Exportiert und nicht exportiert
2.11 Arrays
2.12 Slices
2.13 Das Slice als Pointer
2.14 Maps
2.15 if
2.16 switch
2.17 for
2.18 Labels und goto
2.19 Blank Identifier
2.20 UTF-8, strings und runes
3 Projekt: Command Line Interface
3.1 Einleitung
3.2 gocat – File-Ausgabe
3.3 Den md5-Hash erzeugen
3.4 Dateien und HTTP-Server als Quellen für gomd5
4 Go Tooling
4.1 Schnelle Hilfe mit go help
4.2 Kompilieren und Installieren
4.3 Umgebungsvariablen mit go env
4.4 Ein Programm für jede Gelegenheit – Build Tags
4.5 Wie Code formatiert wird – gofmt
4.6 Automatische Imports mit goimports
4.7 Dokumentation immer dabei – godoc
5 Projekt: Ein einfacher Webloader
5.1 Einleitung
5.2 CLI – unser Interface
5.3 HTTP-Request erstellen
5.4 Implementierung des File-Outputs
5.5 Ausgabe des HTTP-Headers
5.6 Gültigkeit der übergebenen URL
6 Eigene Pakete und Module
6.1 Go-Code lebt in Paketen
6.2 Paketnamen
6.3 Die init()-Funktion
6.4 Semantic Versioning
6.5 Pakete leben in Modulen
6.6 Der Workflow, seit es Module gibt
6.7 Neuer bedeutet nicht immer besser
6.8 Update unserer Abhängigkeit
6.9 Neue Major-Version mit Modulen
7 Projekt: Code generieren
7.1 Einleitung
7.2 Ein Tool, um Code zu generieren
7.3 Template erstellen
7.4 Anwenden von go generate
8 Concurrency-Grundlagen
8.1 Concurrency mit Go
8.2 Parallelität im echten Leben
8.3 Goroutinen
8.4 Channels
8.5 Einen Channel schließen
8.6 Select
8.7 Race Conditions und Data Races
9 Concurrency Patterns
9.1 Checkliste zu Goroutinen
9.2 Goroutinen melden, wenn sie fertig sind
9.3 Beenden von Goroutinen
9.4 Context
9.5 Prüfung eines geschlossenen Channels
9.6 Pipelines
9.7 Generator
9.8 Fan-In und Fan-Out
9.9 Channel of Channels
9.10 Worker Pool
9.11 Semaphore mit einem Buffered Channel
9.12 State Machine
10 Projekt: Go Concurrency
10.1 Einleitung
10.2 Command Line Interface
10.3 Argumente parsen
10.4 Befehle ausführen
10.5 Abbruch mit context
10.6 Verbesserung des Tools
11 Testen und Benchmarks
11.1 Tests in Go
11.2 Subtests
11.3 Tabellarische Tests
11.4 Eigenes Testpaket
11.5 Testen mit Beispielen
11.6 Ein ganzes Projekt testen
11.7 Benchmarks
11.8 Syntax der Benchmarks
11.9 Subbenchmarks
12 Projekt: Image Resizer
12.1 Einleitung
12.2 Command Line Interface – Erstellen der Flags
12.3 Größe erzeugen
12.4 Bild verkleinern
12.5 Filename prüfen
12.6 Funktionen zusammenführen
12.7 Refactoring in eine zusätzliche Funktion
12.8 Eigener Fehlertyp
12.9 Von sequentieller Ausführung zu nebenläufiger Ausführung
13 Interfaces
13.1 Bessere Abstraktion mit Interfaces
13.2 Die richtige Interface-Erstellung
13.3 Interne Abbildung der Interface-Typen
13.4 Leeres Interface
13.5 Vom Interface zum konkreten Typ
13.6 Interface in andere Interfaces einbinden
13.7 Interfaces in Strukturen einbinden
13.8 Mocking und Tests mit io.Reader und io.Writer
14 Projekt: Kopieren mit Reflection
14.1 Einleitung
14.2 Reflection in Go
14.3 Beschreibung des Pakets
14.4 Testfälle für unser Paket
14.5 Umsetzung
14.6 Verwenden von Tags
15 Fehlerbehandlung
15.1 Grundlagen
15.2 Variablen und Konstanten
15.3 Eigene Fehlertypen
15.4 Einem Fehler Kontext hinzufügen
15.5 Keine Panik
16 Projekt: Ein einfacher Webserver
16.1 Einleitung
16.2 Das Modell für unseren Blog
16.3 Der Webserver und seine Handler
16.4 Templates erstellen
16.5 Kommentarfunktion
16.6 Files ausliefern
16.7 API bereitstellen
16.8 Template nur einmal parsen
16.9 Nebenläufiger Job für den Index
16.10 Ein paar kleine Verbesserungen
Fußnoten
← Prev
Back
Next →
← Prev
Back
Next →