Book description
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com
Go hat sich schnell zur bevorzugten Sprache für die Entwicklung von Webdiensten entwickelt. Es gibt viele Tutorials, die Entwicklern mit Erfahrung in anderen Programmiersprachen die Syntax von Go beibringen, aber diese Tutorials reichen nicht aus. Sie vermitteln nicht die Idiome von Go, so dass Entwickler/innen am Ende Muster nachbilden, die im Go-Kontext keinen Sinn ergeben. Dieser praktische Leitfaden liefert das nötige Hintergrundwissen, das du brauchst, um ein klares und idiomatisches Go zu schreiben.
Egal, wie viel Erfahrung du hast, du wirst lernen, wie ein Go-Entwickler zu denken. Der Autor Jon Bodner stellt die Entwurfsmuster vor, die erfahrene Go-Entwickler/innen übernommen haben, und erläutert die Gründe für ihre Verwendung. In dieser aktualisierten Ausgabe erfährst du außerdem, wie sich die Generik-Unterstützung von Go in die Sprache einfügt.
Dieses Buch hilft dir:
- idiomatischen Code in Go zu schreiben und ein Go-Projekt zu entwerfen
- die Gründe für die Designentscheidungen von Go zu verstehen
- Eine Go-Entwicklungsumgebung für einen Einzelentwickler oder ein Team einrichten
- Lernen, wie und wann Reflexion, unsafe und cgo verwendet werden können
- Entdecke, wie die Funktionen von Go es ermöglichen, dass die Sprache effizient läuft
- Welche Go-Funktionen du sparsam oder gar nicht verwenden solltest
- Nutze die Werkzeuge von Go, um die Leistung zu verbessern, die Speichernutzung zu optimieren und die Garbage Collection zu reduzieren
- Lerne, wie du die fortschrittlichen Entwicklungswerkzeuge von Go nutzt
Table of contents
- Vorwort
- 1. Einrichten deiner Go-Umgebung
- 2. Vordeklarierte Typen und Deklarationen
- 3. Zusammengesetzte Typen
- 4. Blöcke, Schatten und Kontrollstrukturen
- 5. Funktionen
-
6. Zeiger
- Eine schnelle Zeigerfibel
- Keine Angst vor den Zeigern
- Zeiger zeigen veränderbare Parameter an
- Zeiger sind ein letztes Mittel
- Leistung der Zeigerübergabe
- Der Nullwert versus kein Wert
- Der Unterschied zwischen Karten und Slices
- Slices als Puffer
- Reduzierung der Arbeitslast des Garbage Collectors
- Tuning des Garbage Collectors
- Übungen
- Einpacken
-
7. Typen, Methoden und Schnittstellen
- Typen in Go
- Methoden
- iota ist für Aufzählungen - manchmal
- Einbettung für die Komposition verwenden
- Einbettung ist keine Vererbung
- Eine kurze Lektion über Schnittstellen
- Schnittstellen sind typsicher Duck Typing
- Einbettung und Schnittstellen
- Schnittstellen akzeptieren, Strukturen zurückgeben
- Schnittstellen und Null
- Schnittstellen sind vergleichbar
- Das leere Interface sagt nichts aus
- Typ-Assertionen und Typ-Schalter
- Type Assertions und Type Switches sparsam verwenden
- Funktionstypen sind eine Brücke zu Schnittstellen
- Implizite Interfaces machen Dependency Injection einfacher
- Draht
- Go ist nicht besonders objektorientiert (und das ist gut so)
- Übungen
- Einpacken
-
8. Generika
- Generika reduzieren repetitiven Code und erhöhen die Typensicherheit
- Einführung von Generika in Go
- Generische Funktionen Abstrakte Algorithmen
- Generika und Schnittstellen
- Typbegriffe zur Angabe von Operatoren verwenden
- Typinferenz und Generika
- Typ Elemente Grenzkonstanten
- Kombinieren von generischen Funktionen mit generischen Datenstrukturen
- Mehr über vergleichbare
- Dinge, die ausgelassen werden
- Idiomatisches Go und Generika
- Hinzufügen von Generika zur Standardbibliothek
- Zukünftige Funktionen freigeschaltet
- Übungen
- Einpacken
- 9. Fehler
-
10. Module, Pakete und Importe
- Repositories, Module und Pakete
- go.mod verwenden
-
Gebäudepakete
- Importieren und Exportieren
- Erstellen und Aufrufen eines Pakets
- Pakete benennen
- Den Namen eines Pakets überschreiben
- Dokumentiere deinen Code mit Go Doc-Kommentaren
- Verwendung des internen Pakets
- Vermeiden von zirkulären Abhängigkeiten
- Organisieren deines Moduls
- Anständiges Umbenennen und Reorganisieren deiner API
- Wenn möglich, die init-Funktion vermeiden
- Arbeiten mit Modulen
- Dein Modul veröffentlichen
- Versionierung deines Moduls
- Modul Proxyserver
- Zusätzliche Details
- Übungen
- Einpacken
-
11. Go Tooling
- Mit go run kleine Programme ausprobieren
- Hinzufügen von Tools von Drittanbietern mit go install
- Verbessern der Importformatierung mit goimports
- Einsatz von Code-Qualitätsscannern
- Mit govulncheck nach gefährdeten Abhängigkeiten suchen
- Inhalte in dein Programm einbetten
- Versteckte Dateien einbetten
- Mit go generate
- Arbeiten mit go generate und Makefiles
- Lesen der Build-Informationen innerhalb einer Go-Binärdatei
- Go-Binaries für andere Plattformen erstellen
- Verwendung von Build Tags
- Testen von Go-Versionen
- Mit go help mehr über Go Tooling erfahren
- Übungen
- Einpacken
-
12. Gleichzeitigkeit in Go
- Wann sollte man Gleichzeitigkeit nutzen?
- Goroutinen
- Kanäle
- wähle
-
Praktiken und Muster der Gleichzeitigkeit
- Halte deine APIs frei von Gleichzeitigkeit
- Goroutinen, for-Schleifen und variierende Variablen
- Räumt eure Goroutinen immer auf
- Den Kontext zum Beenden von Goroutinen verwenden
- Wissen, wann man gepufferte und ungepufferte Kanäle verwendet
- Gegendruck einsetzen
- Einen Fall in einer Auswahl ausschalten
- Time Out Code
- WaitGroups verwenden
- Code genau einmal ausführen
- Stelle deine gleichzeitigen Werkzeuge zusammen
- Wann sollte man Mutexe statt Kanäle verwenden?
- Atome - die brauchst du wahrscheinlich nicht
- Wo du mehr über Gleichzeitigkeit erfährst
- Übungen
- Einpacken
- 13. Die Standardbibliothek
- 14. Der Kontext
-
15. Schreibtests
- Die Grundlagen des Prüfens verstehen
- Tabellen-Tests durchführen
- Gleichzeitige Durchführung von Tests
- Überprüfe deine Codeabdeckung
- Fuzzing
- Benchmarks verwenden
- Stubs in Go verwenden
- httptest verwenden
- Integrationstests und Build-Tags verwenden
- Gleichzeitigkeitsprobleme mit dem Data Race Detector aufspüren
- Übungen
- Einpacken
-
16. Hier sind die Drachen: Reflect, Unsafe und Cgo
-
Mit Reflection kannst du mit Typen zur Laufzeit arbeiten
- Arten, Gattungen und Werte
- Neue Werte schaffen
- Mit Reflection prüfen, ob der Wert einer Schnittstelle gleich null ist
- Reflection verwenden, um einen Data Marshaler zu schreiben
- Funktionen mit Reflection erstellen, um sich wiederholende Aufgaben zu automatisieren
- Du kannst Structs mit Reflection bauen, musst es aber nicht
- Nachdenken kann keine Methoden machen
- Verwende Reflexion nur, wenn sie sich lohnt
- Unsicher ist unsicher
- Cgo ist für Integration, nicht für Leistung
- Übungen
- Einpacken
-
Mit Reflection kannst du mit Typen zur Laufzeit arbeiten
- Index
- Über den Autor
Product information
- Title: Go lernen, 2. Auflage
- Author(s):
- Release date: August 2024
- Publisher(s): O'Reilly Media, Inc.
- ISBN: 9781098180300
You might also like
book
Neuronale Netze selbst programmieren, 2nd Edition
Neuronale Netze sind Schlüsselelemente des Deep Learning und der künstlichen Intelligenz, die heute zu Erstaunlichem in …
article
Reinventing the Organization for GenAI and LLMs
Previous technology breakthroughs did not upend organizational structure, but generative AI and LLMs will. We now …
book
High Performance Python, 2. Auflage
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: …
book
Finanztheorie mit Python
Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: …