Vorwort

Diese Arbeit wurde mithilfe von KI übersetzt. Wir freuen uns über dein Feedback und deine Kommentare: translation-feedback@oreilly.com

Im Vorwort der ersten Ausgabe habe ich geschrieben:

Meine erste Wahl für einen Buchtitel war "Langweiliges Go", weil Go, richtig geschrieben,langweilig ist....

Langweilig ist nicht gleichbedeutend mit trivial. Um Go richtig zu nutzen, musst du verstehen, wie seine Funktionen zusammenpassen. Du kannst zwar Go-Code schreiben, der wie Java oder Python aussieht, aber du wirst mit dem Ergebnis unzufrieden sein und dich fragen, wozu die ganze Aufregung gut sein soll. Genau da setzt dieses Buch an. Es führt dich durch die Funktionen von Go und erklärt dir, wie du sie am besten nutzt, um idiomatischen Code zu schreiben, der wachsen kann.

Go bleibt eine kleine Sprache mit einem kleinen Funktionsumfang. Ihr fehlen noch immer Vererbung, aspektorientierte Programmierung, Funktionsüberladung, Operatorüberladung, Mustervergleich, benannte Parameter, Ausnahmen und viele weitere Funktionen, die andere Sprachen komplizierter machen. Warum also braucht ein Buch über eine langweilige Sprache ein Update?

Es gibt ein paar Gründe für diese Ausgabe. Erstens: So wie langweilig nicht trivial bedeutet, bedeutet es auch nicht gleichbleibend. In den letzten drei Jahren sind neue Funktionen, Werkzeuge und Bibliotheken hinzugekommen. Verbesserungen wie strukturiertes Logging, Fuzzing, Workspaces und Schwachstellenprüfung helfen Go-Entwicklern, zuverlässigen, dauerhaften und wartbaren Code zu erstellen. Jetzt, da Go-Entwickler schon einige Jahre Erfahrung mit Generika haben, wurden Typeinschränkungen und generische Funktionen in die Standardbibliothek aufgenommen, um sich wiederholenden Code zu reduzieren. Sogar das unsichere Paket wurde aktualisiert, um es ein wenig sicherer zu machen. Go-Entwickler/innen brauchen eine Ressource, die erklärt, wie sie diese neuen Funktionen am besten nutzen können.

Zweitens wurden einige Aspekte von Go in der ersten Ausgabe nicht richtig behandelt. Das Einführungskapitel war nicht so flüssig, wie ich es mir gewünscht hätte. Das reichhaltige Go-Tool-Ökosystem wurde nicht erforscht, und die Leser der ersten Ausgabe haben sich Übungen und zusätzlichen Beispielcode gewünscht. Diese Ausgabe versucht, diese Mängel zu beheben.

Endlich hat das Go-Team etwas Neues eingeführt, und, ich wage es zu sagen, aufregend. Es gibt jetzt eine Strategie, die es Go ermöglicht, die für langfristige Softwareentwicklungsprojekte erforderliche Abwärtskompatibilität beizubehalten und gleichzeitig die Möglichkeit zu bieten, rückwärtsgerichtete Änderungen einzuführen, um seit langem bestehende Designfehler zu beheben. Die neuen for Schleifenvariablen-Scoping-Regeln, die in Go 1.22 eingeführt wurden, sind die erste Funktion, die sich diesen Ansatz zunutze macht.

Go ist immer noch langweilig, es ist immer noch fantastisch und besser als je zuvor. Ich wünsche dir viel Spaß mit dieser zweiten Ausgabe.

Wer sollte dieses Buch lesen?

Dieses Buch richtet sich an Entwickler, die eine zweite (oder fünfte) Sprache erlernen möchten. Der Schwerpunkt liegt auf Leuten, die neu in Go sind. Das reicht von denen, die nichts über Go wissen, außer dass es ein süßes Maskottchen hat, bis hin zu denen, die bereits ein Go-Tutorial durchgearbeitet oder sogar schon Go-Code geschrieben haben. Bei Learning Go geht es nicht nur darum, wie man Programme in Go schreibt, sondern auch darum, wie man Go idiomatisch schreibt. Erfahrene Go-Entwickler/innen finden Ratschläge, wie sie die neueren Funktionen der Sprache am besten nutzen können. Das Wichtigste ist, dass der Leser lernen will, wie man Go-Code schreibt, der wie Go aussieht.

Erfahrung mit den Werkzeugen der Entwickler wie Versionskontrolle (vorzugsweise Git) und IDEs wird vorausgesetzt. Die Leser/innen sollten mit grundlegenden Konzepten der Informatik wie Gleichzeitigkeit und Abstraktion vertraut sein, da das Buch erklärt, wie sie in Go funktionieren. Einige der Code-Beispiele können von GitHub heruntergeladen werden, und Dutzende weitere können online auf dem Go Playground ausprobiert werden. Eine Internetverbindung ist zwar nicht erforderlich, aber hilfreich, wenn du dir die ausführbaren Beispiele ansiehst. Da Go häufig zum Erstellen und Aufrufen von HTTP-Servern verwendet wird, setzen einige Beispiele die Kenntnis grundlegender HTTP-Konzepte voraus.

Die meisten Funktionen von Go sind auch in anderen Sprachen zu finden, aber Go geht andere Kompromisse ein, so dass die in Go geschriebenen Programme eine andere Struktur haben. Go lernen beginnt damit, wie man eine Go-Entwicklungsumgebung einrichtet, und behandelt dann Variablen, Typen, Kontrollstrukturen und Funktionen. Wenn du versucht bist, dieses Material zu überspringen, widerstehe dem Drang und sieh es dir an. Es sind oft die Details, die deinen Go-Code idiomatisch machen. Manches, was auf den ersten Blick offensichtlich erscheint, kann bei näherem Nachdenken tatsächlich überraschend sein.

In diesem Buch verwendete Konventionen

In diesem Buch werden die folgenden typografischen Konventionen verwendet:

Kursiv

Weist auf neue Begriffe, URLs, E-Mail-Adressen, Dateinamen und Dateierweiterungen hin.

Constant width

Wird für Programmlistings sowie innerhalb von Absätzen verwendet, um auf Programmelemente wie Variablen- oder Funktionsnamen, Datenbanken, Datentypen, Umgebungsvariablen, Anweisungen und Schlüsselwörter hinzuweisen.

Constant width bold

Zeigt Befehle oder anderen Text an, der vom Benutzer wortwörtlich eingetippt werden sollte.

Constant width italic

Zeigt Text an, der durch vom Benutzer eingegebene Werte oder durch kontextabhängige Werte ersetzt werden soll.

Tipp

Dieses Element steht für einen Tipp oder eine Anregung.

Hinweis

Dieses Element steht für einen allgemeinen Hinweis.

Warnung

Dieses Element weist auf eine Warnung oder einen Warnhinweis hin.

Code-Beispiele verwenden

Zusätzliches Material (Code-Beispiele, Übungen usw.) steht unter https://github.com/learning-go-book-2e zum Download bereit .

Wenn du eine technische Frage oder ein Problem mit den Codebeispielen hast, sende bitte eine E-Mail an

Dieses Buch soll dir helfen, deine Arbeit zu erledigen. Wenn in diesem Buch Beispielcode angeboten wird, darfst du ihn in deinen Programmen und deiner Dokumentation verwenden. Du musst uns nicht um Erlaubnis fragen, es sei denn, du reproduzierst einen großen Teil des Codes. Wenn du zum Beispiel ein Programm schreibst, das mehrere Teile des Codes aus diesem Buch verwendet, brauchst du keine Erlaubnis. Der Verkauf oder die Verbreitung von Beispielen aus O'Reilly-Büchern erfordert jedoch eine Genehmigung. Die Beantwortung einer Frage mit einem Zitat aus diesem Buch und einem Beispielcode erfordert keine Genehmigung. Wenn du einen großen Teil des Beispielcodes aus diesem Buch in die Dokumentation deines Produkts aufnimmst, ist eineGenehmigung erforderlich.

Wir schätzen die Namensnennung, verlangen sie aber nicht. Eine Quellenangabe umfasst normalerweise den Titel, den Autor, den Verlag und die ISBN. Zum Beispiel: "Learning Go von Jon Bodner (O'Reilly). Copyright 2024 Jon Bodner, 978-1-098-13929-2."

Wenn du der Meinung bist, dass die Verwendung von Code-Beispielen nicht unter die Fair-Use-Regelung oder die oben genannte Erlaubnis fällt, kannst du uns gerne unter kontaktieren

O'Reilly Online Learning

Hinweis

Seit mehr als 40 Jahren bietet O'Reilly Media Schulungen, Wissen und Einblicke in Technologie und Wirtschaft, um Unternehmen zum Erfolg zu verhelfen.

Unser einzigartiges Netzwerk von Experten und Innovatoren teilt sein Wissen und seine Erfahrung durch Bücher, Artikel und unsere Online-Lernplattform. Die Online-Lernplattform von O'Reilly bietet dir On-Demand-Zugang zu Live-Trainingskursen, ausführlichen Lernpfaden, interaktiven Programmierumgebungen und einer umfangreichen Text- und Videosammlung von O'Reilly und über 200 anderen Verlagen. Weitere Informationen erhältst du unter http://oreilly.com.

Wie du uns kontaktierst

Bitte richte Kommentare und Fragen zu diesem Buch an den Verlag:

Wir haben eine Webseite für dieses Buch, auf der wir Errata, Beispiele und zusätzliche Informationen auflisten. Du kannst diese Seite unter https://oreil.ly/learning-go-2ed aufrufen .

Neuigkeiten und Informationen über unsere Bücher und Kurse findest du unter https://oreilly.com.

Finde uns auf LinkedIn: https://linkedin.com/company/oreilly-media

Folge uns auf Twitter: https://twitter.com/oreillymedia

Schau uns auf YouTube: https://youtube.com/oreillymedia

Danksagungen für die 2. Auflage

Ich bin bescheiden und geschmeichelt von der Reaktion auf die erste Ausgabe von Learning Go. Es wurde Ende 2019 begonnen, Ende 2020 fertiggestellt und Anfang 2021 veröffentlicht. Es war ungewollt mein eigenes Pandemieprojekt. Einige Leute haben Brot gebacken, ich habe Hinweise gegeben.

Nachdem ich fertig war, fragten mich die Leute, was mein nächstes Buch sein würde. Ich sagte ihnen, dass ich mir eine wohlverdiente Pause gönnen und mich dann an einen Liebesroman machen würde. Aber bevor ich anfangen konnte, über Piraten und Prinzessinnen zu schreiben, passierte etwas Erstaunliches: Learning Go war ein großer Erfolg. Fast ein ganzes Jahr lang war es eines der fünf beliebtesten Bücher bei O'Reilly Learning. Als die Verkaufszahlen weiter stiegen, sah ich Dinge in der ersten Ausgabe, die ich verbessern wollte, und erhielt Briefe von Lesern, die mich auf Fehler und Auslassungen hinwiesen. Einige Fehler wurden in späteren Auflagen korrigiert, aber ich habe mich an O'Reilly gewandt, um herauszufinden, ob sie an einer Neuauflage interessiert sind, und sie waren interessiert.

Die Rückkehr zu Learning Go und O'Reilly für die zweite Ausgabe war eine angenehme Erfahrung. Rita Fernando hat uns mit Rat und Tat zur Seite gestanden, Feedback gegeben und den Text redigiert. Diese Ausgabe wurde durch das Feedback von Jonathan Amsterdam, Leam Hall, Katie Hockman, Thomas Hunter, Max Horstmann und Natalie Pistunovich unermesslich verbessert. Chris Hines hat eine unglaublich gründliche Arbeit geleistet, indem er meine Fehler gefunden und bessere Beispiele vorgeschlagen hat. Die Kommentare und das Feedback von Abby Deng und den Mitgliedern des Go Book Club bei Datadog haben es mir ermöglicht, Änderungen vorzunehmen, die auf dem Feedback von Entwicklern beruhen, die neu in Go sind. Die (hoffentlich wenigen) verbleibenden Fehler sind alle von mir.

Meine Frau und meine Kinder hatten nichts dagegen, dass ich die Filmabende mit der Familie ausfallen ließ, während ich herausfand, wie ich die neuen Go-Funktionen am besten beschreiben kann.

Ich möchte mich auch bei den Leserinnen und Lesern der ersten Ausgabe bedanken, die sich mit netten Worten an mich gewandt haben. Ich danke euch allen für eure Unterstützung und Ermutigung.

Danksagungen für die 1. Auflage

Ein Buch zu schreiben scheint eine einsame Aufgabe zu sein, aber es geht nicht ohne die Hilfe von vielen Menschen. Als ich Carmen Andoh auf der GopherCon 2019 erzählte, dass ich ein Buch über Go schreiben wollte, stellte sie mich Zan McQuade bei O'Reilly vor. Zan begleitete mich durch den Akquisitionsprozess und stand mir auch während des Schreibens von Learning Go mit Rat zur Seite. Michele Cronin lektorierte den Text, gab mir Feedback und hörte mir während der unvermeidlichen schwierigen Phasen zu. Das Lektorat von Tonya Trybula und das Produktionslektorat von Beth Kelly machten meinen Entwurf produktionsreif.

Während des Schreibens erhielt ich kritisches Feedback (und Ermutigung) von vielen Menschen, darunter Jonathan Altman, Jonathan Amsterdam, Johnny Ray Austin, Chris Fauerbach, Chris Hines, Bill Kennedy, Tony Nelson, Phil Pearl, Liz Rice, Aaron Schlesinger, Chris Stout, Kapil Thangavelu, Claire Trivisonno, Volker Uhrig, Jeff Wendling und Kris Zaragoza. Mein besonderer Dank gilt Rob Liebowitz, der mit seinen detaillierten Notizen und schnellen Antworten dazu beigetragen hat, dass dieses Buch viel besser geworden ist, als es ohne seine Bemühungen gewesen wäre.

Meine Familie ertrug es, dass ich die Nächte und Wochenenden am Computer verbrachte, anstatt bei ihnen zu sein. Vor allem meine Frau Laura tat gnädigerweise so, als würde ich sie nicht wecken, wenn ich um 1 Uhr morgens oder später ins Bett kam.

Schließlich möchte ich mich an die beiden Menschen erinnern, die mich vor vier Jahrzehnten auf diesen Weg gebracht haben. Der erste ist Paul Goldstein, der Vater eines Jugendfreundes. 1982 zeigte Paul uns einen Commodore PET, tippte PRINT 2 + 2 ein und drückte die Enter-Taste. Ich war erstaunt, als auf dem Bildschirm die Zahl 4 erschien und war sofort begeistert. Später brachte er mir das Programmieren bei und ließ mich den PET sogar für ein paar Wochen ausleihen. Zweitens möchte ich meiner Mutter dafür danken, dass sie mein Interesse am Programmieren und an Computern geweckt hat, obwohl ich keine Ahnung hatte, wofür das alles gut war. Sie kaufte mir die BASIC-Programmierkassette für den Atari 2600, einen VC-20 und dann einen Commodore 64, zusammen mit den Programmierbüchern, die mich inspirierten, eines Tages selbst zu programmieren.

Ich danke euch allen, dass ihr mir geholfen habt, meinen Traum zu verwirklichen.

Get Go lernen, 2. Auflage now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.