
Ein kurzer Überblick, warum Go eine der besten Programmiersprachen ist, die man heute lernen kann, und warum sie die perfekte Wahl für eine Webanwendung ist.
Der Titel sagt es schon, wir installieren Go und richten Visual Studio Code als Entwicklungsumgebung (IDE) ein.
TL;DR;
Verwenden Sie die zugehörige Kursübersicht als PDF. Sie ist Teil des Kurses.
Überspringen Sie keine Teile, wenn Sie nicht sicher sind, dass Sie den Inhalt kennen.
Tippen, nicht Kopieren, ist der Weg zum Erfolg!
Dieser Kurs wird mit einem PDF geliefert, das sich als begleitender Teil des Kurses versteht.
Ein kurzer Überblick über den Kurs, damit Sie einen ersten Eindruck von dem bekommen, was Sie erwartet.
Eine Sammlung von Quellen aus dem Internet, die im Kurs verwendet werden.
Die nachfolgende Liste kann mit enthaltenen Links in Form einer PDF in den Materialien zu diesen Lektion heruntergeladen werden und ist darüber hinaus in der kursbegleitenden PDF enthalten.
Über GO
GO Website
The GO Playground
GO’s Standard Library
GO Packages
GO Specifications
GoByExample
Verwendete Entwicklungsumgebung
Visual Studio Code
Abhängigkeiten dieses Projekts
github.com/go-chi/chi/v5 | Router
github.com/alexedwards/scs/v2 | Sessions
github.com/justinas/nosurf | CSRF-Token
github.com/asaskevich/govalidator | Validator (server-sided)
github.com/jackc/pgx/v5 | PostgreSQL Driver & Toolkit
github.com/xhit/go-simple-mail | Golang package for sending e-mail
Caddy 2 | a powerful, enterprise-ready, open source web server with automatic HTTPS written in Go
Ebenfalls eine Rolle spielen
github.com/twbs/bootstrap | Bootstrap - HTML, CSS, and JavaScript framework (no jQuery)
RoyalUI-Free-Bootstrap-Admin-Template | Free Bootstrap 4 Admin Template
github.com/fiduswriter/Simple-DataTables | DataTables but in TypeScript transpiled to Vanilla JS
github.com/postgres/postgres | PostgreSQL Server (mirror only)
github.com/gobuffalo/pop | Soda/Migrations - standardization of database tasks
github.com/dbeaver/dbeaver | Dbeaver - free multi-platform database tool
github.com/mymth/vanillajs-datepicker | Vanilla JavaScript datepicker
github.com/jaredreich/notie | unobtrusive notifications - clean and simple JavaScript
github.com/jackc/pgx/v5 | SweetAlert2 - so many options for JavaScript popups
github.com/mailhog/MailHog | MailHog - Web and API based SMTP testing
Foundation for Emails 2 | Quickly create responsive HTML e-mails that work
Cobra | A Framework for Modern CLI Apps in Go
GoDotEnv | A Go port of Ruby's dotenv library
Noch mehr Hinweise - vor der ersten Zeile Code überhaupt!
Die fundamentalen Grundlagen zur Programmerstellung in Go
Weitere Grundlagen
Kurzer Blick auf Funktionen in Go
Lernen Sie wie Pointer in Go benutzte werden (und noch etwas über Strings)
Die geheime Dasein der Variablen und wie mit struct Ordnung ins Chaos bringt
Methoden werden mittels der Receiver von Funktionen an Structs gebunden
Nicht Brot & Butter, sondern Goji Berren aus Steroiden
Wie man in Go Entscheidungen trifft
Iteration über Werte verschiedene Datentypen mit Schleifen und dem Keyword range
Interfaces ermöglichen es Werten als von mehr als einem Typ betrachtet zu werden: unter Bedingungen
Unterstützung durch Paketverwaltung in Go
Channels sind eine Verbindung zwischen Goroutinen, die Ihnen bei Datenübertragungen eine unvergessliche Fahrt über den Kanal beschert.
Werden wir brauchen, daher ein kurzer Blick auf das JSON Format.
Oft sträflich vernachlässigt, aber nicht minder wichtig ist es, den Code zu testen!
Wir rufen unsere erste Webanwendung ins Leben
Eine kleine Übersicht über den HTTP Request/Response Cycle und wo unsere Webanwendung dort einzuordnen ist
Unsere Handler werden durch interne Funktionen unterstützt.
Lernen Sie, wie man mit Fehlern richtig umgeht.
Wir lernen, wie man HTML-Templates benutzt.
Aufräumen, Code auf mehrere Dateien verteilen und Bootstrap für Styling integrieren.
Wir strukturieren unsern Code neu, damit er bereit ist, von Go modules verarbeitet zu werden.
Lernen Sie Layouts zu nutzen, um alles aus Ihren Templates herauszuholen.
Lernen Sie eine Methode kennen, einen einfachen dynamisch wachsenden Cache aufzubauen.
Ein statischer Cache für Templates bietet Vorteile für unsere Webanwendung.
Wir nutzen eine globale Variable, die wir in einer Konfigurationsdatei verfügbar machen.
Wir nutzen die in der Konfigurationsdatei definierte globale Variablen, um einen statischen Cache zu erstellen, den man ein- und ausschalten kann.
Hinweise zur Nutzung einer Konfigurationsdatei.
Lernen Sie, wie man Daten in Templates verfügbar macht und sie dort einsetzt.
Lernen Sie, was Routing für die Implementierung von Middleware bedeutet
Lernen Sie ein externes Package zu importieren und zu benutzen.
Wechsel des externen Routing Packages.
Lernen Sie, wie man Middleware in Go mit einer schnellen Übung erstellt und werden Sie in kürzester Zeit ein Middleware-Meister!
Implementierung einer Middleware in Form eines Paketes zur Erstellung und Verwaltung von Sessiondaten.
Ein kurzer Test, ob die Übergabe von in Sessions eingebetteter Daten funktioniert.
Lernen Sie, ein Projekt grob zu skizzieren und den Umfang und Arbeitsaufwand zu schätzen.
Ein kurzer Hinweis, warum die Nutzung von github.com eine gute Idee sein könnte.
Bei der Einbindung von "static files" in Webanwendungen geht es darum, statische Dateien wie CSS, JavaScript und Bilder zu integrieren.
Wie ursprüngliches und modernes HTML arbeiten.
Wir richten eine serverlose Entwicklungsumgebung ein, um HTML-Seiten zu erstellen, die wir später in Go Templates umwandeln werden. Wir starten mit der Landing Page.
Mit einer einfachen Landing Page sind die Bungalow-Seiten 1-2-3-Fertig!
Erstellung einer HTML-Seite mit einem Formular, um Daten vom Benutzer zu bekommen.
Ein HTML-Formular, um eine Reservierung zu machen.
Wir nutzen Vanilla JS Code eines Dritt-Anbieters für die Datumsauswahl.
Implentierung des JS Pakets „notie“.
JS Paket Sweetalert2 für Modal-Fenster.
Wir erstellen unser eigenes JS Modul.
Wir implementieren eine neue Funktion in unserem JS-Modul und versuchen, diese mit einem Button bereitzustellen.
Eigene CSS in eine lokale Datei auslagern, CSS Importe durchsortieren und ein kurzer Blick auf die Funktionsweise von CSS.
Erfahren Sie wie Sie aus einfachem HTML Templates zur Nutzung in Go erstellen.
Wir sorgen für Sicherheit gegen Cross-Site Request Forgery (CSRF), indem wir mit der Middleware NoSurf, für jeden potentiellen POST-Request einen Token generieren.
Erfahren Sie, wie Sie mit Golang einen Handler erstellen können, der Daten im JSON-Format zurückgibt.
In dieser Lektion lernen Sie, wie ein Request via JavaScript an unsere Webanwendung eine Antwort von unseren JSON-Daten liefernden Handler auslösen kann und dessen Antwort zu interpretieren und die Daten in JavaScript zu verwenden!
Darüber hinaus lernen Sie, die Funktion custom() in Javascript anzupassen, damit sie mehr Allgemeingültigkeit hat.
Halten Sie die Struktur Ihres Codes sauber - führen Sie eine Refaktorisierung durch!
Eine kleine Übersicht, was serverseitige Validierung ist und warum sie in vielen Fällen mehr Sinn macht als clientseitige Validierung (allein).
Werten Sie Formulardaten aus und erkennen Sie Fehler.
Erstellen Sie ein Packages model, das Datenmodelle hält und erstellen Sie neue Validatoren.
Erstellen Sie weitere Felder und machen Sie gleich mehrere davon zu „notwendigen“ Feldern.
Lernen Sie wie Sie ein externes Package nutzen können, das weitere Validatoren zur Verfügung stellt.
Nutzen Sie Sessions, um die gesammelten Reservierungsdaten nach der Reservierung auf einer Übersichtsseite anzuzeigen.
Nutzen Sie notie, um dem Benutzer Feedback zu seinen Aktionen zu geben.
Vorstellung einer alternativen Template Engine.
Über den Sinn und Zweck, aber auch die Wichtigkeit von Tests in GO.
Lernen Sie, wie Sie GET-Request-Handler testen.
Lernen Sie wie Sie POST-Request-Handler testen.
Um ein Package unter immer gleichen Umgebungen zu testen, ist es nötig eine solche Umgebung anzulegen.
Lernen Sie wie sie auch für die anderen Funktionen im Package render Tests hinzufügen.
Werfen Sie einen Blick auf die Abdeckung des Tests für die Packages handlers und render.
Schreiben Sie einen grundlegenden Test für das Package forms.
Implementierung von Funktionen zur Unterscheidung von client-seitgen und server-seitigen Fehlern
Nutzung von ClientError und ServerError und Anpassung der zugehörigen Tests.
Eine kurze Übersicht über die in diesem Abschnitt behandelten Themen
PostgreSQL Database Server
PostgreSQL Server Download
Postgres.app Download (nur macOS)
DBeaver Community Edition (CE) Download
Vergleich PostgreSQL - mySQL
Ein Kurzanleitung, um PostgreSQL und DBeaver auf Linux zu installieren und miteinander zu verbinden
Ein Kurzanleitung, um PostgreSQL und DBeaver auf macOS zu installieren und miteinander zu verbinden
Ein Kurzanleitung, um PostgreSQL und DBeaver auf Windows zu installieren und miteinander zu verbinden
Lernen Sie den grundsätzlichen Umgang mit den notwendigen Aktionen, die Sie in Datenbanken ausführen können möchten:
Create (Erstellen)
Read/Retrieve (Auslesen)
Update (Ändern)
Delete/Destroy (Löschen)
zusammen bekannt als CRUD.
Lernen Sie über die CRUD-Anweisungen hinaus, Klauseln und Optionen kennen, um komplexere Datenbankabfragen zu erstellen.
Sie sind eingeladen auf eine aufregende Reise, bei der Sie angeleitet lernen, Google's Programmiersprache GO einzusetzen, um moderne Webanwendungen zu entwickeln, die sowohl in Tiefe als auch in Umfang hochgrading skalierbar sind. Sie nutzen die außergewöhnlichen Möglichkeiten, die GO für Full-Stack Entwickler bereit hält, um alle möglichen Arten von Server/Client-basierten Anwendungen zu entwicklen.
Dieser Kurs ist als reichhaltige Ressource für das Erlernen von Programmiergrundlagen und -konzepten im Allgemeinen und für die Entwicklung moderner und schneller Webanwendungen mit Googles Programmiersprache GO (golang) im Besonderen - eine umfassende Lernerfahrung.
Neue Programmiertechniken und moderne Konzepte im Software-Design erlernt man am Einfachsten durch die Anwendung anhand lebensnaher Beispiele. In diesem Kurs lernen Sie, wie Sie eine moderne Webappplikation - eine Homepage zum Vermieten von Bungalows als Ferienwohnungen - planen, implementieren, testen, debuggen und schließlich auf einem Webserver installieren.
Sie werden die Vorteile der Programmiersprache GO kennenlernen und auf dem Weg zur fertigen Anwendung die Integration weiterer Elemente wie SQL/PostgreSQL Datenbanken, JavaScript (client- und serverseitig), AJAX-Techniken, HTML, CSS und die Benutzung essentieller Werkzeuge für Full-Stack-Entwickler kennenlernen.
Neben dem Programmieren in GO beschäftigt sich dieser Kurs auch mit
HTML5 / CSS / DOM
JavaScript (Vanilla, keine jQuery Abhängigkeit)
SQL / PostgreSQL
Migrations / FIZZ
JSON
Routes, Handlers, Models
Tests, Error Handling
Linux (bash), Windows (Command Line), macOS (bash)
git / github
Installation der Webanwendung auf einem Server
und vieles anderes mehr
Der Kurs eignet sich zwar auch für Anfänger mit grundlegenden Programmiererfahrungen, ist jedoch für angelegt als umfangreiche Resource für moderat fortgeschrittene Entwickler. Er ist angefüllt mit Beispielen, Erklärungen und Erläuterungen zu Konzepten, die zur Entwicklung von modernen, schnellen und sicheren Webanwendungen notwendig sind, und kommt mit einem begleitenden Code-Repository auf Github und einer umfangreichen Kursübersicht als PDF, die sich als Teil des Kurses versteht, daher.
Eingebundene externe Packages und Abhängigkeiten:
go-chi | Router
scs | Sessions
nosurf | CSRF-Token
govalidator | Validator (server-sided)
pgx/v5 | PostgreSQL Driver & Toolkit
go-simple-mail | Golang package for sending e-mail
Caddy 2 | a powerful, enterprise-ready, open source web server with automatic HTTPS written in GO
Ebenfalls eine Rolle spielen:
bootstrap | Bootstrap - HTML, CSS, and JavaScript framework (no jQuery)
RoyalUI-Free-Bootstrap-Admin-Template | Free Bootstrap 4 Admin Template
Simple-DataTables | DataTables but in TypeScript transpiled to Vanilla JS
postgres | PostgreSQL Server (mirror only)
pop | Soda/Migrations - standardization of database tasks
dbeaver | Dbeaver - free multi-platform database tool
vanillajs-datepicker | Vanilla JavaScript datepicker
notie | unobtrusive notifications - clean and simple JavaScript
SweetAlert2 | so many options for JavaScript popups
MailHog | Web and API based SMTP testing
Foundation for Emails 2 | Quickly create responsive HTML e-mails that work
Cobra | A Framework for Modern CLI Apps in GO
GoDotEnv | A GO port of Ruby's dotenv library
Wenn Sie sich für diesen Kurs anmelden, haben Sie lebenslangen Zugang zum Kurs. Sie können in Ihrem eigenen Tempo lernen und jederzeit zu Inhalten zurückkehren, um tiefere Einblicke zu bekommen oder zusätzliche Konzepte zu lernen, wenn Sie dazu bereit sind.
Dieser Kurs wird außerdem mit einer 100%igen Geld-zurück-Garantie angeboten*.
Meiner Meinung nach ist dies einer der umfassendsten Kurse in deutscher Sprache für die Entwicklung moderner, schneller und sicherer Webanwendungen von Grund auf.
Und wenn der Kurs aus irgendeinem Grund nicht für Sie funktioniert, können Sie innerhalb der ersten 14 Tage eine volle Rückerstattung* erhalten.
Melden Sie sich jetzt an!
Sie können großen Nutzen aus diesem Kurs ziehen und, was noch wichtiger ist, Sie werden eine gute Zeit beim Erlernen der einer der besten Programmiersprachen aller Zeiten haben - der Programmiersprache GO, der am schnellsten wachsenden Programmiersprache mit den bestbezahlten Programmierern in den USA.
GO ist eine Open-Source-Programmiersprache, die es leicht macht, einfache, zuverlässige und effiziente Software zu entwickeln
GO wurde von Koryphäen der Informatik bei einem der besten, wenn nicht sogar dem besten Softwareentwicklungsunternehmen entwickelt, das es je gab - Google. Die Entwürfe stammen von Robert Griesemer, Rob Pike und Ken Thompson.
GO ist eine sehr gute Wahl, um eine Programmiersprache zu lernen, da sie von einigen der gleichen Personen entwickelt wurde, die bereits die Programmiersprache C, Unix und UTF-8 erschaffen haben - einige der einflussreichsten Beiträge zur Informatik. Robert Griesemer, Rob Pike und Ken Thompson schufen mit GO eine moderne Sprache, die problemlos auf mehrere Prozessoren parallel arbeiten kann, problemlos in verschiedenen Umgebungen funktioniert und dem Programmierer das Schreiben von Programmen durch eine sehr schlanke und benutzerfreundliche Syntax erleichtert.
Warum hat Google eine neue Programmiersprache entwickelt?
In Googles Worten: "GO wurde aus der Frustration über die bestehenden Sprachen und Umgebungen für die Systemprogrammierung geboren. Das Programmieren war zu schwierig geworden, und die Wahl der Sprachen war daran mit schuldig. Man musste sich entweder für
eine effiziente Kompilierung,
eine effiziente Ausführung oder
eine einfache Programmierung
entscheiden. Alle drei Möglichkeiten waren nicht in ein und derselben Mainstream-Sprache verfügbar. Programmierer, die dazu in der Lage waren, zogen die Einfachheit der Sicherheit und der Effizienz vor, indem sie zu dynamisch typisierten Sprachen wie Python und JavaScript wechselten und nicht zu C oder C++ oder, in geringerem Maße, zu Java. GO ist ein Versuch, die Einfachheit der Programmierung einer interpretierten, dynamisch typisierten Sprache mit der Effizienz und Sicherheit einer statisch typisierten, kompilierten Sprache zu kombinieren.
Außerdem sollte Programmieren auf moderne Art und Weise möglich sein, sowie Netzwerk- und Multicore-Computing unterstützen. Und schließlich soll die Arbeit mit GO schnell sein: Es sollte höchstens ein paar Sekunden dauern, eine große ausführbare Datei auf einem einzelnen Computer zu erstellen. Um diese Ziele zu erreichen, musste eine Reihe von linguistischen Fragen geklärt werden: ein ausdrucksstarkes, aber leichtgewichtiges Typsystem, Nebenläufigkeit und Garbage Collection, starre Spezifikation von Abhängigkeiten und so weiter. Diese Probleme können durch Bibliotheken oder Werkzeuge nicht gut gelöst werden; eine neue Sprache war erforderlich."
Lernen Sie mir mir zusammen die Vorteile in der Webprogrammierung einer der besten Programmiersprachen kennen, die je entwickelt wurde. Sie werden Wissen, Ideen, Konzepten, Inspiration und Code-Beispielen erhalten, um selbst Software und Anwendungen nach Ihren Wünschen zu gestalten.
* Lesen Sie die Allgemeinen Geschäftsbedingungen von Udemy für Details.