Go (Golang): Eine Einführung in 130 Minuten // deutsch

2022-07-04に共有
Die Programmiersprache Go (Golang) ist das C des 21. Jahrhunderts. Doch wie funktioniert Go? Was verbindet Go und C und wo liegen Unterschiede? Golo Roden, Gründer und CTO der the native web GmbH, erklärt in diesem Video die Grundlagen von Go, angefangen beim klassischen "Hallo Welt" bis hin zur Synchronisation von nebenläufigem Code mit Hilfe von Channels und den Möglichkeiten zur Cross-Compilation, einschließlich WebAssembly (WASM).

go.dev/

0:00:00 – Einleitung
0:01:35 – Was ist Go (Golang)?
0:03:13 – Go installieren
0:04:28 – Module und Packages
0:11:26 – Ausführen und kompilieren
0:13:30 – Packages importieren
0:18:04 – Aus Packages exportieren
0:19:26 – Funktionen definieren
0:23:07 – Parameter und Argumente
0:24:15 – Mehrere Rückgabewerte
0:26:59 – Variablen definieren
0:30:49 – Defaultwerte von Variablen
0:32:19 – Die verfügbaren Typen
0:35:35 – Typen konvertieren
0:36:56 – Konstanten definieren
0:37:45 – Zählschleifen (for)
0:41:18 – Abweisende Schleifen (while)
0:44:01 – Endlosschleifen
0:45:09 – Entscheidungen (if)
0:51:01 – Entscheidungen (switch)
0:55:13 – Funktionen höherer Ordnung
1:06:14 – Pointer verwenden
1:12:40 – Datenstrukturen als Structs definieren
1:16:01 – Structs initialisieren
1:19:49 – Arrays definieren
1:21:53 – Slices definieren
1:25:01 – Slices um neue Werte erweitern
1:27:06 – Über Arrays und Slices iterieren
1:29:37 – Maps definieren
1:34:40 – Methoden an Structs anhängen
1:40:59 – Value-Receiver vs Pointer-Receiver
1:42:59 – Interfaces definieren
1:45:04 – Type-Assertions und Interfaces
1:49:41 – Das Stringer-Interface
1:53:13 – Fehler behandeln
1:56:50 – Ein Ausblick auf Generics
1:57:23 – Asynchroner Code mit Go-Routinen
1:59:30 – Mit Channels synchronisieren
2:03:30 – Queues mit Buffered Channels implementieren
2:04:34 – Weiterführende asynchrone Konzepte
2:05:49 – Cross-Compilation: Für andere Plattformen kompilieren
2:07:39 – WebAssembly (WASM) erzeugen
2:08:37 – Weiterführende Themen

────────────────────

Über the native web 🦄

Wir sind ein Beratungs-, Schulungs- und Entwicklungsunternehmen, das sich auf Web- und Cloud-Technologien spezialisiert hat. Wir streben nach intelligenten und eleganten Lösungen für komplexe Probleme, und wir glauben, dass Softwareentwicklung kein Selbstzweck ist. Stattdessen sollte Software tatsächliche Probleme der realen Welt lösen.

Wir glauben, dass native Web- und Cloud-Technologien das Fundament sind, auf dem die Zukunft aufbaut. Unsere Kernkompetenz ist der Entwurf und die Entwicklung verteilter Web- und Cloud-Anwendungen unter Verwendung dieser Technologien in interdisziplinären Teams. Wir entwickeln auch unser eigenes Open-Source-Framework namens wolkenkit. Und wir lieben es, unser Wissen in Schulungen und Workshops, auf Konferenzen und bei Usergroups zu teilen.

⬥ Kanal abonnieren:    / @thenativeweb  

────────────────────

Weiterführende Links 🌍

⬥ Webseite: www.thenativeweb.io/
⬥ Twitter: twitter.com/thenativeweb, twitter.com/goloroden
⬥ Discord: discord.gg/ZQbSDQyJ2m
⬥ GitHub: github.com/thenativeweb
⬥ wolkenkit: www.thenativeweb.io/wolkenkit/framework
⬥ Impressum: www.thenativeweb.io/company/legal-notice

コメント (21)
  • Ich schreibe ja sehr selten Kommentare, und dieses Video habe ich auch nur überflogen, aber eins kann ich sagen: Sehr fachlich erklärt und perfekt zusammengefasst! Ich bin jetzt seit ca. 2 Monaten in Go aktiv und mag die Sprache ebenfalls sehr. Was ich mir noch wünschen würde, wäre ein Video, welchen Ansatz ihr für HTTP und SQL gewählt habt: Einen Router oder ein Framework? Ein SQL-Builder oder ein ORM? Und macht weiter so :)
  • Die beste golang Einführung auf Deutsch bis jetzt auf YT. Große Klasse. Besten Dank!👍
  • Danke für diesen hilfreichen Rundumschlag in Go. Qualitativ hochwertiger Content, charmant und leicht rübergebracht. Das Thema SQL und Unit Testing würde mich auch brennend interessieren.
  • @fanaFSF
    Habe schon viele Go Einführungsvideos geschaut. Die meisten auf Englisch. Dachte man kann die anderen nicht mehr toppen aber deine Einführung war wirklich super genial.
  • Ich fange gerade mit der Sprache an und habe mich spätestens bei den Receiver Funktionen sehr verloren gefühlt (Oder den fehlenden Klassen xD). Bin dann auf dieses Video gestoßen und fand es mega wie gut wie einfach hier alles erklärt wurde. Sehr gutes Video, danke 😁
  • @domemvs
    Sehr gute Einführung, danke dafür! Da man sich ja etwas wünschen darf: ich fände ein Video rund um "Concurrency in Go" wirklich gut. Also Go Routines, Channels, das Select Pattern, Mutex und Co. Ich lese dazu gerade das Buch "Concurrency in Go", das ich btw sehr empfehlen kann.
  • @yahmk3978
    Vielen herzlichen Dank für diese ausführliche Einführung. Sie war sehr lehrreich und es war zu keinem Zeitpunkt irgendwie langweilig oder sonstwie harzig.
  • Ich könnte mir 15-Minüter vorstellen zu • Pointer • Channels • Error Handling Vielen Dank, Golo! 🚀
  • Deine ausführlichen Einführungen in verschiedene Themen sind wirklich Klasse. Man wird da schon fast süchtig. Ich bin ein BI- und Datenbank-Entwickler, und interessiere mich dabei auch für das Drumherum. Und hier bekommt man einen Eindruck anderer Technologien (Node, JS, Go, verschiedene Frameworks, ...), auch mit persönlichen Meinungen versehen. Regelmäßig, ausführlich, fundiert. Und das wahrscheinlich noch neben der eigentlichen Arbeit. Ich hatte mal zu einem Thema mit einem Produkt nur ein 10-Minuten-Video gemacht, und das war schon aufwendig. Und hier wird produziert und produziert. Und dann werden sogar noch Kommentare gelesen. Hut ab!
  • @maniheister
    vielen dank für das super video! auch wenn es bereits über 1 jahr alt ist, hat es geholfen die ersten hürden in go zu nehmen 👍 und hat mir auch einige schreibweisen, über die ich in aktuellen videos gestolpert bin, näher gebracht 😁
  • Wie gestern schon im Stream geschrieben. Cli clear kann man mit control + l (L) oder unter Windows/Linux mit strg + l machen. Danke für die gute Einführung, habe wie immer viel gelernt.
  • @men6718
    Golo ist ein extrem guter Entwickler, das merkt man direkt. Wünsch mir mehr Erklär Video von ihm bzgl. Golang und andere Packages. Niveau bitte halten ;--) das macht spaß jemand so erfahrenen beim erklären zuzuhören.
  • Lieber Golo, Dank Deines Videos hab ich mir mal Go und Fyne mit der Demo App installiert und kann nur sagen :"Da hauts ma den Beidl auf´d Seitn" . Herzlichen Dank für Deine Videos und ich darf sagen dass ich mir heute sehr viele Gedanken mache über ein bevorstehendes Projekt (Cross-Platform, Desktop and mobile) . Go/Fyne scheint hier DAS Mittel meiner Wahl zu werden. Nochmals herzlichen Dank für all Deine/Eure Videos
  • @MibarMe
    Danke für den kompetenten Einstieg in die Go Welt! 😇
  • @Andreas5564
    Ich habe dein Tutorial jetzt von Anfang bis zum Ende mit programmiert. Die Sprache Go gefällt mir sehr gut. Am meisten stört es mich, dass man alles was man definiert auch nutzen muss. Dies führt dann in einigen Fällen, dazu das man ein spezielles Zeichen (den Unterstrich) benötigt. Z.B.: Um sich nur die Werte eines Arrays und nicht zusätzlich den Index ausgeben zu lassen. Und das alles nur weil Google versucht hat "schlechten" Programmierstil zu verbieten, in dem die Ausführung blockiert wird. Aufbauend an das Video werde ich mir ein Par eigene Programmieraufgaben überlegen oder von ChatGPT generieren lassen. Z.B.: Das Sortieren eines Arrays mit Zahlen nach Größe. Wenn du am Ende deines Videos ein Par solcher aufgaben zum selber programmieren gestellt hättest, in denen man das Gelernte anwenden kann, hätte mich das sehr gefreut. Dein Tutorial hat mir dennoch sehr gut gefallen. Vielen Dank!
  • Ich fühle mich als C-Entwickler irgendwie sehr gut beherbergt, wenn ich das mal so sagen darf :) Vor allem die Nebenläufigkeit gefällt mir richtig gut.
  • @eddi4528
    Super Video, da will man direkt anfangen Go zu entwickeln.
  • Nachdem im Coding Circle ja doch das eine oder andere Beispiel in Go besprochen wird, dachte ich mir, es ist an der Zeit sich damit auseinander zu setzten. Ich habe die aktuelle Challenge (tic-tac-toe) jetzt auch mal in Go implementiert. Unter dem Strich und auch nach diesem Video hier muss ich sagen, es fühlt sich sehr eingängig und produktiv an. Nach Python habe ich ja vor rund 2 Jahren zu Rust gewechselt (meine typischen Problemstellungen sind für Python meistens "zu schwere Kost" (viel Daten, viel Text, keine Main Stream Probleme, für die es Libraries gibt) und bin von Rust nach wie vor begeistert. Im Unterschied zu Rust, wo Du aber jeden Schritt von Anfang an überlegen musst und gewisse Sprachkonstrukte und Teile der Syntax eher ungewohnt sind, fühlt sich Go sehr natürlich an. Was mir in Go etwas fehlt, ist die "Kontrolle" über das, was passiert. Am Beispiel Map -> Go hat eine Map, die funktioniert wie sie funktioniert, keine Kontrolle über den Hashing Algorithmus der angewendet wird oder ähnliches. Ebenso vermisse ich die explizite Behandlung von potentiell fehlenden Werten, wie das Rust mit der Option<> Enum macht. Dafür wird man aber so wie ich das bis jetzt erlebe, mit einem guten Mix aus Produktivität und in der Sprache eingebauter Sicherheit entschädigt. Ich bleibe jedenfalls mal dran...
  • @TheDaple
    Endlich konnte ich mir das Video mal komplett anschauen. Großartige Einführung, vielen Dank! Bevor ich mir was wünsche schaue ich mir aber noch die Node –> Go Migration an, wahrscheinlich kommt da noch einiges drin vor :) Unit-Tests in Go wären aber trotzdem sehr interessant..
  • Danke für die Einführung. Ich bin Programmieranfänger und beschäftige mich seit einigen Wochen mit go, Ich bin von den Vorteilen echt begeistert, wie automatische Imports, mehrere Rückgabewerte, automatisches Format, lauffähig auf allen Systemen. Ich bin gerade am html/template dran. Viele Grüße Michael