Course Overview
Locked video preview

Watch for free

Create a free account to watch this video.

Developer Experience

Our toolbox

Here is a summary of the video transcript:

  • Tool Directive in Go 1.24
    The video introduces the tool directive added in Go 1.24, which allows dependencies to be added as project-specific tools using go get -tool. This avoids global installations and ensures consistent tool versions across a team.

  • Project-Scoped Tool Management
    Tools added via the tool directive are tracked in go.mod and are not removed by go mod tidy. This guarantees reproducible development environments and shared version control for all contributors.

  • Database Migrations with Goose
    The project uses Goose to generate and apply database migrations. By installing it as a tool dependency, migrations can be managed consistently within the project context.

  • Type-Safe SQL with sqlc
    sqlc is configured to convert raw SQL files into type-safe Go code. A configuration file defines the database engine, output locations, package structure, and options such as emitting SQL comments and using specific drivers.

  • Database Structure and Code Organization
    SQL queries are stored in dedicated directories, and generated code is placed in controlled internal packages. This enforces architectural boundaries so that database access occurs only through defined models.

  • Hot Reloading with Air
    Air is added to enable automatic recompilation and live reloading during development. This removes the need to manually restart the Go server after code changes.

  • Command Automation with Just
    The next step involves setting up a Justfile to simplify running tool commands. This streamlines repetitive tasks such as building, generating code, and managing migrations.