{"adoption": {"forks": 725, "observed_at": "2026-08-28T04:05:42.956919+00:00", "stars": 1839}, "canonical_url": "https://ross.abutalabs.com/products/java-common-mistakes", "card": {"archived": false, "artifact_type": "learning-resource", "description": "书籍《Java 开发坑点解析：从根因分析到最佳实践》 & 极客时间专栏《Java业务开发常见错误100例》源码", "domain": ["developer-tools", "programming-languages", "tutorials", "backend", "databases"], "enriched": true, "function": ["developer-tools", "testing", "logging", "serialization", "error-handling", "concurrency", "date-time"], "health_score": 20, "homepage": null, "language": "Java", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["JosephZhu1983/java-common-mistakes"], "name": "JosephZhu1983/java-common-mistakes", "platform": ["jvm"], "pushed_at": "2024-01-05T14:26:46+00:00", "repo": "JosephZhu1983/java-common-mistakes", "stars": 1839, "tags": ["java-pitfalls", "spring-boot", "book-source-code", "geektime", "best-practices", "jvm", "thread-safety", "code-examples", "docker", "spring"], "topics": ["java", "pitfalls", "mistake", "design-patterns", "spring", "jvm", "troubleshooting", "security"], "urls": [], "use_cases": ["learn common java concurrency and thread-safety mistakes", "understand spring transaction pitfalls", "study thread pool and connection pool misconfigurations", "learn correct database indexing practices", "avoid null pointer and equals/hashcode bugs", "learn java 8 datetime and serialization pitfalls"], "what_it_is": "Source code for the book 'Java Development Pitfalls: From Root Cause Analysis to Best Practices' and the GeekTime column '100 Common Errors in Java Business Development'. Each chapter is an independent Spring Boot or Java CLI example contrasting wrong and right implementations of common Java mistakes.", "when_to_avoid": ["you need a production-ready library to add as a dependency", "you need a license-cleared codebase for commercial reuse (no license is specified)", "you work outside the Java/Spring ecosystem"], "when_to_choose": ["you are a Java developer wanting to learn from real wrong-vs-right code examples", "you are reading the book or GeekTime column and want runnable companion code", "you want to study JVM, Spring, and concurrency pitfalls hands-on"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/java-common-mistakes", "repo": "JosephZhu1983/java-common-mistakes", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:42.956919+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:18:06.118539+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "799aa2fc8718671db54d14cb7bf41693016457fcb8dfe63790c63783d41c28ee", "fetched_at": "2026-08-28T04:05:42.956919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JosephZhu1983/java-common-mistakes"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:42.956919+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:18:06.118539+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "799aa2fc8718671db54d14cb7bf41693016457fcb8dfe63790c63783d41c28ee", "fetched_at": "2026-08-28T04:05:42.956919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JosephZhu1983/java-common-mistakes"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:18:06.118539+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "799aa2fc8718671db54d14cb7bf41693016457fcb8dfe63790c63783d41c28ee", "fetched_at": "2026-08-28T04:05:42.956919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JosephZhu1983/java-common-mistakes"}], "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:42.956919+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:42.956919+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:42.956919+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:18:06.118539+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "799aa2fc8718671db54d14cb7bf41693016457fcb8dfe63790c63783d41c28ee", "fetched_at": "2026-08-28T04:05:42.956919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JosephZhu1983/java-common-mistakes"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:42.956919+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:42.956919+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:18:06.118539+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "799aa2fc8718671db54d14cb7bf41693016457fcb8dfe63790c63783d41c28ee", "fetched_at": "2026-08-28T04:05:42.956919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JosephZhu1983/java-common-mistakes"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:42.956919+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:42.956919+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:42.956919+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:18:06.118539+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "799aa2fc8718671db54d14cb7bf41693016457fcb8dfe63790c63783d41c28ee", "fetched_at": "2026-08-28T04:05:42.956919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JosephZhu1983/java-common-mistakes"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:42.956919+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:42.956919+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:18:06.118539+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "799aa2fc8718671db54d14cb7bf41693016457fcb8dfe63790c63783d41c28ee", "fetched_at": "2026-08-28T04:05:42.956919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JosephZhu1983/java-common-mistakes"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:18:06.118539+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "799aa2fc8718671db54d14cb7bf41693016457fcb8dfe63790c63783d41c28ee", "fetched_at": "2026-08-28T04:05:42.956919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JosephZhu1983/java-common-mistakes"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:18:06.118539+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "799aa2fc8718671db54d14cb7bf41693016457fcb8dfe63790c63783d41c28ee", "fetched_at": "2026-08-28T04:05:42.956919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JosephZhu1983/java-common-mistakes"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:18:06.118539+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "799aa2fc8718671db54d14cb7bf41693016457fcb8dfe63790c63783d41c28ee", "fetched_at": "2026-08-28T04:05:42.956919+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JosephZhu1983/java-common-mistakes"}], "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": 2403, "days_push": 971, "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}}