一系列每日编码挑战,旨在通过有意识的、重复的练习帮助您掌握 Go 的习惯用法。
"I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times."
(Bruce Lee)
Go is simple to learn, but nuanced to master. The difference between "working code" and "idiomatic code" often lies in details such as safety, memory efficiency, and concurrency control.
This repository is a collection of Daily Katas: small, standalone coding challenges designed to drill specific Go patterns into your muscle memory.
This is not intended to teach coding, nor to use Go as a general-purpose learning vehicle. It is not intended to teach Go in general.
The focus should be, as much as possible, on challenging oneself to solve common software engineering problems the Go way.
Several seasoned developers spend years learning and applying best practices in production-grade contexts. When they decide to switch to Go, they often face two challenges:
Is there a way to transfer knowledge so that I don’t have to throw away years of experience and start from zero?
If yes, which parts should I focus on to recognize mismatches and use them the expected way in the Go ecosystem?
XX-kata-yy folder.README.md inside that folder. It defines the goal, the constraints, and the "idiomatic patterns" you must use.Please refer to the CONTRIBUTING file
Real-world concurrency patterns that prevent leaks, enforce backpressure, and fail fast under cancellation.
Drills focused on memory efficiency, allocation control, and high-throughput data paths.
Idiomatic HTTP client/server patterns, middleware composition, and production hygiene.
Modern Go error handling: retries, cleanup, wrapping, and infamous pitfalls.
Portable binaries, testable filesystem code, and dev/prod parity.
Idiomatic Go testing: table-driven tests, parallelism, and fuzzing.
暂无开放 Issues,或尚未同步最近议题。