Overview
Explore how to create reproducible Golang development environments using Nix in this conference talk from Conf42 Golang 2024. Learn about the fundamentals of Nix, its declarative nature, and how it addresses common development environment issues. Dive into practical examples of setting up Golang environments, including the use of tools.go and flake.nix. Discover the benefits of direnv for streamlined usage and how to implement pre-commit hooks. Gain insights into Nix's inner workings, including evaluation and derivations, and understand the advantages it offers over traditional methods. Explore Nix flakes, their structure, and how to integrate them into CI/CD pipelines. Compare Nix with Docker and access additional resources for further learning. This comprehensive talk covers everything from basic concepts to advanced implementations, making it valuable for developers seeking to enhance their Golang development workflow.
Syllabus
intro
preamble
who is this for?
what is nix?
declarative
what is the problem?
summary
golang
tools.go
creative our first dev environment
flake.nix
summary
direnv
usage
remote environments
pre-commit
summary
how does nix work?
evaluation
derivations
advantages
nix flakes
flake.nix
flake.lock
ci
gitlab ci
ci logs
why not docker?
further
slides, links, resources
reference & thanks
Taught by
Conf42