인터페이스는 현지화되어 있으며, Skill 소개와 설명 문서는 선택한 언어로 AI가 자동 번역합니다. 코드·명령어·경로·전문 용어는 원문을 유지하며 원작자 문서가 우선합니다.
Skills 둘러보기
디자인 및 창작 · SKILL.md

java-best-practices

java-best-practices

Apply core Effective Java patterns for robust, maintainable code. Use when applying SOLID principles, choosing between inheritance and composition, refactoring Java code smells, or reviewing class design.

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill 문서

GitHub

name: java-best-practices description: Apply core Effective Java patterns for robust, maintainable code. Use when applying SOLID principles, choosing between inheritance and composition, refactoring Java code smells, or reviewing class design. metadata: triggers: files: - '**/*.java' keywords: - refactor - SOLID - builder - factory - composition - immutable - Optional - checked exception - clean code

Java Best Practices

Priority: P1 (HIGH)

Implementation Guidelines

  • Immutability: Prefer immutable objects (final fields, unmodifiable collections).
  • Access Modifiers: Minimize visibility. Default to package-private (no modifier). Use private for all fields. Only public for API contracts.
  • Composition > Inheritance: Favor Has-A over Is-A. Avoid deep hierarchies.
  • Constructors: Use Static Factory Methods (User.of()) over complex constructors.
  • Builder Pattern: Use for objects with 4+ parameters.
  • Exceptions: Recoverable → Checked; Programming error → Unchecked.
  • Fail Fast: Validate parameters (Objects.requireNonNull) at method start.
  • Interfaces: Code to interfaces (List, Map), not implementations (ArrayList).
  • Dependency Injection: Inject dependencies via constructor; don't create them internally.
  • Method References: Use String::toUpperCase over s -> s.toUpperCase() where readable.

Anti-Patterns

  • No Null Returns: Return Optional or empty collection instead.
  • No Empty Catch: Log or rethrow; never swallow exceptions silently.
  • No God Class: Split into focused classes following Single Responsibility Principle.
  • No Magic Numbers: Extract named constants with clear meaning.
  • No Mutable Statics: Avoid public static mutable fields (global state).

References

저장한 Skills