
Go programmieren für Dummies
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Persons
Content
- Intro
- Titelblatt
- Impressum
- Über den Autor
- Inhaltsverzeichnis
- Einleitung
- Über dieses Buch
- Törichte Annahmen über den Leser
- Symbole, die in diesem Buch verwendet werden
- Weitere Ressourcen
- Wie es weitergeht
- Teil I: Erste Schritte mit Go
- Kapitel 1: Auf die Plätze, fertig, Go!
- Mit Go zum beruflichen Erfolg
- Installieren von Go auf Ihrem Computer
- Verwenden einer integrierten Entwicklungsumgebung (IDE) mit Go
- Ihr erstes Go-Programm
- Vergleich von Go mit anderen Programmiersprachen
- Kapitel 2: Datentypen
- Deklarieren von Variablen
- Deklarieren von Konstanten
- Entfernen von ungenutzten Variablen
- Verwenden von Strings
- Konvertieren von Datentypen
- Kapitel 3: Entscheidungsfindung
- Entscheidungen mittels if/else
- Verwenden der switch-Anweisung bei mehreren Bedingungen
- Kapitel 4: Noch einmal und noch einmal: Programmschleifen
- Durchlaufen von Schleifen mit der for-Anweisung
- Iteration über einen Wertebereich
- Verwenden von Sprungmarken mit der for-Schleife
- Kapitel 5: Übersichtlicher Code dank Funktionen
- Definieren einer Funktion
- Verwenden von anonymen Funktionen
- Teil II: Datenstrukturen
- Kapitel 6: Datensammlungen in Arrays und Slices
- Allzeit bereit mit Arrays
- Strukturell flexibel mit Slices
- Slicing von Wertebereichen
- Kapitel 7: Logische Datenorganisation mit Structs
- Definieren von Structs für Sammlungen aus Datenelementen
- Erzeugen von Structs
- Kopieren von Structs
- Definieren von Methoden in Structs
- Vergleichen von Structs
- Kapitel 8: Beziehungen und Maps
- Erstellen von Maps in Go
- Verwenden von Structs und Maps in Go
- Kapitel 9: Datencodierung mit JSON
- Grundlagen von JSON
- Decodieren des JSON-Formats
- Codieren des JSON-Formats
- Kapitel 10: Methodensignaturen mit Interfaces
- Arbeiten mit Interfaces in Go
- Wozu sind Interfaces gut?
- Teil III: Multitasking in Go
- Kapitel 11: Threading mit Goroutinen
- Das Grundprinzip von Goroutinen
- Verwenden von Goroutinen mit gemeinsamen Ressourcen
- Synchronisieren von Goroutinen
- Kapitel 12: Kommunikation zwischen Goroutinen mit Kanälen
- Das Grundprinzip von Kanälen
- Iterieren über Kanäle
- Asynchrones Warten auf Kanäle
- Verwenden von gepufferten Kanälen
- Teil IV: Übersichtlicher Code
- Kapitel 13: Pakete in Go
- Arbeiten mit Paketen
- Verwenden von Drittanbieter-Paketen
- Kapitel 14: Module für Paketgruppen
- Erstellen eines Moduls
- Testen und Zusammensetzen eines Moduls
- Veröffentlichen eines Moduls auf GitHub
- Teil V: Go in Aktion
- Kapitel 15: Verwendung von Web-APIs mit Go
- Funktionsprinzip von Web-APIs
- Abrufen der Daten von Webservices in Go
- Kapitel 16: Eigene Webservices mit REST-APIs
- Erstellen von Webservices mit REST-APIs
- Erstellen einer REST-API in Go
- Kapitel 17: Verwendung von Datenbanken
- Einrichten eines MySQL-Datenbankservers
- Herstellen der Verbindung zur MySQL-Datenbank in Go
- Teil VI: Der Top-Ten-Teil
- Kapitel 18: Zehn praktische Go-Pakete zum Erstellen von Anwendungen
- color
- now
- go-pushbullet
- goid
- json2go
- gojq
- turtle
- go-http-client
- notify
- gosx-notifier
- Kapitel 19: Zehn nützliche Go-Ressourcen
- Die offizielle Go-Website
- Go by Example
- Go-Tour
- Häufig gestellte Fragen zu Go
- Go Playground
- Go Bootcamp
- Effective Go
- Gophercises
- Tutorialspoint
- Stack Overflow
- Abbildungsverzeichnis
- Stichwortverzeichnis
- End User License Agreement
Kapitel 1
Auf die Plätze, fertig, Go!
IN DIESEM KAPITEL
- Vorteile von Go
- Go auf Ihrem Computer installieren
- Mit einer IDE arbeiten
- Go-Programme schreiben und ihre Funktionsweise verstehen
- Go im Vergleich mit anderen Programmiersprachen
Go ist eine quelloffene Programmiersprache, die von Google erstmals im Jahr 2009 vorgestellt wurde und inzwischen immer mehr Fans findet. Mit dieser Sprache können Sie unterschiedlichste Aufgaben bewältigen und vor allem schnelle, skalierbare Anwendungen entwickeln.
Hinter Go stecken einige ziemlich clevere Köpfe, allen voran: Ken Thompson (Designer und Erfinder von Unix und C), Rob Pike (Co-Entwickler des UTF-8- und Unix-Formats) und Robert Griesemer (ein Google-Informatiker). Wenn Sie sich für technische Details interessieren und des Englischen mächtig sind, können Sie im Artikel »Go at Google: Language Design in the Service of Software Engineering« (https://talks.golang.org/2012/splash.article) nachlesen, welche Problemstellungen ursprünglich mit Go bei Google angegangen werden sollten.
In diesem Kapitel erfahren Sie, warum Go Ihrer Karriere zuträglich ist, wo diese Sprache überall eingesetzt werden kann und welche ersten Schritte Sie unternehmen müssen, um selbst mit Go zu programmieren.
Da die Website von Go unter der Adresse https://golang.org zu erreichen ist, hat sich auch die Bezeichnung Golang für diese Programmiersprache etabliert. Der offizielle Name ist jedoch Go und wird demzufolge in diesem Buch beibehalten.
Mit Go zum beruflichen Erfolg
Programmiersprachen gibt es heute viele, doch Go sticht aus der breiten Masse hervor. Dies hat mehrere Gründe:
- Go lässt sich leicht erlernen. Durch seine Syntax ist Go eine gut lesbare Sprache. Die objektorientierte Programmierung wird nicht unterstützt, sodass Sie sich keine Gedanken um Klassen und Vererbung und all die komplexen Merkmale dieses Programmierparadigmas machen müssen.
Bei der objektorientierten Programmierung (OOP) dreht sich alles um Datenobjekte. Es geht also primär nicht um Funktionen oder Logik, sondern um Daten. Ein wesentliches Konzept bei der OOP ist die Klasse (quasi eine Art Vorlage für Datenobjekte). Angenommen, Sie möchten Ihre Anwendung mit mehreren Schaltflächen versehen. Damit Sie den zugehörigen Programmcode nicht wiederholt für jede einzelne Schaltfläche schreiben müssen, können Sie eine Klasse für eine generische Schaltfläche definieren und diese dann zum Erstellen Ihrer gewünschten Schaltflächen nutzen. Dabei hat jede Schaltfläche ihre eigenen Attribute (Merkmale). Mithilfe von Vererbung können Sie bei der OOP mehrere Subklassen aus der generischen Schaltflächenklasse erzeugen, um unterschiedliche Arten von Schaltflächen zu generieren, beispielsweise Schaltflächen in Rechteckform oder mit abgerundeten Ecken und so weiter.
- Go hat eine geringere Funktionsauswahl als andere Programmiersprachen. Bei Go müssen Sie nicht erst überlegen, auf welche Weise Sie ein bestimmtes Problem am besten lösen - es gibt immer nur eine korrekte Vorgehensweise. Dadurch bleibt Ihre Codebasis viel übersichtlicher.
- Go glänzt bei nebenläufiger Programmierung. Durch sogenannte Goroutinen ist es äußerst einfach, mehrere Funktionen parallel auszuführen.
Go bietet derzeit keine Unterstützung für generische Datentypen (bei denen der tatsächliche Datentyp erst bei Verwendung angegeben werden muss), doch dies könnte sich künftig ändern, da die Sprache weiterentwickelt wird.
All das hat Sie noch nicht überzeugt? Dann habe ich ein weiteres Argument, das Sie motivieren könnte, die Programmierung mit Go zu lernen: Stack Overflow, eine Internetplattform mit Fragen und Antworten rund um das Thema Programmierung, führt jährliche Gehaltsumfragen unter Softwareentwicklern durch. Ergebnissen aus dem Jahr 2021 zufolge (siehe Stack Overflow Developer Survey 2021, https://insights.stackoverflow.com/survey/2021) landen Go-Entwickler unter den ersten zehn.
Obwohl es Go schon eine ganze Weile gibt (nämlich seit 2009), findet die Sprache erst jetzt immer mehr Zustimmung in der Softwareentwicklungsbranche, vor allem dank Cloud-Computing und Microservices. Mittlerweile kommt Go bei zahlreichen großen Unternehmen wie Dailymotion, Dropbox, Google und Uber zum Einsatz.
Die Anwendungsszenarien sind vielfältig:
- Cloud-Services: Mit Go und der Google Cloud Platform (GCP) können Sie skalierbare Apps erstellen.
- Netzwerkanwendungen: Durch die Unterstützung für Goroutinen lassen sich mit Go verteilte Serveranwendungen und Programmierschnittstellen (APIs) entwickeln.
- Webservices: Auch skalierbare und effiziente Webservices sind mit Go kein Problem.
- Befehlszeilenbasierte Anwendungen: Da Go auf mehreren Plattformen ausführbar ist, können Sie dieselbe Codebasis gezielt für verschiedene Plattformen kompilieren (zum Beispiel für macOS und Windows).
Installieren von Go auf Ihrem Computer
Bestimmt sind Sie neugierig, wie Sie nun mit Go etwas auf Ihrem Computer programmieren können. Legen wir also los!
Als Erstes müssen Sie Go installieren. Am einfachsten geht dies über die Installationsseite auf der offiziellen Go-Website: https://golang.org/doc/install. Die Website erkennt automatisch Ihr gerade genutztes Betriebssystem und bietet Ihnen die passende Installationsdatei zum Herunterladen an (siehe Abbildung 1.1).
Abbildung 1.1: Die Go-Installationsdatei steht zum Herunterladen bereit.
Die Programmbeispiele in diesem Buch wurden mit Version 1.15 von Go geschrieben und getestet. Wenn Sie dieses Buch in den Händen halten, gibt es aber bestimmt schon eine neuere Go-Version. Damit Sie trotzdem alle Beispiele problemlos ausprobieren können, sollten Sie sich dieselbe Version herunterladen, die ich auch genutzt habe. Diese finden Sie hier:
- macOS:
https://golang.org/dl/go1.15.8.darwin-amd64.pkg - Windows:
https://golang.org/dl/go1.15.8.windows-amd64.msi
Wenn Sie alle verfügbaren Installationsdateien für die unterstützten Plattformen (Linux, macOS und Windows) oder sogar den Quellcode von Go sehen möchten, öffnen Sie folgende Seite in Ihrem Browser: https://golang.org/dl/.
Nachdem Sie die Go-Installationsdatei heruntergeladen haben, führen Sie sie per Doppelklick aus, um den Installationsvorgang zu starten. Es öffnet sich ein Dialogfenster, in dem Sie der Endbenutzer-Lizenzvereinbarung zustimmen müssen und dann den gewünschten Speicherort für die Go-Dateien angeben können. Unter Windows wird standardmäßig der Ordner Programme beziehungsweise Programme (x86) vorgeschlagen. Damit Sie die Beispiele aus diesem Buch leicht nachvollziehen können, ändern Sie diese Einstellung und speichern Sie die Dateien stattdessen unter C:\Go. Alle anderen Standardeinstellungen können Sie beibehalten. Klicken Sie zum Schluss auf die Schaltfläche INSTALL. Go wird nun innerhalb weniger Sekunden installiert. Nach Abschluss des Vorgangs erscheint ein Bestätigungsfenster (siehe Abbildung 1.2).
Abbildung 1.2: Der Go-Installationsvorgang ist abgeschlossen.
In den folgenden Abschnitten zeige ich Ihnen, wie Sie unter macOS und Windows überprüfen können, ob Go korrekt installiert wurde.
macOS
Unter macOS wird die Go-Distribution standardmäßig im Verzeichnis /usr/local/go installiert. Außerdem fügt das Installationsprogramm automatisch das Verzeichnis /usr/local/go/bin zur PATH-Umgebungsvariablen hinzu. Dies lässt sich leicht überprüfen. Öffnen Sie dazu die Terminal-App (die Sie im Ordner Programme/Dienstprogramme finden) und geben Sie folgenden Befehl ein:
$ echo $PATH
Sie sehen nun eine Ausgabe ähnlich der folgenden, nur dass statt weimenglee Ihr eigener Benutzername erscheint (der neu hinzugefügte Go-Pfad ist fett hervorgehoben):
/Users/weimenglee/opt/anaconda3/bin:/Volumes/SSD/opt/anaco
nda3/condabin:/Users/weimenglee/flutter/bin:/Users/weimeng
lee/go/bin:/Users/weimenglee/.nvm/versions/node/v9.2.0/bin
:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/g
o/bin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/App
le/usr/bin:/Library/Frameworks/Mono.framework/Versions/Cur
rent/Commands
Starten Sie die Terminal-App neu, nachdem Sie Go installiert haben, damit die geänderten Einstellungen korrekt...
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.