BirdNest Tech Talk
Author

BirdNest Tech Talk

Author of the rpcx microservice framework, original book author, and chair of Baidu's Go CMC committee.

129
Articles
0
Likes
11
Views
0
Comments
Recent Articles

Latest from BirdNest Tech Talk

100 recent articles max
BirdNest Tech Talk
BirdNest Tech Talk
Jan 15, 2025 · Backend Development

Data Race vs Race Condition in Go: Clear Differences and How to Fix Them

The article explains the distinction between a data race—simultaneous unsynchronized memory access by goroutines—and a race condition—logic errors caused by timing dependencies—using Go code examples, demonstrates how to reproduce each issue, and shows how mutexes or atomic operations can resolve them.

GoGoroutineatomic
0 likes · 5 min read
Data Race vs Race Condition in Go: Clear Differences and How to Fix Them
BirdNest Tech Talk
BirdNest Tech Talk
Jan 14, 2025 · Fundamentals

Master Go Naming: 30+ Rules for Clean, Idiomatic Code

This article presents a comprehensive, step‑by‑step analysis of Go naming conventions, explaining why each rule matters, illustrating each point with concrete code snippets and real‑world examples, and showing how to apply the guidelines to variables, functions, packages, structs, interfaces, errors, constants, enums and comments for truly clean Go code.

GoNaming Conventionsbest practices
0 likes · 24 min read
Master Go Naming: 30+ Rules for Clean, Idiomatic Code
BirdNest Tech Talk
BirdNest Tech Talk
Jan 6, 2025 · Backend Development

Mastering Go’s net Package: Listener, Dial, and Conn Functions Explained

This comprehensive guide walks through Go’s net package, detailing how Listener functions create servers, how Dial functions initiate client connections, the nuances of network and address formats, and the behavior of various Conn types such as TCPConn, UDPConn, IPConn, and RawConn, complete with code examples and best‑practice tips.

GoTCPUDP
0 likes · 32 min read
Mastering Go’s net Package: Listener, Dial, and Conn Functions Explained
BirdNest Tech Talk
BirdNest Tech Talk
Jan 6, 2025 · Fundamentals

Mastering Go Concurrency: From Basics to Advanced Patterns

This article outlines a comprehensive guide to Go's concurrency model, covering fundamental concepts, goroutine scheduling, synchronization primitives, channel communication, common patterns, deadlock avoidance techniques, and performance‑optimizing mechanisms with concrete code examples and step‑by‑step explanations.

ChannelsDeadlockGo
0 likes · 13 min read
Mastering Go Concurrency: From Basics to Advanced Patterns
BirdNest Tech Talk
BirdNest Tech Talk
Jan 1, 2025 · Fundamentals

20 Essential Programming Rules for Cleaner, Safer Code

This article distills Chris Zimmeman's "Programming Rules" into twenty concrete guidelines—covering simplicity, bug containment, naming, generalization, deferred optimization, code reviews, debugging, refactoring, conventions, and more—each explained with its rationale and core takeaway for developers.

best practicescode qualitycode review
0 likes · 15 min read
20 Essential Programming Rules for Cleaner, Safer Code
BirdNest Tech Talk
BirdNest Tech Talk
Jan 1, 2025 · Fundamentals

Master Rust: From Basics to Advanced Concepts in One Comprehensive Guide

This article outlines a Rust programming book that starts with fundamental syntax, variables, and memory management, then progressively explores ownership, lifetimes, error handling, concurrency, async programming, traits, macros, and practical examples, providing code snippets and core concepts for each topic.

Advanced ConceptsAsyncFundamentals
0 likes · 16 min read
Master Rust: From Basics to Advanced Concepts in One Comprehensive Guide
BirdNest Tech Talk
BirdNest Tech Talk
Dec 29, 2024 · Fundamentals

Unlocking Distributed System Design: 20 Core Patterns Explained

This article distills the key design patterns behind distributed systems—covering replication, partitioning, consensus, and fault‑tolerance—by presenting each pattern’s problem statement, concrete solution, trade‑offs, and technical considerations, all illustrated with real‑world examples from projects like Kafka and Cassandra.

ConsensusPartitioningdesign-patterns
0 likes · 18 min read
Unlocking Distributed System Design: 20 Core Patterns Explained
BirdNest Tech Talk
BirdNest Tech Talk
Dec 28, 2024 · Backend Development

How to Build Classic Unix Tools in Rust: A Step‑by‑Step Guide

This article walks through a Rust‑based implementation of classic Unix command‑line utilities—hello world, echo, cat, head, uniq, wc, find, grep, comm, ls, and more—showing project setup, Cargo usage, argument parsing with clap, error handling with Result, testing strategies, and code snippets for each tool.

Command LineRustSystems
0 likes · 21 min read
How to Build Classic Unix Tools in Rust: A Step‑by‑Step Guide
BirdNest Tech Talk
BirdNest Tech Talk
Dec 16, 2024 · Backend Development

Five Ways to Build a Broadcast Notifier in Go

This article examines five Go implementations of a broadcast notifier—using sync.Cond, channels, context, sync.WaitGroup, and sync.RWMutex—detailing their code, execution flow, and trade‑offs so readers can understand how each primitive achieves notification broadcasting.

Gobroadcastchannel
0 likes · 9 min read
Five Ways to Build a Broadcast Notifier in Go
BirdNest Tech Talk
BirdNest Tech Talk
Dec 6, 2024 · Backend Development

Go vs Rust Concurrency: Stackful vs Stackless Coroutines and Memory Impact

The article compares Go’s stackful, green‑thread model with Rust’s stackless, future‑based approach, explaining how each runtime schedules tasks, the memory overhead of goroutine stacks (2 KiB minimum in Go 1.22), the challenges of async‑await integration, and why Rust’s performance gains come with a fragmented ecosystem.

AsyncGoMemory
0 likes · 8 min read
Go vs Rust Concurrency: Stackful vs Stackless Coroutines and Memory Impact