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

Compare with Current View Page History

« Previous Version 4 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 CLUtil.java
      • which do you find easier to read?
      • also interesting to note that by looking at long lines we've spotted a simplification/refactor
            boolean argumentOptional = (flags & CLOptionDescriptor.ARGUMENT_OPTIONAL) == CLOptionDescriptor.ARGUMENT_OPTIONAL;
            boolean argumentRequired = (flags & CLOptionDescriptor.ARGUMENT_REQUIRED) == CLOptionDescriptor.ARGUMENT_REQUIRED;
            boolean twoArgumentsRequired = (flags & CLOptionDescriptor.ARGUMENTS_REQUIRED_2) == CLOptionDescriptor.ARGUMENTS_REQUIRED_2;

or

            boolean argumentOptional = flags == ARGUMENT_OPTIONAL;
            boolean argumentRequired = flags == ARGUMENT_REQUIRED;
            boolean twoArgumentsRequired = flags == ARGUMENTS_REQUIRED_2;
  • "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