In this edition of the Vybe Engineering Workshop, we'll be discussing Golang (GO). This repo provides a few examples of features that make GO very powerful and enjoyable to code in. This is not an exhaustive lesson on all the features GO provides. It is meant as a 15 minute primer on the language, the ecosystem, and how to deploy GO programs for production.
Before you get started, follow this tutorial to make sure your local environment is set up with the latest verison of GO.
https://go.dev/doc/tutorial/getting-started
- Intro to a typical GO project structure.
- Code separation and organization
- Standard modules
- External modules
- Local dev environment
- Running your code
- Testing
- Building for different OS Architectures
- Go Syntax Basics
- Modules, Exposing Functions, Types, and References
- Variables, Stucts, Pointers
- Maps and Slices
- Loops, Channels, Select, Goroutines, Context
- Hello World
- The
main.gofile - Printing to the console
- Flags
- Asynchronous Coding
- Creating a channel
- Creating a Gorouting
- Listening for events
To dive deeper into GO and the ecosystem, check out the following resources.
Resources:
- Learn GO examples and Exercises - https://github.com/inancgumus/learngo
- Concurrency is no Parrallelism - https://www.youtube.com/watch?v=oV9rvDllKEg
- SOLID Go design - https://dave.cheney.net/2016/08/20/solid-go-design
- Reloading with modd