Go Essentials: Concurrency, Connectivity, and High-Performance Apps

Go Essentials: Concurrency, Connectivity, and High-Performance Apps

1h 46mBeginner2022-04-20

Authors

Miki Tebeka

Miki Tebeka

CEO at 353Solutions

Course details

Go is an open-source programming language created by Google, prized for its concurrency and connectivity. Using Go, developers can build modern applications that can save companies money on backend resources. This course is designed to help developers be productive with Go, starting with the essentials of the syntax. Learn the basics of Go basic types such as numbers and strings; working with conditionals and loops; creating object-oriented code with structs and methods; and handling errors. Instructor Miki Tebeka also emphasizes the concurrency features such as goroutines and channels, and connectivity features for networking with APIs and databases. For the final project, Mika shows you how to build a highly concurrent server that combines everything you've learned into one elegant solution powered by Go.

Skills covered

GoGoogleEssential TrainingProgramming LanguagesSoftware Development

Concepts

Introduction

  • Go for modern applications
  • What you should know

Getting Started

  • Setting up your work environment
  • Anatomy of a Go program
  • The Go tool

Go Basics

  • Numbers and assignments
  • Conditionals
  • For loops
  • Challenge - FizzBuzz
  • Solution - FizzBuzz
  • Strings
  • Challenge - Even-ended numbers
  • Solution - Even-ended numbers
  • Slices
  • Challenge - Find the maximal value
  • Solution - Find the maximal value
  • Maps
  • Challenge - Maps
  • Solution - Maps

Functions

  • Defining a function
  • Parameter passing
  • Error return
  • Defer
  • Challenge - Write a function
  • Solution - Write a function

Object-Oriented

  • Structs
  • Methods
  • Creating structs with New function
  • Challenge - Structs
  • Solution - Structs
  • Interfaces
  • Challenge - Interfaces
  • Solution - Interfaces
  • Generics

Error Handling

  • pkg errors
  • Panic and recover
  • Challenge - Server kill
  • Solution - Server kill

Concurrency

  • Goroutines
  • Channels
  • Challenge - Channels
  • Solution - Channels
  • Select
  • Context
  • Challenge - Download size
  • Solution - Download size

Project Management

  • Manage requirements
  • Testing
  • testify
  • Challenge - Testing
  • Solution - Testing
  • Benchmarking and profiling

Networking

  • JSON
  • HTTP calls
  • Timeouts & Size Limit
  • Challenge - Call the GitHub API
  • Solution - Call the GitHub API
  • HTTP server
  • Challenge - Key-value database
  • Solution - Key-value database

Conclusion

  • Next steps
40,000 Toman