{"adoption": {"forks": 529, "observed_at": "2026-08-28T04:05:52.601935+00:00", "stars": 1907}, "canonical_url": "https://ross.abutalabs.com/products/plmcodetemplate", "card": {"archived": false, "artifact_type": "learning-resource", "description": "给部门制定的代码框架模板", "domain": ["web-development", "backend", "developer-tools", "tutorials"], "enriched": true, "function": ["web-framework", "logging", "error-handling", "middleware"], "health_score": 20, "homepage": "https://zhuanlan.zhihu.com/p/28705206", "language": "Java", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["xwjie/PLMCodeTemplate"], "name": "xwjie/PLMCodeTemplate", "platform": ["jvm"], "pushed_at": "2024-01-08T03:15:39+00:00", "repo": "xwjie/PLMCodeTemplate", "stars": 1907, "tags": ["spring", "spring-mvc", "coding-standards", "log4j-mdc", "threadlocal", "aop", "code-template", "best-practices", "chinese", "web-server"], "topics": ["spring", "log4j-mdc", "threadlocal", "aop"], "urls": [], "use_cases": ["learn spring mvc coding conventions", "standardize exception handling in a java team", "set up unified logging with log4j mdc", "template for departmental java code framework", "learn how to write clean controller code", "onboard junior developers to spring best practices"], "what_it_is": "A Java Spring MVC code template and accompanying guide demonstrating clean coding conventions for business developers, covering interface design, unified exception handling via AOP, ResultBean patterns, and logging practices with log4j MDC and ThreadLocal. It serves as a departmental coding standard template with detailed articles on writing simple, readable code.", "when_to_avoid": ["you need a modern Spring Boot stack (use the author's Spring Boot variant instead)", "you want a production-ready framework with active maintenance and a license", "you need reactive or microservice architecture patterns"], "when_to_choose": ["starting a legacy-style Spring MVC project and wanting a conventions baseline", "teaching a team consistent interface, exception, and logging standards", "learning practical Spring coding habits from worked examples"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/plmcodetemplate", "repo": "xwjie/PLMCodeTemplate", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.601935+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:11:16.725881+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "827379cc30f60f8236794872d040c5e1a06015d0f01bf0648e59247ffe4390a2", "fetched_at": "2026-08-28T04:05:52.601935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xwjie/PLMCodeTemplate"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.601935+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:11:16.725881+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "827379cc30f60f8236794872d040c5e1a06015d0f01bf0648e59247ffe4390a2", "fetched_at": "2026-08-28T04:05:52.601935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xwjie/PLMCodeTemplate"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:11:16.725881+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "827379cc30f60f8236794872d040c5e1a06015d0f01bf0648e59247ffe4390a2", "fetched_at": "2026-08-28T04:05:52.601935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xwjie/PLMCodeTemplate"}], "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:52.601935+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.601935+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.601935+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:11:16.725881+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "827379cc30f60f8236794872d040c5e1a06015d0f01bf0648e59247ffe4390a2", "fetched_at": "2026-08-28T04:05:52.601935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xwjie/PLMCodeTemplate"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.601935+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.601935+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:11:16.725881+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "827379cc30f60f8236794872d040c5e1a06015d0f01bf0648e59247ffe4390a2", "fetched_at": "2026-08-28T04:05:52.601935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xwjie/PLMCodeTemplate"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.601935+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.601935+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.601935+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:11:16.725881+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "827379cc30f60f8236794872d040c5e1a06015d0f01bf0648e59247ffe4390a2", "fetched_at": "2026-08-28T04:05:52.601935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xwjie/PLMCodeTemplate"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.601935+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:52.601935+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:11:16.725881+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "827379cc30f60f8236794872d040c5e1a06015d0f01bf0648e59247ffe4390a2", "fetched_at": "2026-08-28T04:05:52.601935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xwjie/PLMCodeTemplate"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:11:16.725881+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "827379cc30f60f8236794872d040c5e1a06015d0f01bf0648e59247ffe4390a2", "fetched_at": "2026-08-28T04:05:52.601935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xwjie/PLMCodeTemplate"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:11:16.725881+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "827379cc30f60f8236794872d040c5e1a06015d0f01bf0648e59247ffe4390a2", "fetched_at": "2026-08-28T04:05:52.601935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xwjie/PLMCodeTemplate"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:11:16.725881+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "827379cc30f60f8236794872d040c5e1a06015d0f01bf0648e59247ffe4390a2", "fetched_at": "2026-08-28T04:05:52.601935+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xwjie/PLMCodeTemplate"}], "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": 3440, "days_push": 968, "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}}