Programming Languages - Go
Page content
Go Language
My current Favorite Language
Articles, E-books
- About Go - Compiler, packaging etc.
- When (and when not to) to use Generics in Go Ver. 1.8
- High performance GO Workshop
- Learnings from Production usage of Go
- Thoughts on Go performance optimization
- Effective Go
- Handling 1M websockets connections in Go
- Notes on Go language
- Standard Go Project Layout
- 10 things you (probably) dont know about Go
- Useful patterns in Go
- Interesting ways of using Go channels
- How i writer web services in Go
- Embed static file(s) in Go Executable and expose over HTTP
- Using go:embed in Go 1.16
- Go Useful patterns by Roberto Clapis
- Strategies for Working with Message Queues
- Continuous build & Testing using Go Convey
- Why American Express chose Go
- Thoughts on Performance Optimizations in Go by Damian Gryski
- Quick list of performance improvement targets in Go
- 10 things you probably dont know about Go
- Learn Go with test-driven development
- Cancellable Pipelines in Go
- Running Go binary in Docker
- Go for Cloud - Tips and Techniques
- Why and what to instrument in Go Web Apps
- Continuous Profiling of Go programs
- How I write HTTP services in 2024
- Go Concurrency - Singleflight, Bounded concurrency, Weighted bounded concurrency
- Why you should be using errgroup withcontext in Golang
- WebAssembly in Go
- gRPC in Go
- Go: Discovery of the Trace Package
- Tracing in production for Latency
- Rust for Go Developers
- Rust vs Go - When to use which
- Example of how to let only one Goroutine do the task while letting others wait for it useful in case of reading data from DB to be cached
- How to leverage AWS Lambda timeouts with Go context cancellation
- Design philosophy
- TLS and Go
- Effectively using Systemd for setting up HTTP Server
- Useful Code patterns
Libraries, Tools
- HTMX + Go in single binary
- Staticcheck - The advaned Go linter
- Scripting with Go
- Right way to check weather
- Generate Go Code for Database / SQL for Mysql and PostgreSQL
- Why SQLc is better approach than ORM
- Golang style guide by Uber
- ORM to Model and Traversal of Data as a Graph structure
- Gops-A tool to list and diagnose Go processes currently running on your system
- Pocketbase - SQlite database with Go-based Wrapper to expose API
- Wails - Electron like environment in Go
- Visualize call graph of a Go program using dot (Graphviz)
- Semgrep - Lightweight static code analysis focussed on Security
- Draw Application diagrams using Go
- A Go metrics interface with fast buffered metrics and third party reporters
- Hey - HTTP load generator, ApacheBench (ab) replacement
- Go-metrics - library for exporting performance and runtime metrics to external metrics systems (i.e. statsite, statsd)
- Progressive Web App (PWA) with WebAssembly in Go
- GoPlus - The Go+ language for data science
- Notes on Profiling in Go
- Go-Micro - Web and RPC Framework for Microservices in Go
- Approach on project Structure in Go
- Zero Allocation JSON logger
- Use Makefile with Go
- Review of HTTP Routers
- Library over Financial Markets i.e. Yahoo Finance etc.
- Excelsize - pure Go library providing a set of functions that allow you to write to and read from XLSX / XLSM / XLTM / XLTX files
- Benthos - Simplified stream processing with built-in connectors
- Service weaver - Write Modular Monolith Apps
- Xo - Tool to Generate DB Specific Go Code
Learning
Task queues
- Queueing with Update..skip locked
- Machinery - Asynchronous task queue/job queue
- Bleve - Full text Search Engine
- Event Sourcing, pub/sub using AMQP/SQL/Channels
- Hydra - OAuth 2.0 Server
- Temporal - Scalable orchestration platform
- Distributed job-queue built specifically for queuing and executing heavy SQL read jobs asynchronously. Supports MySQL and Postgres.
- Tunny - Library to manage pool of goroutines to limit incoming work
- Scheduler library for Go
Web scraping, downloader
Videos, Talks
- Best practices for Industrial Programming - by Peter Bourgon
- Profiling & Optimizing in Go
- Rethinking classical Concurrency patterns
- Justforfunc: Programming in Go
- A Channel Compendium
- Visualize Concurrency in Go
- Real-world systems in Go
- Host Free Go Web app on Netlify
- Zen of Go - Ten engineering values for writing simple, readable, maintainable Go code
- [Ultimate Go Study Guide](https://githu b.com/hoanhan101/ultimate-go)
Code snippets
- Web Service in Go - Code with Best practices
- Remote service with Retries
- Curated list of design patterns implemented in Go
- Gophercises - Exercises for Go Developers
- Practical concurrency guide in Go, communication by channels, patterns
- Sample DDD Project with Code