Skip to content
course-goPublic

Latest commit

 

History

400 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Lectures

This repository contains lecture slides for Course Go.

Content

  1. Course [ slides ]
    • Introduction
    • Requirements
    • Overview
  2. Introduction [ slides | exercise ]
    • Introduction to Go
    • IDEs & Editors
    • Installing Go
    • Running Go
    • Project basics
    • Resources
  3. Fundamentals #1 [ slides | exercise ]
    • Built-in types
    • Variables
    • Control flow
    • Functions
    • Custom types
    • Pointers
  4. Fundamentals #2 [ slides | exercise ]
    • Interfaces
    • Errors
    • Arrays
    • Slices
    • Maps
    • Range
  5. Concurrency & parallelism [ slides | exercise ]
    • Goroutines
    • Runtime
    • Channels
    • Select
    • Related packages
  6. Advanced #1 [ slides | exercise ]
    • Generics
    • Packages
    • Testing
  7. Advanced #2 [ slides | exercise ]
    • Benchmarks
    • Profiling
    • Optimizations
    • Tracing
    • CGo
    • Unsafe & Reflect
  8. REST APIs [ slides | exercise ]
    • JSON
    • HTTP
    • REST API
    • HTTP package
    • Routers & Web frameworks
    • OpenAPI
    • Templating
  9. Containers [ slides | exercise ]
    • Containerization
    • Docker
    • Kubernetes
  10. Databases [ slides | exercise ]
    • SQL
    • RDBMSs
    • Migrations
    • sql
    • sqlx
    • sqlc
    • GORM
  11. Infrastructure [ slides | exercise ]
    • CI/CD
    • Infrastructure
    • GCP
  12. Observability [ slides | exercise ]
    • Health
    • Metrics
    • Logs
    • Traces
    • OpenTelemetry

Running the slides

The slides are made using the go present syntax which has its own tooling.

The project maintains an up-to-date deployed version of the slides on lectures.course-go.dev.

The only disadvantage is that this version does not allow you to run the Go code presented on the slides for security reasons. To run the Go code, you must run the slides locally.

Running locally

Using Docker

You can use an already pre-built container image with lecture slides.

docker run -p "3999:3999" \
    ghcr.io/course-go/lectures:latest \
    present -http=:3999

Using present directly

Or you can run the slides locally using the Go present CLI.

Clone the repository
git clone git@github.com:course-go/lectures.git
cd lectures
Installation

Install Go if you do not have it yet.

That is all you need. The present tool is declared as a Go tool dependency in the go.mod file, so it does not have to be installed separately.

Usage

Run the present tool from the repository root:

go tool present

The first run downloads and builds the tool, which may take a moment.

Alternatively, you can specify on which address the server should listen:

go tool present -http=:8080

A webserver is run on the specified address. You can now preview the slides using your favourite web browser.

Attribution

Some of the lecture slides are based on the GoCourse project developed under Red Hat. The GoCourse is licensed under CC BY-SA 4.0 DEED license, which this repository respects and therefore shares.

Packages

Used by

Contributors

Languages