Go/Golang - Einführung in die nebenläufige Systemprogrammiersprache von Google - für erfahrene Entwickler - Schulung (3 Tage)
Go/Golang - Introduction to the programming language by Google - for experienced developers
Kurzbeschreibung
Entwickler lernen die Entwicklungsumgebung für Go auf dem eigenen Rechner/Laptop einzurichten (Sprachpaket/ Dokumentation/ Editoren) und werden einen einfachen HTML-Server mit ersten Erweiterungen schreiben und einrichten. Sie lernen dabei Go’s Syntax kennen, bekommen einen groben Überblick über die Standardbibliotheken und üben die Standardroutine zur Erstellung einer application binary ein.
Das Seminar erlaubt erfahrenen Programmierern den Einstieg in neue Projekte (Prototyping) mit Go/Golang. Die noch junge, plattformübergreifende Programmiersprache überflügelt vor allem bei Server-Anwendungen in den letzten zwei Jahren etablierte Prorammierlösungen. SoundCloud, Docker, Disqus, Amazon und natürlich Google sind nur einige der Konzerne, die Go nutzen. Vor allem aufgrund des eleganten Programmierstils und der eindrucksvollen Kompiliergeschwindigkeit können auf aktuellen MultiCore CPUs mit Go vergleichsweise schnell ressourcensparende Anwendungen für die Command Line, Realtime-Analyse-Tools aber auch als Stand-Alone-Anwendungen mit HTML-GUI entwickelt werden, die in Sachen Geschwindigkeit C/C++ nahekommen aber ungleich leichter weiterzuentwickeln und zu pflegen sind.
Die Einführung ist praxisorientiert und die Eigenarten und Syntax von Go werden anhand der Entwicklung einer HTMLServerlösung eingeübt, d. h. die Teilnehmer arbeiten aktiv mit der Entwicklungsumgebung und haben Gelegenheit praxisbezogen intensiv nachzufragen.
Außerdem erhalten die Teilnehmer eine Linkliste mit Informationen und Show Cases aus dem „Gopher“-Land.
Voraussetzungen
• langjährige Programmiererfahrung mit prozeduralen oder objektorientierten Softwareprojekten einschl. der Script-Sprachen NodeJS/IOJS JS, Python, Rails
• Dieser Kurs ist ausdrücklich nicht für Programmieranfänger gedacht. Bei Bedarf kann eine Variation dieses Kurses für Junior Programmierer angeboten werden. Bitte nehmen Sie hierzu Kontakt auf.
Seminarinhalt
Tag 1:
Einführung in Go/Golang
• Entstehung und Ziele
• Herkunft und Vergleich mit anderen Programmiersprachen
• Hinweise auf Go’s zentrale Konzepte und deren Anwendung an Beispielen
• Grundlegende Programmstruktur
• package main
• import
• func main()
• func xy()
• Datentypen:
• var, const
• bools, ints, floats, arrays & slices, strings, maps
• chan
• Kombinierte Datentypen: type struct
• struct members, struct methods
• type interface
• Deklaration und Wertzuweisungen
• Globale und lokale Variablen
• Kontrollstrukturen
• Comments
Installation von Go auf dem eigenen Rechner
• Installation von Go
• Einrichten der Systemvariablen (system environment)
• Übersicht über geeignete Editoren
• Installation einer Trialversion von SublimeText2® als Beispieleditor/PseudoIDE
• alternativ für erfahrene Nutzer: vim/MacVim
Zusammenfassende Wiederholung von Tag 1
Tag 2:
Programmierung eines HTTP Servers mit (Part 1)
Basics in practice
• Entwurf einer Go Programm-Grundstruktur
• go fmt
• go build
• go install
• go run
Standardbibliothek und Erweiterungen durch Module (Packages)
• Übersicht über die Standardbibliothek
• Open source Erweiterungen via github repositories
Praktische Übung am HTTP Server (Part 2)
„import“ in practice
• package documentation online
• locking into the standard library source code
• godoc
import packages from github.com
• go get
• use import with path
Funktionen in Go im Detail: First Class Member „func“, goroutines und closures in Go
func & closures
• func xy() {do something}
• func(s *type) xy() {do something} vs. func(s type) xy() {do something}
• f := func() {do something}
• function factories
concurrent goroutines
• Nebenläufigkeit ist nicht grundsätzlich Parallelisierung
• go func() {do something}()
• data races und wie man ihnen vorbeugt
channels
• Besonderheiten von channels in Go
• Deklaration, buffered und unbuffered channels
• Einsatz zur Synchronisation des Prozessflusses
Zusammenfassende Wiederholung von Tag 2
Tag 3:
Goroutines running concurrent
• Einblicke in den net/http source code
• Beispiele
• Caveats
Arbeiten am HTTP Server (Part 3)
• Go’s HTML Templates
• Logging
• Erweiterung durch Funktionen
Modularisierung des eigenen Projekts
• Packaging: Erweiterungen und Programme
• Ein zweiter Blick auf das Go environment
Fertigstellen des HTTP Servers (Part 3)
Zusammenfassung und Ausblick auf das Seminar für Fortgeschrittene
Zielgruppen
• erfahrene Entwickler
Preise und Termine
Eine offene Schulung findet in einem unserer Schulungszentren statt.
Dauer: | 3 Tage |
Preis: | 1.995,00 € zzgl. USt. pro Teilnehmer (2.374,05€ inkl. USt.) |
Seminarstandorte: | |
Starttermine: (ortsabhängig) | |
Unterlagen: | zzgl. |
Verpflegung: | zzgl. |
Prüfung/Zertifizierung: | zzgl. |
Eine Firmenschlung kann sowohl bei Ihnen vor Ort als auch in einem unserer Schulungszentren stattfinden.
Dauer: | 3 Tage |
Preis ab: | 1.390,00 € zzgl. USt. pro Tag (1.654,10€ inkl. USt.) |
Schulungszentren: |
|
Starttermin: | individuelle Vereinbarung |
Unterlagen: | zzgl. |
Verpflegung: | zzgl. |
Prüfung/Zertifizierung: | zzgl. |
Software
Die Schulung kann auf folgenden Betriebssystemen durchgeführt werden:
• Linux oder MacOSX Betriebssysteme
• Windows Betriebssysteme nach Absprache
Allerdings ist Go ein Kind der Open Source Community, daher werden community tools eigentlich immer zuerst für Linux und MacOSX optimiert und es gibt einige Erweiterungen zu Go, die (noch) nicht unter Windows oder unter bestimmten Windows Versionen laufen oder getestet wurden.
Darum bitte Windowsrechner mit Angabe der Windowsversion vorher anmelden. Das Seminarprogramm kann/muss entsprechend angepasst werden.
Verwandte Schulungen
Go/Golang - Überblick und Einsatz der Programmiersprache von Google- Entscheider - WorkshopGo/Golang: Datenbankanbindung mit GoLang und Migration bestehender ETL Daten- bankroutinen - Schulung
Seminarsprache
Wir bieten unsere Seminare hauptsächlich in deutscher Sprache an – je nach Wunsch aber gerne auch in Englisch oder einer anderen Seminarsprache. Bitte fragen Sie doch einfach bei uns an.