dominikbraun.iohttps://dominikbraun.io2023-05-01T13:21:30ZDominik BraunA Gentle Introduction to Generics in Go2022-05-01T00:00:00Zhttps://dominikbraun.io/blog/a-gentle-introduction-to-generics-in-goThe release of generics in Go 1.18 is a major change to the language. How do generics work? How do they impact performance? When do they make sense? A beginner-friendly wrap-up.Docker Bind Mounts: A Quick Summary2020-07-01T00:00:00Zhttps://dominikbraun.io/blog/docker/docker-bind-mounts-a-quick-summaryBind Mounts are a simple and efficient way to share data between a container and its host. They're particularly useful for developers working with Docker containers.Docker Volumes: A Quick Summary2020-07-02T00:00:00Zhttps://dominikbraun.io/blog/docker/docker-volumes-a-quick-summaryVolumes are another convenient way for decoupling data from containers. Compared to bind mounts, they offer some advantages you should be familiar with.Dockerfile RUN vs. CMD vs. ENTRYPOINT2020-07-15T00:00:00Zhttps://dominikbraun.io/blog/docker/dockerfile-run-vs-cmd-vs-entrypointWhat do these Dockerfile instructions have in common, and what are the differences? When should I use each instruction?Docker Images and Their Layers Explained2021-02-01T00:00:00Zhttps://dominikbraun.io/blog/docker/docker-images-and-their-layers-explainedTo enable fast builds and efficient usage of disk space, Docker introduced the image layer model. This article is an in-depth explanation on how the layer model is implemented.How the Docker Build Cache Works2020-07-08T00:00:00Zhttps://dominikbraun.io/blog/docker/how-the-docker-build-cache-worksThe build speed for a Docker image largely depends on whether the instructions are cached or not. Understanding the build cache is crucial for building efficient images.The Basics of Docker Network Drivers2020-07-23T00:00:00Zhttps://dominikbraun.io/blog/docker/the-basics-of-docker-network-driversDocker does a great job when it comes to connecting containers among each other or to the outside world. This functionality is powered by pluggable network drivers.Go Functions as a Service With Kubernetes and OpenFaaS2022-08-24T00:00:00Zhttps://dominikbraun.io/blog/go-functions-as-a-service-with-kubernetes-and-openfaasOpenFaaS is an open source functions as a service framework for Kubernetes. This guide illustrates the deployment of a Go function with auto-scaling and metrics.graph Version 0.20 Is Out2023-05-01T00:00:00Zhttps://dominikbraun.io/blog/graph-version-0.20-is-outgraph is a generic Go library for creating and working with graph data structures. The freshly released version 0.20 facilitates the management of vertices and edges.Running a Private Docker Image Registry2020-07-03T00:00:00Zhttps://dominikbraun.io/blog/docker/running-a-private-docker-image-registryRegistries are the common way to store and distribute Docker images on a network. Operating a private on-premises registry isn't as hard as you probably think.Reducing Graph Complexity Using Go and Transitive Reduction2022-09-12T00:00:00Zhttps://dominikbraun.io/blog/graphs/reducing-graph-complexity-using-go-and-transitive-reductionAdding numerous edges to a DAG can make the graph unnecessarily complex. However, these graphs can be simplified using a technique called transitive reduction.Visualizing Graph Structures Using Go and Graphviz2022-08-01T00:00:00Zhttps://dominikbraun.io/blog/visualizing-graph-structures-using-go-and-graphvizGraph data structures are perfectly suited for modeling relations and networks. Visualizing graphs in Go takes two things: A graph library supporting DOT, and Graphviz.VS Code Go Extension: Don't Open Imports in the Browser2021-07-26T00:00:00Zhttps://dominikbraun.io/blog/vs-code-go-dont-open-imports-in-browserIn VS Code, clicking on a Go import will open the GoDoc of the imported package in the browser. This behavior is driven by gopls and can be disabled.You Probably Shouldn't Mock the Database2023-03-09T00:00:00Zhttps://dominikbraun.io/blog/you-probably-shouldnt-mock-the-databaseTo keep unit tests fast and isolated, the data access layer is often tested using a mock of the database. But are unit tests and mocks actually a good choice?