Java Best Practices

Java has been around for an exceptionally long time, and continues to find massive support from developers and businesses worldwide. It has a proven track record of reliably working in mission critical projects, where performance, supportability, wider ecosystem support, and Java's continued evolution see its adoption growing.

The Java Best Practices website is for all Java developers. The goal is to distill years of Java experience down to a set of best practices that help developers build high-quality Java applications and libraries.

Prefer to watch a video?

You're in luck - you can watch (or review the slides from) some of my presentations online.

Best Practices for Java Developers

JBP-1: Use BOMs whenever available
JBP-2: Minimize dependencies
JBP-3: Don’t float dependency versions
JBP-4: Keep dependencies up to date
JBP-5: Make use of logging APIs
JBP-6: Configure build plugins
JBP-7: Use the latest Java Long-Term Support release
JBP-8: A little copying is better than a new dependency

Best Practices for Java Library Developers

JLBP-1: Characteristics of good API
JLBP-2: Embrace modules
JLBP-3: Release to Maven Central
JLBP-4: Publish BOMs for multi-module projects
JLBP-5: Use semantic versioning
JLBP-6: Resist breaking changes
JLBP-7: Minimize API visibility
JLBP-8: Minimize API
JLBP-9: Design for extensibility (Draft)
JLBP-10: Avoid shading dependencies (Draft)
JLBP-11: Write great documentation
JLBP-12: The importance of consistency (Draft)
JLBP-13: Eat your own dog food
JLBP-14: Document your deprecation policy
JLBP-15: Don’t return null
JLBP-16: Beware of boxing
JLBP-17: Understand functional interfaces