[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-74628":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":30,"readmeContent":31,"aiSummary":32,"trendingCount":16,"starSnapshotCount":16,"syncStatus":33,"lastSyncTime":34,"discoverSource":35},74628,"go-kata","MedUnes\u002Fgo-kata","MedUnes","A collection of daily coding challenges designed to help you master idiomatic Go through deliberate, repetitive practice.","",null,"Go",2353,184,13,1,0,5,10,21,15,28.8,"MIT License",false,"master",true,[27,28,29],"go","golang","golang-examples","2026-06-12 02:03:26","# 🥋 Go Katas 🥋\n\n[![Tests](https:\u002F\u002Fgithub.com\u002Fmedunes\u002Fgo-kata\u002Factions\u002Fworkflows\u002Ftests.yaml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fmedunes\u002Fgo-kata\u002Factions\u002Fworkflows\u002Ftests.yaml)\n[![CodeQL](https:\u002F\u002Fgithub.com\u002FMedUnes\u002Fgo-kata\u002Factions\u002Fworkflows\u002Fcodeq.yaml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FMedUnes\u002Fgo-kata\u002Factions\u002Fworkflows\u002Fcodeq.yaml)\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fmedunes\u002Fgo-kata\u002Fbranch\u002Fmaster\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fmedunes\u002Fgo-kata)\n\n> \"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.\"\n>\n> (Bruce Lee)\n\n\n## What should it be?\n\n- 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.\n\n- This repository is a collection of **Daily Katas**: small, standalone coding challenges designed to drill specific Go patterns into your muscle memory.\n\n## What should it NOT be?\n\n- 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**.\n\n- The focus should be, as much as possible, on challenging oneself to solve common software engineering problems **the Go way**.\n\n- 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:\n\n  - Is there a way to transfer knowledge so that I don’t have to throw away years of experience and start from zero?\n\n  - If yes, which parts should I focus on to recognize mismatches and use them the expected way in the Go ecosystem?\n\n## How to Use This Repo\n\n1. **Pick a Kata:** Navigate to any `XX-kata-yy` folder.\n2. **Read the Challenge:** Open the `README.md` inside that folder. It defines the goal, the constraints, and the \"idiomatic patterns\" you must use.\n3. **Solve It:** Initialize a module inside the folder and write your solution.\n4. **Reflect:** Compare your solution with the provided \"Reference Implementation\" (if available) or the core patterns listed.\n\n## Contribution Guidelines\n\n Please refer to the [CONTRIBUTING](CONTRIBUTING.md) file\n\n## Katas Index (Grouped)\n\n### 01) Context, Cancellation, and Fail-Fast Concurrency\n\nReal-world concurrency patterns that prevent leaks, enforce backpressure, and fail fast under cancellation.\n\n- [01 - The Fail-Fast Data Aggregator](.\u002F01-context-cancellation-concurrency\u002F01-concurrent-aggregator)\n- [03 - Graceful Shutdown Server](.\u002F01-context-cancellation-concurrency\u002F03-graceful-shutdown-server)\n- [05 - Context-Aware Error Propagator](.\u002F01-context-cancellation-concurrency\u002F05-context-aware-error-propagator)\n- [07 - The Rate-Limited Fan-Out Client](.\u002F01-context-cancellation-concurrency\u002F07-rate-limited-fanout)\n- [09 - The Cache Stampede Shield (singleflight TTL)](.\u002F01-context-cancellation-concurrency\u002F09-single-flight-ttl-cache)\n- [10 - Worker Pool with Backpressure and errors.Join](.\u002F01-context-cancellation-concurrency\u002F10-worker-pool-errors-join)\n- [14 - The Leak-Free Scheduler](.\u002F01-context-cancellation-concurrency\u002F14-leak-free-scheduler)\n- [17 - Context-Aware Channel Sender (No Leaked Producers)](.\u002F01-context-cancellation-concurrency\u002F17-context-aware-channel-sender)\n\n---\n\n### 02) Performance, Allocation, and Throughput\n\nDrills focused on memory efficiency, allocation control, and high-throughput data paths.\n\n- [02 - Concurrent Map with Sharded Locks](.\u002F02-performance-allocation\u002F02-concurrent-map-with-sharded-locks)\n- [04 - Zero-Allocation JSON Parser](.\u002F02-performance-allocation\u002F04-zero-allocation-json-parser)\n- [11 - NDJSON Stream Reader (Long Lines)](.\u002F02-performance-allocation\u002F11-ndjson-stream-reader)\n- [12 - sync.Pool Buffer Middleware](.\u002F02-performance-allocation\u002F12-sync-pool-buffer-middleware)\n\n---\n\n### 03) HTTP and Middleware Engineering\n\nIdiomatic HTTP client\u002Fserver patterns, middleware composition, and production hygiene.\n\n- [06 - Interface-Based Middleware Chain](.\u002F03-http-middleware\u002F06-interface-based-middleware-chain)\n- [16 - HTTP Client Hygiene Wrapper](.\u002F03-http-middleware\u002F16-http-client-hygiene)\n\n---\n\n### 04) Errors: Semantics, Wrapping, and Edge Cases\n\nModern Go error handling: retries, cleanup, wrapping, and infamous pitfalls.\n\n- [08 - Retry Policy That Respects Context](.\u002F04-errors-semantics\u002F08-retry-backoff-policy)\n- [19 - The Cleanup Chain (defer + LIFO + Error Preservation)](.\u002F04-errors-semantics\u002F19-defer-cleanup-chain)\n- [20 - The “nil != nil” Interface Trap (Typed nil Errors)](.\u002F04-errors-semantics\u002F20-nil-interface-gotcha)\n\n---\n\n### 05) Filesystems, Packaging, and Deployment Ergonomics\n\nPortable binaries, testable filesystem code, and dev\u002Fprod parity.\n\n- [13 - Filesystem-Agnostic Config Loader (io\u002Ffs)](.\u002F05-filesystems-packaging\u002F13-iofs-config-loader)\n- [18 - embed.FS Dev\u002FProd Switch](.\u002F05-filesystems-packaging\u002F18-embedfs-dev-prod-switch)\n\n---\n\n### 06) Testing and Quality Gates\n\nIdiomatic Go testing: table-driven tests, parallelism, and fuzzing.\n\n- [15 - Go Test Harness (Subtests, Parallel, Fuzz)](.\u002F06-testing-quality\u002F15-testing-parallel-fuzz-harness)\n","MedUnes\u002Fgo-kata 是一个旨在通过日常编程挑战帮助开发者掌握地道 Go 语言编程技巧的项目。该项目包含了一系列精心设计的小型独立编码挑战，专注于提高代码的安全性、内存效率和并发控制能力，以加深对 Go 语言特性的理解和应用。适合那些希望提升自己在实际软件工程问题中使用 Go 语言解决能力的开发者，特别是已经有一定其他语言开发经验并希望高效过渡到 Go 生态系统的工程师。通过实践这些挑战，用户可以更好地适应 Go 语言的最佳实践，并学会如何在生产环境中有效运用这些模式。",2,"2026-06-11 03:50:10","high_star"]