Welcome to a backend-development course using Go. The first episode of GoAPI Essential introduces the Go language, Go modules, and packages as a foundation for later topics such as syntax, data structures, and APIs.
Backend development and Go
Backend development covers the parts of an application that work behind the interface. It can process data, manage databases, provide APIs to a frontend, and run on servers.
What backend development involves
The source describes backend work as handling data, processing requests, creating APIs for the frontend, and managing servers and deployment so an application can keep running.
Web development basics
If backend concepts are new, the source recommends learning how servers, databases, and REST APIs fit together. It also mentions common server languages such as Go, Python, Java, Node.js, and PHP, and databases such as MySQL, PostgreSQL, MongoDB, and Redis. The right choice depends on a project’s needs.
Introduction to Go
Go, also called Golang, is an open-source programming language developed at Google. The lesson presents it as designed for simplicity, performance, readability, and concurrent programming.
Features named in the lesson
- A statically typed language with type checking.
- A compiled language.
- Garbage collection for automatic memory management.
- Support for concurrency.
- Performance characteristics that can suit backend applications.
These are introductory descriptions, not a benchmark or a claim that Go is the best choice for every application.
Install Go and run a first program
The source recommends downloading Go from Go.dev and following its installation instructions. Its “Hello, World!” example is:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
Imports, go run, and go build
Go code uses import to name packages. The lesson distinguishes go run, which runs code during development, from go build, which builds an executable.
Nodemon in the lesson
The lesson also mentions Nodemon as a development tool that restarts a server when files change. Check whether it fits the specific environment and toolchain you use.
Go modules
A Go module organizes a project’s dependencies and records which package versions it uses.
go.mod and go.sum
The go.mod file records module and dependency information. The go.sum file stores checksums used to verify downloaded dependencies.
Create a module and manage dependencies
- Use
go mod init <module_name>to initialize a module. - Use
go getto add or update a dependency, following the current Go toolchain’s behavior. - Use
go list -m allto list the module’s dependencies.
The lesson points learners to Go.dev’s package directory to explore packages.
Go packages
A package groups related Go code so it can be organized and reused. A function is a group of statements that performs a task.
Create and import a package
The lesson describes creating a folder with Go files that declare a package, then importing that package by its path.
Private and public functions
The lesson introduces functions that can be used within a package and functions intended to be available to other packages. Check Go’s current naming and export rules when applying this concept.
Go uses structs and interfaces
Go does not use classes; the lesson introduces structs and interfaces as language constructs. It also notes that package boundaries and dependencies need thoughtful design to avoid unnecessary complexity.