Streamlining large-scale Java development using Error Prone
summary
Picnic uses Error Prone plus Refaster to detect and automatically fix hundreds of bug patterns during compilation, running across a codebase maintained by 200+ engineers and migrated to Java 17. Examples include converting new IllegalArgumentException without throw into a thrown exception, replacing string equals("") or length()==0 with isEmpty, enforcing opt‑in mutability via an @Var annotation, checking SLF4J placeholders, and running rewrites in CI so builds fail or PRs block until fixes are applied. A fork adds refaster conveniences and custom checks enable large-scale migrations.
AI-written summary · about
chapters (11)
- 0:00Intro
- 1:34Refactoring at Scale
- 2:20The Online Groceries Challenge
- 15:08Error Prone Picnic
- 24:19Custom BugChecks Picnic
- 30:13Error Prone with Refaster
- 40:06Refaster Picnic: Reactor anti-patterns
- 42:46When to create a BugCheck? properties
- 43:52Integrating Error Prone with CI
- 45:21Picnic Research
- 46:34Practice your new superpower!
related talks
01h 57mAutomatically improving Java codebases with Error Prone
48mSay goodbye to bugs and anti-patterns with Error Prone
38mSay goodbye to bugs and anti-patterns with Error Prone
45mAutomating away bugs with Error Prone in practice
31mError Prone: Google's Secret Weapon for Bug-Free Lines of Code
40mAssuring top-notch code quality in the Java Universe
44mThe Art of Refactoring
36mRetrofitting Null-Safety into Java
