[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EBF28M264C02GTM9S1DF46":3,"skill-same:01M6EBF28M264C02GTM9S1DF46":67},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":49,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6EBF28M264C02GTM9S1DF46","java-best-practices",null,"Core Effective Java patterns for robust, maintainable Java code. Use when applying SOLID principles, choosing between inheritance and composition, refactoring Java code smells, or reviewing class design. (triggers: **\u002F*.java, refactor, SOLID, builder, factory, composition, immutable, Optional, checked exception, clean code)","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHoangNguyen0403\u002Fagent-skills-standard\u002Fjava-best-practices\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"java best practices","best practices","java","refactoring","triggers","inheritance","patterns","clean","builder","use","factory","solid principles","design","Composition","immutable","clean code","refactor","code","core","solid","2026-11-10 10:12:30",false,"---\nname: java-best-practices\ndescription: \"Core Effective Java patterns for robust, maintainable Java code. Use when applying SOLID principles, choosing between inheritance and composition, refactoring Java code smells, or reviewing class design. (triggers: **\u002F*.java, refactor, SOLID, builder, factory, composition, immutable, Optional, checked exception, clean code)\"\n---\n\n# Java Best Practices\n\n## **Priority: P1 (HIGH)**\n\nCore engineering principles for robust, maintainable Java systems.\n\n## Implementation Guidelines\n\n- **Immutability**: Prefer immutable objects (`final` fields, unmodifiable collections).\n- **Access Modifiers**: Minimize visibility. Default to **package-private** (no modifier). Use `private` for all fields. Only `public` for API contracts.\n- **Composition > Inheritance**: Favor `Has-A` over `Is-A`. Avoid deep hierarchies.\n- **Constructors**: Use Static Factory Methods (`User.of()`) over complex constructors.\n- **Builder Pattern**: Use for objects with 4+ parameters.\n- **Exceptions**: Recoverable → Checked; Programming error → Unchecked.\n- **Fail Fast**: Validate parameters (`Objects.requireNonNull`) at the method start.\n- **Interfaces**: Code to interfaces (`List`, `Map`), not implementations (`ArrayList`).\n- **Dependency Injection**: Inject dependencies via constructor; don't create them internally.\n- **Method References**: Use `String::toUpperCase` over `s -> s.toUpperCase()` where readable.\n\n## Anti-Patterns\n\n- **No Null Returns**: Return Optional\u003CT> or empty collection instead.\n- **No Empty Catch**: Log or rethrow; never swallow exceptions silently.\n- **No God Class**: Split into focused classes following Single Responsibility Principle.\n- **No Magic Numbers**: Extract named constants with clear meaning.\n- **No Mutable Statics**: Avoid public static mutable fields (global state).\n\n## References\n\n- [Static Factory & Composition Examples](references\u002Fexample.md)\n\n","# Java Best Practices\n\n## **Priority: P1 (HIGH)**\n\nCore engineering principles for robust, maintainable Java systems.\n\n## Implementation Guidelines\n\n- **Immutability**: Prefer immutable objects (`final` fields, unmodifiable collections).\n- **Access Modifiers**: Minimize visibility. Default to **package-private** (no modifier). Use `private` for all fields. Only `public` for API contracts.\n- **Composition > Inheritance**: Favor `Has-A` over `Is-A`. Avoid deep hierarchies.\n- **Constructors**: Use Static Factory Methods (`User.of()`) over complex constructors.\n- **Builder Pattern**: Use for objects with 4+ parameters.\n- **Exceptions**: Recoverable → Checked; Programming error → Unchecked.\n- **Fail Fast**: Validate parameters (`Objects.requireNonNull`) at the method start.\n- **Interfaces**: Code to interfaces (`List`, `Map`), not implementations (`ArrayList`).\n- **Dependency Injection**: Inject dependencies via constructor; don't create them internally.\n- **Method References**: Use `String::toUpperCase` over `s -> s.toUpperCase()` where readable.\n\n## Anti-Patterns\n\n- **No Null Returns**: Return Optional\u003CT> or empty collection instead.\n- **No Empty Catch**: Log or rethrow; never swallow exceptions silently.\n- **No God Class**: Split into focused classes following Single Responsibility Principle.\n- **No Magic Numbers**: Extract named constants with clear meaning.\n- **No Mutable Statics**: Avoid public static mutable fields (global state).\n\n## References\n\n- [Static Factory & Composition Examples](references\u002Fexample.md)\n\n",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002FHoangNguyen0403\u002Fagent-skills-standard\u002Fjava-best-practices",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill java-best-practices",{"tool":59,"command":60},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill java-best-practices",{"tool":62,"command":63},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill java-best-practices","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FHoangNguyen0403\u002Fagent-skills-standard\u002Fjava-best-practices\u002FSKILL.md",true,[],[68,82,92,101,107,114],{"skillNo":69,"name":70,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":78,"publishedAt":39},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[73],{"categoryNo":74,"categoryName":75,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[79,80,81],"model","model hierarchy","model hierarchy skill",{"skillNo":83,"name":84,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":88,"publishedAt":39},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[87],{"categoryNo":74,"categoryName":75,"taxonomyType":76,"taxonomyTypeDesc":77},[89,90,91],"MCP","zoom","zoom mcp",{"skillNo":93,"name":94,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":39},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[98,99,100,90],"sdk","zoom apps sdk","apps",{"skillNo":102,"name":103,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":39},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[103],{"skillNo":108,"name":109,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":113,"publishedAt":39},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[112],{"categoryNo":74,"categoryName":75,"taxonomyType":76,"taxonomyTypeDesc":77},[109],{"skillNo":115,"name":116,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":119,"publishedAt":39},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[116]]