You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

In order to improve readability (Why readability matters) here are some code style guidelines for the JMeter project.

Java

Indentation/White space

  • 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?

{{ element.setProperty(HTTPSamplerBase.BROWSER_COMPATIBLE_MULTIPART, useBrowserCompatibleMultipartMode.isSelected(),HTTPSamplerBase.BROWSER_COMPATIBLE_MULTIPART_MODE_DEFAULT);}}

or

{{ 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

  • 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

Other

  • Import order
    • TBC
  • Import spacing
    • TBC
  • 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 >4-5 lines then consider making this a separate method

See Also

  • No labels