A minimal Go project that prints a greeting, accepts a name from the command line, includes a test suite, and uses a Makefile to drive common tasks. This tutorial covers project structure, flag parsing, table-driven tests, and build automation.
Prerequisites Go 1.22 or later A Unix-like terminal (macOS, Linux, or WSL on Windows) make installed (pre-installed on macOS and most Linux distributions) No third-party packages required Step 1: Set up the project structure Create the file mkdir -p hello-world touch hello-world/.gitignore Add the code: hello-world/.gitignore bin/ *.test *.out .DS_Store *.log tmp/ Detailed breakdown bin/ excludes compiled binaries produced by the build step. *.test and *.out exclude Go test binaries and coverage output files. .DS_Store, *.log, and tmp/ cover common OS and temporary artifacts. Step 2: Initialize the Go module Create the file cd hello-world go mod init hello-world Detailed breakdown go mod init hello-world creates a go.mod file that declares the module path as hello-world. All import paths within the project use this prefix. Since the project uses only the standard library, no dependencies are added to go.mod. Step 3: Create the greeter package This package contains the core greeting logic, separated from the entry point so it can be tested independently.
...