Getting Started with Go Programming
Development Environment Setup
Installing Go
a. Navigate to https://golang.org/dl
b. Download the appropriate installer for your operating system
c. Run the installer (Linux users can extract the archive)
d. Configure environment variables on Linux:
export GOROOT=$PATH:/path/to/go/
export PATH=$PATH:$GOROOT/bin/
export GOPATH=/home/user/project ...
Posted on Tue, 22 Sep 2026 16:08:22 +0000 by zonkd
Writing Tests in Go: Unit Tests, Examples, and Benchmarks
Unit Testing
Basic Srtucture
Test functions must begin with Test and accept a single parameter t *testing.T. Use assertion methods from *testing.T to verify results. Execute tests using the go test command.
Example Implementation
package calculator
import "testing"
func Greet() string {
return "Welcome, user"
}
func T ...
Posted on Tue, 22 Sep 2026 16:07:14 +0000 by D
Configuring GOMAXPROCS in Go for CPU-Bound Workloads and Container Environments
The GOMAXPROCS variable defines the maximum number of operating system threads that can execute Go code simultaneously. It effectively limits how many OS threads the Go scheduler can use to run goroutines, influencing both concurrent and parallel execution. When GOMAXPROCS=1, all goroutines multiplex onto a single OS thread, achieving concurren ...
Posted on Mon, 07 Sep 2026 16:36:29 +0000 by Candrew
Streamlining Go Object Initialization with Functional Options and Builder Patterns
Creating and initializing objects in Go often begins with simple constructor functions. For straightforward structures with a few fields, this approach is clean and effective. Consider a basic HTTP server configuration:
type HttpServer struct {
Port int
Host string
}
func CreateServer(port int, host string) *HttpServer {
return &am ...
Posted on Mon, 31 Aug 2026 16:39:38 +0000 by voitek
Analyzing the Internal Implementation of Redis Distributed Locks in Go
Source Code
Repository: https://github.com/bsm/redislock
Core Logic Implementation
The library relies heavily on Lua scripts to ensure atomicity when interacting with Redis. Below is the rewritten logic of the scripts used.
Acquiring a Lock
The following script attempts to set a lock. If the lock is already held but by the same owner (determine ...
Posted on Tue, 25 Aug 2026 16:55:07 +0000 by binarymonkey
Implementing BBR Congestion Control in Kratos Framework
BBR (Bottleneck Bandwidth and Round-trip time) is a congestion control algorithm originally developed by Google. In the context of rate limiting, BBR has been adapted to provide dynamic throttling by automatically adjusting request concurrency to balance system throughput and response times.
Core Principles of BBR Rate Limiting
The BBR algorith ...
Posted on Tue, 25 Aug 2026 16:22:01 +0000 by vandalite
Building a Lightweight Distributed Log Collector with Go
Managing logs across multiple PHP application instances often leads to fragmentation. Relying on SSH to manually inspect server-side files during incidents is inefficient and reactive. To centralize eror tracking and enable immediate visibility, I developed a lightweight remote log aggregation service using Go.
Core Architecture
The service ope ...
Posted on Tue, 18 Aug 2026 16:05:56 +0000 by Erik-NA
Using GPT-4 to Review and Refactor a Goroutine Leak in Go
The Problem: A Silent Goroutine Leak
A community contributor recently identified a resource leak in a Go worker pool implementation. The issue centered on the dynamic scaling mechanism that failed to terminate its monitoring goroutine when the pool was shut down.
The problematic function:
// scaleWorkers dynamically adjusts the pool size based ...
Posted on Mon, 17 Aug 2026 16:21:10 +0000 by sun14php
Go Language Variables and Basic Data Types
Variable Declaration
Variables in Go are declared using the var keyword followed by the variable name and type. The language supports both individual and batch declaration formats.
var age int
var name string
var isValid bool
// Batch declaration
var (
width float64
height float64
title string
)
Go automatically initializes decl ...
Posted on Tue, 11 Aug 2026 16:20:13 +0000 by mbeals
Configuring HTTPS and HTTP/2 Support in RoadRunner
Overview
RoadRunner provides built-in support for HTTPS and HTTP/2 protocols. This guide explains how to configure secure connections and leverage advanced HTTP features.
HTTPS Configuration
Enable HTTPS by adding the ssl section within the http configuration block:
http:
# Server binding address
address: 127.0.0.1:8080
ssl:
# HTTPS ...
Posted on Sun, 26 Jul 2026 16:38:45 +0000 by Magestic