skills/jdubray/puffin/coding-standard-java

coding-standard-java

SKILL.md

Java Coding Standards

When reviewing or generating Java code, follow these rules:

File Naming

  • Source files: PascalCase matching the public class name (e.g., UserService.java)
  • One public class per file: File name must match the public class name exactly
  • Test files: Class name with Test suffix (e.g., UserServiceTest.java)
  • Interface files: PascalCase (e.g., Comparable.java, UserRepository.java)

Package Naming

  • Packages: All lowercase, dot-separated (e.g., com.example.service, org.project.utils)
  • No underscores or hyphens in package names
  • Follow reverse domain name convention

Variable Naming

  • Local variables: camelCase (e.g., userName, isActive, totalCount)
  • Instance variables: camelCase (e.g., userId, createdAt)
  • Constants: UPPER_SNAKE_CASE with static final (e.g., MAX_RETRIES, DEFAULT_TIMEOUT)
  • Boolean variables: Prefix with is, has, can, should (e.g., isEnabled, hasPermission)

Method Naming

  • Methods: camelCase, verb or verb phrase (e.g., calculateTotal(), getUserById())
  • Getters: get prefix (e.g., getName(), getId())
  • Setters: set prefix (e.g., setName(), setId())
  • Boolean getters: is or has prefix (e.g., isActive(), hasChildren())
  • Factory methods: create, of, from, valueOf (e.g., createInstance(), of())

Class/Interface Naming

  • Classes: PascalCase, noun or noun phrase (e.g., UserService, OrderProcessor)
  • Interfaces: PascalCase, adjective or noun (e.g., Comparable, UserRepository)
  • Abstract classes: PascalCase, optionally prefix with Abstract (e.g., AbstractHandler)
  • Exception classes: PascalCase with Exception suffix (e.g., InvalidInputException)
  • Enums: PascalCase for type, UPPER_SNAKE_CASE for values

Generics

  • Type parameters: Single uppercase letter (e.g., T, E, K, V)
  • Meaningful names: When clarity needed (e.g., <Key, Value>)

Organization

  • Package statement first
  • Import statements (java., javax., third-party, project imports)
  • Class declaration with fields, constructors, methods
  • Public methods before private methods
Weekly Installs
18
Repository
jdubray/puffin
GitHub Stars
17
First Seen
Jan 22, 2026
Installed on
antigravity15
gemini-cli14
claude-code14
windsurf13
codex13
opencode13