
Join a global community of learners and advance your skill set, tending the garden of your life to reap a bountiful harvest.
Course outline - THE COURSE OUTLINE IS ATTACHED TO THIS VIDEO AS A PDF
github - https://github.com/GoesToEleven/golang-architecture
This video introduces Daniel Hoffman, discusses the getting started section, and outlines setting up a GitHub repo with thorough, step-by-step guidance for the course.
Set up a GitHub repository for the Go language architecture project, configure SSH keys, clone or fork the repo, and invite collaborators to push, commit, and collaborate.
Set up a GitHub repo, create a gitignore, push and pull changes, and add a collaborator for getting started in web architecture with Golang.
Learn to tag, push, and reference code versions with releases, then browse the repository at specific tags or commits via checkout, and safely return to the master branch.
Learn to use curl for get and post requests to the /user endpoint with email parameters, inspect status codes, and observe a three-tier architecture (access, business logic, action).
Use curl to view headers from google.com and the Google teapot with verbose output and the status line. The hands-on exercise solution is shown; Windows users may need Linux alternatives.
Explore software architecture for the web, covering interfaces, context, encoding approaches, and patterns like monoliths, microservices, containers, orchestration, and continuous integration and delivery.
Explore serverless computing, virtualization, containers, container orchestration, and continuous integration and delivery, and clarify infrastructure as a service, platform as a service, and software as a service.
Explore virtualization as simulated hardware that lets one physical machine host many virtual machines, optimizing capacity and outsourcing hardware and software management across AWS, Google Cloud, and Digital Ocean.
Orchestrate containers across a cloud by defining each container’s resources in a config file, then let the container orchestrator pack workloads onto available machines.
Explore continuous integration, delivery, and deployment: merge frequent, small commits to master with automated tests, manually trigger live deployment, and finally achieve automatic, fully tested releases.
Explore how single-page applications shift processing to the client with JavaScript, using data as needed and implementing features like infinite scroll with frameworks such as angular, react, and view.
Explore interfaces in Go and learn how they provide abstraction, decoupling, and substitutability to create flexible code. See how a simple reader interface enables interchangeable data sources and supports polymorphism.
Explain the difference between concrete types and abstract interfaces in Go, showing how concrete types expose representation and methods while interfaces reveal behavior without details.
Explore how interfaces in Go define contracts that guarantee a speak method for any concrete type. Experience dynamic dispatch across person and secret agent implementations.
Learn to decouple data storage in Go by designing a storage interface with save and retrieve, enabling swapping between two backends while storing a person.
Explore decoupled storage in Go by using a person struct and an accessor interface to swap Mongo and post graphs via save and retrieve methods.
Illustrates how to decouple storage logic with a person service that uses an accessor interface, enabling swapping Mongo or other databases without changing business code.
Explore Go interfaces in the standard library, focusing on io.Reader and io.Writer, and how small interfaces enable interchangeable use across files, requests, and strings.
Learn how to add clear Go documentation using Go doc, package-level docs, and comments before types like person. Explain behavior and zero-value handling for public API with conventional Go documentation.
discover why many standard library functions in Go return values you can ignore with the underscore syntax, and when to handle or skip errors in your code.
Learn to generate gomock code for Go interfaces using mockgen, configure source, destination, and self package, and use generated mocks with expectations to validate calls.
Use gomock to create a mock controller and mock accessors, define expectations, and verify interactions in Go tests for service methods like put, save, and retrieve.
Explore method sets and how receivers determine which interfaces a type implements in Go, distinguishing value and pointer receivers and their impact on interfaces.
Explore method sets with Go, building an example that compares value and pointer receivers, implements a human interface, and runs a practical Go program to demonstrate interfaces and types.
Recreate the database example using two maps to simulate databases, and implement a storage interface for saving and retrieving users with a map or mongo storage.
Copy file contents in go by opening a source file, creating a destination file, and using io.Copy with reader and writer interfaces, then close resources and push changes.
Explore how Go's context package holds request-scoped variables like user id and login status, and cancels or times out long-running work when a user leaves.
Explore how to abstract value usage in Go by using a session package with context value, and add and retrieve a user via private key.
Explore the Go context package, using done channels and cancel functions to terminate goroutines, store request-scoped values, and observe how cancellation propagates through select statements.
Answer exercise three by deciding what to store in context, favoring fewer values, and recall the four common ones: user id, admin, ip address, and session ip.
Practice implementing Go contexts with timeouts by creating a background context, deriving a timed-out child context, and using a select on a done channel to handle cancellation.
Launch a background context, create a child context with cancel, start one hundred go routines with unique indices, and use select on the context's done channel to stop all.
There is a reason for the popularity of Google's Go (golang) Programming Language: Go was created by geniuses and is the next step in the evolution of programming languages. Knowing how to use Go well will increase your power and productivity as a programmer.
This course will give you the skills you need to advance your Go Programming Language skills. This course is very practical and applicable. It focuses on teaching you skills you can use.
In addition, this course will build your skills with web architecture, git, curl, interfaces, context, error handling, & escape analysis.
Presented with high-quality video lectures, this course will visually show you many great things about Google's Go (golang) Programming Language and collaboration. Co-taught by a tenured professor in California and a Professional Developer, this is just some of what you will learn in this course:
Learn to succeed as a student
Master intermediate skills using git
Learn how to version your codebase in git
Acquire the ability to use curl for web requests
Explore the fundamentals of software and web architecture
Gain insight into REST, SPA, MVC, containers, and container orchestration
Explore the nuances between monoliths and microservices
Acquire an understanding of serverless architecture and continuous integration
Solidify your abilities using interfaces to abstract code and decouple dependencies
Explore the implications of method sets
Gain insight into code organization conventions
Strengthen your skills with writing tests and creating mocks
Learn to use the context package to write idiomatic Go code
Reinforce your abilities to write robust code using Go's error wrapping capabilities
Acquire a thorough understanding of the heap, the stack, and escape analysis
This is an amazing course! This course will change your life. Being skilled at using the Go Programming Language will serve you and your career well. This course will increase your proficiency, productivity, and power as a programmer. You are going to love this course and it will forever change your life.
Your satisfaction is guaranteed with this course.
Join me and enroll now!
--
The art used in the course image was designed by Renee French.
license: Creative Commons 3.0 Attributions license