A good excuse to play around with some interesting tools
A good excuse to play around with some interesting tools
Scenario Let’s suppose your boss tasks you with the problem of building a data upload service for blobs. The only requirement is the system has to be built on gRPC. How do you go about doing this, and, in the end, does your solution look more like no. 1 or no. 2 below? Prototypical Unary RPC: 1 2 3 4 5 6 7 8 9 10 message UploadRequest { string file_name = 1; bytes content = 2; } message UploadResponse { ... } service UploadService { rpc Upload(UploadRequest) returns (UploadResponse) {} } Prototypical Streaming RPC
Go’s built-in micro-benchmarking framework is extremely useful and widely known. Sill, not many developers are aware of the additional, yet essential, benchstat tool allowing clear comparisons of Go A/B benchmark results across multiple runs. In 2023, benchstat received a complete overhaul making it even more powerful: projections, filtering and groupings were introduced allowing robust comparisons across any dimension, defined by your sub-benchmarks (aka “cases”), if you follow a certain naming format .
Here are various resources that are good to know about while learning the Go programming language. I created a list of commonly used Go packages and other dev tools at Go dev tools. getting started if you’re new to programming, check out Golang Tutorial For Beginners - YouTube A Tour of Go is probably the best way for developers with experience in another language to start learning Go Go Playground is an online Go editor and runner Tutorial: Get started with Go Go by Example Organizing a Go module Go FAQs go.
The Go programming language comes with tools for writing and running tests: the standard librar [...]
Engineering Insights & Technical Deep Dives
Implementing a simple jq clone in Go, and basics of Go memory profiling