{"adoption": {"forks": 969, "observed_at": "2026-08-28T04:08:53.275637+00:00", "stars": 4548}, "canonical_url": "https://ross.abutalabs.com/products/design-patterns-cpp", "card": {"archived": false, "artifact_type": "learning-resource", "description": "C++ Design Patterns", "domain": ["programming-languages", "tutorials", "developer-tools"], "enriched": true, "function": ["developer-tools"], "health_score": 20, "homepage": null, "language": "C++", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["JakubVojvoda/design-patterns-cpp"], "name": "JakubVojvoda/design-patterns-cpp", "platform": ["cpp", "cross-platform"], "pushed_at": "2024-05-12T03:24:20+00:00", "repo": "JakubVojvoda/design-patterns-cpp", "stars": 4548, "tags": ["design-patterns", "object-oriented", "gang-of-four", "creational-patterns", "structural-patterns", "behavioral-patterns", "educational"], "topics": ["cpp", "object-oriented", "design-pattern", "creational-patterns", "behavioral-patterns", "structural-patterns", "abstract-factory-pattern", "decorator-pattern", "factory-method-pattern", "iterator-pattern", "observer-pattern", "singleton-pattern", "strategy-pattern", "template-method-pattern", "visitor-pattern"], "urls": [], "use_cases": ["learn design patterns in c++", "see example implementations of the singleton pattern", "study gang of four patterns with code", "reference for observer and strategy pattern implementations", "prepare for software design interviews", "understand creational vs structural vs behavioral patterns"], "what_it_is": "A collection of classic Gang of Four design pattern implementations in C++, covering creational, structural, and behavioral patterns. Each pattern is provided as a small, self-contained example intended for learning object-oriented design.", "when_to_avoid": ["you need production-ready, thread-safe, or idiomatic modern C++ pattern implementations", "you want a library to import and use patterns directly in your project", "you need patterns beyond the classic GoF set"], "when_to_choose": ["you want concise, minimal C++ examples of each classic design pattern", "you are learning or teaching object-oriented design", "you need a quick reference implementation while reading design pattern books"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/design-patterns-cpp", "repo": "JakubVojvoda/design-patterns-cpp", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.275637+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:20:05.600961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85b0e48b48979e082af6b6b8e5ae49181261f42046c3e68cf90b939fb70ef7c9", "fetched_at": "2026-08-28T04:08:53.275637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JakubVojvoda/design-patterns-cpp"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.275637+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:20:05.600961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85b0e48b48979e082af6b6b8e5ae49181261f42046c3e68cf90b939fb70ef7c9", "fetched_at": "2026-08-28T04:08:53.275637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JakubVojvoda/design-patterns-cpp"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:20:05.600961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85b0e48b48979e082af6b6b8e5ae49181261f42046c3e68cf90b939fb70ef7c9", "fetched_at": "2026-08-28T04:08:53.275637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JakubVojvoda/design-patterns-cpp"}], "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:08:53.275637+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.275637+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.275637+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:20:05.600961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85b0e48b48979e082af6b6b8e5ae49181261f42046c3e68cf90b939fb70ef7c9", "fetched_at": "2026-08-28T04:08:53.275637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JakubVojvoda/design-patterns-cpp"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.275637+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.275637+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:20:05.600961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85b0e48b48979e082af6b6b8e5ae49181261f42046c3e68cf90b939fb70ef7c9", "fetched_at": "2026-08-28T04:08:53.275637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JakubVojvoda/design-patterns-cpp"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.275637+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.275637+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.275637+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:20:05.600961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85b0e48b48979e082af6b6b8e5ae49181261f42046c3e68cf90b939fb70ef7c9", "fetched_at": "2026-08-28T04:08:53.275637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JakubVojvoda/design-patterns-cpp"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.275637+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:53.275637+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:20:05.600961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85b0e48b48979e082af6b6b8e5ae49181261f42046c3e68cf90b939fb70ef7c9", "fetched_at": "2026-08-28T04:08:53.275637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JakubVojvoda/design-patterns-cpp"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:20:05.600961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85b0e48b48979e082af6b6b8e5ae49181261f42046c3e68cf90b939fb70ef7c9", "fetched_at": "2026-08-28T04:08:53.275637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JakubVojvoda/design-patterns-cpp"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:20:05.600961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85b0e48b48979e082af6b6b8e5ae49181261f42046c3e68cf90b939fb70ef7c9", "fetched_at": "2026-08-28T04:08:53.275637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JakubVojvoda/design-patterns-cpp"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:20:05.600961+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "85b0e48b48979e082af6b6b8e5ae49181261f42046c3e68cf90b939fb70ef7c9", "fetched_at": "2026-08-28T04:08:53.275637+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JakubVojvoda/design-patterns-cpp"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3650, "days_push": 843, "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}}