Skip to content

Java Code Reviews

Java Style Guide

CSE developers generally follow the Google Java Style Guide.

Code Analysis / Linting

We strongly believe that consistent style increases readability and maintainability of a code base. Hence, we are recommending analyzers to enforce consistency and style rules.

We make use of Checkstyle using the same configuration used in the Azure Java SDK.

FindBugs and PMD are also commonly used.

Automatic Code Formatting

Eclipse, and other Java IDEs, support automatic code formatting. If using Maven, some developers also make use of the formatter-maven-plugin.

Build Validation

It's important to enforce your code style and rules in the CI to avoid any team members merging code that does not comply with standards into your git repo. If building using Azure DevOps, the Maven and Gradle build tasks support using PMD, Checkstyle, and FindBugs code analysis tools as part of every build.

Here is an example yaml for a Maven build task with all three analysis tools enabled:

    - task: Maven@3
    displayName: 'Maven pom.xml'
    inputs:
        mavenPomFile: '$(Parameters.mavenPOMFile)'
        checkStyleRunAnalysis: true
        pmdRunAnalysis: true
        findBugsRunAnalysis: true

Here is an example yaml for a Gradle build task with all three analysis tools enabled:

    - task: Gradle@2
    displayName: 'gradlew build'
    inputs:
        checkStyleRunAnalysis: true
        findBugsRunAnalysis: true
        pmdRunAnalysis: true

Code Review Checklist

In addition to the Code Review Checklist you should also look for these Java specific code review items

  • Does the project use Lambda to make code cleaner?
  • Is dependency injection (DI) used? Is it setup correctly?
  • If the code uses Spring Boot, are you using @Inject instead of @Autowire?
  • Does the code handle exceptions correctly?
  • Is the Azul Zulu OpenJDK being used?
  • Is a build automation and package management tool (Gradle or Maven) being used?

Last update: May 7, 2021