Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 4 spaces for indentation
    • No tabs (warning)
  • "Soft" maximum line length of ~80 characters
    • Editors and monitors used by most programmers with good eyes can easily handle 120 characters. However:
      • lines longer than this can be harder to read and frustrating work with
      • not all programmers have good eyes and/or wide high resolution monitors
      • in typography line length is recommended to be 45-75 with the optimum being 66 or 45-90
    • Here is an example from UrlConfigGui.java
      • which do you find easier to read?

...

      • Code Block
        languagejava
        element.setProperty(HTTPSamplerBase.BROWSER_COMPATIBLE_MULTIPART, useBrowserCompatibleMultipartMode.isSelected(),HTTPSamplerBase.BROWSER_COMPATIBLE_MULTIPART_MODE_DEFAULT);

...

      • or

...

      • Code Block
        
        element.setProperty(

...

      • 
        		HTTPSamplerBase.BROWSER_COMPATIBLE_MULTIPART,

...

      • 
        		useBrowserCompatibleMultipartMode.isSelected(),

...

      • 
        		HTTPSamplerBase.BROWSER_COMPATIBLE_MULTIPART_MODE_DEFAULT);

...


  • "Hard" maximum line length of 120 characters
    • Except for imports or other places where breaking the line wouldn't aid readability

...

  • Spacing between elements on a line e.g.
    • if (x | y) {
    • while (true) {
    • methodCall(arg1, arg2) {
    • String s = "con" + "cat";
  • Braces are always used with if, else, for, do and while statements, even if the body is empty or only a single statement

JavaDoc

  • Parameter descriptions are aligned and not on new lines.
  • No invalid tags
  • No tags without a description
  • Blank line after main description but not after any tags

Other

  • Import order
    • java, javax, org, net, com, others
  • Import spacing
    • line break between each group
  • No wildcard (.*) imports
  • Method line length (soft limit of 50)
  • Class line length (soft limit of 500)

Java 8 Specific

  • Use of Optional
    • Return types where null is possible (which aren't performance critical)
  • Default/static methods on Interfaces
  • Utilise lambdas where possible (max ~5 lines)
    • If the lambda is >3 line then consider making this a separate method

See Also