Fork me on GitHub
Edit on GitHub

Coding standards

In the first place

Please remember that most of the time others will read your code. Focusing on that allow you to gain required perspective about how code should look like. Defaults, margins, convention doesn’t matter if what you write is hard to read.

Readability is the first rule!

Separation of concern

If you want to reformat given file, part of class, etc do it in a dedicated commit. Never ever mix bug fixing, new feature implementation with code reformatting. Thus only confuses people reviewing your code.

Reformat different than coding!

Ask!

If something isn’t clear, you have doubts and anything else - ask! Maybe during materialising your thoughts as text you will gain the answer - Rubber Duck effect :-) Anyway, instead spending time on looking for solution - ask.

The best place to ask question is Struts Developers List dev@struts.apache.org

WIP

If you have any idea how to improve this guideline, don’t hesitate to send them to us! Any help is welcome!

Examples

Below examples shows how you should proceed when adjusting given part of source code via reformatting, extracting or improving.

From defaults to extractions

The original source code:

// Hidden input section
a = new Attributes();
a.add("type", "hidden")
    .add("id", "__multiselect_" + StringUtils.defaultString(StringEscapeUtils.escapeHtml4(id)))
    .add("name", "__multiselect_" + StringUtils.defaultString(StringEscapeUtils.escapeHtml4(name)))
    .add("value", "").addIfTrue("disabled", disabled);
start("input", a);
end("input");

After applying default reformatting (80 columns margin):

// Hidden input section
a = new Attributes();
a.add("type", "hidden")
    .add("id",
        "__multiselect_"
            + StringUtils
                .defaultString(StringEscapeUtils
                    .escapeHtml4(id)))
    .add("name",
        "__multiselect_"
            + StringUtils
                .defaultString(StringEscapeUtils
                    .escapeHtml4(name)))
    .add("value", "").addIfTrue("disabled", disabled);
start("input", a);
end("input");

Some suggestions how to improve the code:

As you can see, reformatting a code is just the beginning, you shouldn’t stop there and think how can I improve readability and follow that path to the end.