Posts tagged go

Managing project tools with Go

Comparing approaches for managing non-application tool dependencies in Go projects, including go tool, tools.go, and go run.

Go Concurrency Patterns

Essential Go concurrency patterns including goroutines, channels, mutexes, and common synchronization techniques.

Bitwise Operations in Go

Using bitwise operators in Go to manipulate individual flags within a single integer for compact state management.

Go Typed Nil

Why an interface holding a nil pointer is not itself nil in Go, and how typed nils can cause unexpected behavior.

Go Style Guide

A personal Go style guide covering naming, error handling, interfaces, slice gotchas, and function design patterns.

Reflection in Go

A practical walk-through of Go's reflect package using a real CLI flags library as the guiding example.

Go Arrays and Slices

A deep dive into how Go arrays and slices work, including memory layout, append behavior, and capacity gotchas.

Thinking about Interfaces in Go

A practical guide to designing flexible Go code using interfaces, dependency injection, and programming to abstractions.

Go Reverse Proxy

Building a reverse proxy in Go using httputil.ReverseProxy, from simple single-origin to configurable multi-route setups.

Profiling Go

Techniques and tools for profiling Go applications including pprof, benchmarks, and memory management analysis.

Hitchhikers Guide to Go

A comprehensive cheat sheet covering Go fundamentals, from types and control flow to concurrency and testing.

gRPC for Beginners

An introduction to Google's gRPC framework covering Protocol Buffers, service definitions, and building clients and servers.

RPC Variations in Go

Exploring different RPC implementations in Go including net/rpc, JSON-RPC, and gRPC with Protocol Buffers.

Understanding Golang's Func Type

How Go's http.HandlerFunc adapter uses a func type to satisfy the Handler interface and enable flexible HTTP routing.

Thread Safe Concurrency

An exploration of shared memory vs message passing concurrency models including threads, locks, actors, and CSP.