{"adoption": {"forks": 237, "observed_at": "2026-08-28T04:05:10.937968+00:00", "stars": 1610}, "canonical_url": "https://ross.abutalabs.com/products/dive-to-gosync-workshop", "card": {"archived": false, "artifact_type": "learning-resource", "description": "深入Go并发编程研讨课", "domain": ["developer-tools", "tutorials", "programming-languages"], "enriched": true, "function": ["concurrency", "developer-tools", "documentation"], "health_score": 20, "homepage": null, "language": "Go", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["smallnest/dive-to-gosync-workshop"], "name": "smallnest/dive-to-gosync-workshop", "platform": ["go", "cross-platform"], "pushed_at": "2024-04-19T12:13:25+00:00", "repo": "smallnest/dive-to-gosync-workshop", "stars": 1610, "tags": ["go-concurrency", "workshop", "sync-primitives", "memory-model", "goroutines", "channels", "distributed-locks"], "topics": [], "urls": [], "use_cases": ["learn go concurrency patterns", "understand go sync package internals", "avoid common goroutine pitfalls", "study go memory model", "learn channel patterns like fan-in fan-out", "understand distributed locks in go", "prepare for go concurrency interview questions"], "what_it_is": "A Chinese-language workshop course on deepening Go concurrency programming skills, covering sync primitives, atomic operations, channels, distributed concurrency primitives, and the Go memory model. It includes study materials, pitfalls analysis, and exercises for mastering concurrent programming in Go.", "when_to_avoid": ["you need a production concurrency library rather than learning material", "you want English-language documentation", "you are a complete beginner to Go and need basics first"], "when_to_choose": ["you want a structured deep-dive into Go concurrency primitives and their pitfalls", "you need to understand the Go memory model and happens-before relationships", "you want to learn extended primitives like singleflight, errgroup, and semaphores", "you are preparing enterprise Go concurrency training"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dive-to-gosync-workshop", "repo": "smallnest/dive-to-gosync-workshop", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.937968+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:51:15.214167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3089720be6b382aa43bec8d757fbea32bf534a4ad7c190c458fa9fee58f74d8e", "fetched_at": "2026-08-28T04:05:10.937968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/dive-to-gosync-workshop"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.937968+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:51:15.214167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3089720be6b382aa43bec8d757fbea32bf534a4ad7c190c458fa9fee58f74d8e", "fetched_at": "2026-08-28T04:05:10.937968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/dive-to-gosync-workshop"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:51:15.214167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3089720be6b382aa43bec8d757fbea32bf534a4ad7c190c458fa9fee58f74d8e", "fetched_at": "2026-08-28T04:05:10.937968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/dive-to-gosync-workshop"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.937968+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.937968+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.937968+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:51:15.214167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3089720be6b382aa43bec8d757fbea32bf534a4ad7c190c458fa9fee58f74d8e", "fetched_at": "2026-08-28T04:05:10.937968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/dive-to-gosync-workshop"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.937968+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.937968+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:51:15.214167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3089720be6b382aa43bec8d757fbea32bf534a4ad7c190c458fa9fee58f74d8e", "fetched_at": "2026-08-28T04:05:10.937968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/dive-to-gosync-workshop"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.937968+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.937968+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.937968+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:51:15.214167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3089720be6b382aa43bec8d757fbea32bf534a4ad7c190c458fa9fee58f74d8e", "fetched_at": "2026-08-28T04:05:10.937968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/dive-to-gosync-workshop"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.937968+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:10.937968+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:51:15.214167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3089720be6b382aa43bec8d757fbea32bf534a4ad7c190c458fa9fee58f74d8e", "fetched_at": "2026-08-28T04:05:10.937968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/dive-to-gosync-workshop"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:51:15.214167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3089720be6b382aa43bec8d757fbea32bf534a4ad7c190c458fa9fee58f74d8e", "fetched_at": "2026-08-28T04:05:10.937968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/dive-to-gosync-workshop"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:51:15.214167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3089720be6b382aa43bec8d757fbea32bf534a4ad7c190c458fa9fee58f74d8e", "fetched_at": "2026-08-28T04:05:10.937968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/dive-to-gosync-workshop"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:51:15.214167+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3089720be6b382aa43bec8d757fbea32bf534a4ad7c190c458fa9fee58f74d8e", "fetched_at": "2026-08-28T04:05:10.937968+00:00", "kind": "readme", "missing": false, "url": "https://github.com/smallnest/dive-to-gosync-workshop"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2675, "days_push": 866, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}