~/talk

Streamlining Large-Scale Java Development Using Error Prone

Talkat GOTO Amsterdam 2022 · 2022-06-12..06-16· [testing]
slides:none on file

Shows Error Prone as a Java compiler plugin that both flags and auto-fixes issues (example: a created but not thrown exception becomes throw new IllegalArgumentException), describes building a custom BugChecker (empty-method detector compiled into an annotation-processor jar), and explains Refaster templates that rewrite patterns like arg.equals("") to String.isEmpty() and Optional/stream idioms. Picnic runs this across ~200 engineers, migrated to Java 17 within months, and enforces rewrites in CI using Error Prone’s patching mode so PRs must apply fixes.

AI-written summary · about

  1. 0:00Intro
  2. 1:22Refactoring at scale using Error Prone
  3. 2:20The online groceries challenge
  4. 2:58Picnic's numbers
  5. 3:39SonarQube
  6. 4:27The need for automated sanity
  7. 5:28Error Prone
  8. 7:11Demo
  9. 10:53Error Prone (continued)
  10. 16:00Error Prone BugChecker
  11. 17:54Demo
  12. 22:44Custom BugChecks at Picnic
  13. 25:58What's not to like?
  14. 26:49What if we could write rules by example?
  15. 27:29Error Prone with Refaster
  16. 28:50Demo
  17. 32:27Refaster at Picnic: JDK 11 migration
  18. 34:53Refaster at Picnic: Reactor anti-patterns
  19. 35:29When to use Refaster?
  20. 36:12Refaster vs BugChecks
  21. 36:59Integrating Error Prone with CI
  22. 39:26Outro
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.