Skip to content
  • Sign In
  • Try Now
View all events
Go

Go for Web Development in 3 Weeks

Published by O'Reilly Media, Inc.

Intermediate content levelIntermediate

A guide for building robust web apps

Course outcomes:

  • Understand the tools available for RESTful APIs in the Go ecosystem
  • Learn best practices and idioms for Go HTTP protocols

Course description

Join expert Miriah Peterson to take a deep dive into Go for web development in this hands-on learning experience. You’ll explore the Go standard library’s RESTful tooling, some popular open source tools, and RESTful practices. You’ll interact with these databases through Go code, manage the connections, and dig into testing practices. You’ll cap off your journey with an exploration of monitoring, metrics, and middleware for your Go services.

What you’ll learn and how you can apply it

  • Build HTTP servers and clients
  • Use data best practices for web clients
  • You’re a software developer learning a new language.

This live event is for you because...

  • You want to become a microservice engineer.
  • Deploy and monitor your web service

Prerequisites

  • A computer with Go installed
  • Some experience with Go

Recommended preparation:

Schedule

The time frames are only estimates and may vary according to how the class is progressing.

Day 1

Introduction (15 minutes)

  • Group discussion: What is RESTful?
  • Presentation: Restful Go basics
  • Q&A

Go servers (120 minutes)

  • Presentation: Go standard library tools; open source servers
  • Hands-on exercise: Building a basic server; quiz on status codes
  • Demonstration: Building a custom server; adding multiple endpoints; defining status codes and error messages
  • Q&A
  • Break

Go clients (45 minutes)

  • Presentation: Go standard library tools; all the endpoints
  • Hands-on exercise: Build a client
  • Q&A
  • Break

Testing (60 minutes)

  • Presentation: Go testing tools—httptest; using bots to test liveliness
  • Group discussion: How do you like to test your APIs?
  • Hands-on exercise: Build some tests
  • Q&A

Day 2

Recap and outline (10 minutes)

  • Presentation: Recap of APIs; today’s session
  • Group discussion: How much do you use SQL in your dev?
  • Q&A

SQL for suckers (30 minutes)

  • Presentation: Why use SQL?; SQL in the standard library
  • Hands-on exercise: SQL command multiple choice quiz
  • Group discussion: Why do people still use sql to interact with data?
  • Q&A
  • Break

Tools (120 minutes)

  • Presentation: Database drivers; open source tools; connecting to the db; building a database object; I/O read, write, and file stores
  • Group discussion: Choosing the right driver; use cases
  • Hands-on exercises: Implement db connection and query; wrap db connection in an object and interface
  • Q&A
  • Break

Testing (60 minutes)

  • Presentation: Unit tests with mock and open source tools; integration tests with test data and GitHub Actions
  • Hands-on exercise: Write a mock function
  • Group discussion: What protections does this give you?; What are we missing?
  • Q&A
  • Break

Wrap-up and Q&A (30 minutes)

Day 3

Recap and outline (15 minutes)

  • Presentation: Recap of APIs and database; today’s session
  • Group discussion: What is a reliable web service?
  • Q&A
  • Break

Security mindset (45 minutes)

  • Presentation: Application security; authentication versus authorization
  • Hands-on exercises: Auth tokens quiz; check auth on APIs
  • Q&A
  • Break

Middleware (60 minutes)

  • Presentation: Muxes and other types of web servers; types of middleware; adding middleware to a Mux server
  • Hands-on exercises: Build a custom middleware; add tests for middleware
  • Q&A
  • Break

Monitoring (45 minutes)

  • Presentation: Revisiting reliability; expvars and the Go standard library; open source solutions
  • Hands-on exercise: Add monitoring to middleware
  • Q&A
  • Break

Metrics and alerts (45 minutes)

  • Presentation: Golden metrics (SLA, SLI, SLO); turning monitoring into metrics
  • Demonstration: Methods for receiving alerts
  • Group discussion: Open source versus SaaS alerting services
  • Hands-on exercise: Build some alerts
  • Q&A
  • Break

Wrap-up and Q&A (15 minutes)

Your Instructor

  • Miriah Peterson

    Miriah Peterson, a seasoned engineer with 6 years of expertise in Go programming, excels as a Data Reliability Engineer. Her professional journey includes crafting videos, tutorials, and courses, showcasing her mastery in Go and Data Engineering. A dynamic speaker, Miriah has delivered talks on Go, machine learning, and data engineering. As a board member of Forge Foundation Inc. and an organizer of the GoWest Conference, Utah Data Engineering, and Machine Learning Utah meetups, she actively shapes the tech community. Miriah earned her bachelor's degree in physics from Brigham Young University in 2017, laying a strong foundation for her multifaceted contributions to the field.

    linkedinXlinksearch