It's nice to see everyone is focusing on $subject. I just went through the
latest Sonar findings and seems like there are nearly 270 critical issues:

https://analysis.apache.org/drilldown/issues/org.apache.stratos:stratos-parent?severity=CRITICAL

We can go through the list and fix these issues, on the next build Sonar
listing will get updated.

On Mon, Sep 22, 2014 at 7:32 AM, Akila Ravihansa Perera <raviha...@wso2.com>
wrote:

> On Mon, Sep 22, 2014 at 4:39 PM, Isuru Perera <isu...@wso2.com> wrote:
> > Hi everyone,
> >
> > I think we should agree on whether we should use tabs or spaces for the
> > indentation.
> >
> > I'm suggesting that we should use 4 spaces for the indentation and
> > completely avoid tabs in our code.
>
> +1
>
> Tabs can mess up the code when working with different developer
> environments.
>
>
> >
> > I can help to come up with an Eclipse Formatter profile. We should also
> > format the entire code base in a single commit after we agree on our
> coding
> > standards.
>
> Great! I can work on a IntelliJ Idea Formatting profile.
>
> >
> > WDYT?
> >
> > Thanks!
> >
> > Best Regards,
> >
> >
> > On Tue, Sep 16, 2014 at 11:52 AM, Lakmal Warusawithana <lak...@wso2.com>
> > wrote:
> >>
> >> Hi,
> >>
> >> This is the guideline we used in WSO2, shall we have a look and see
> >> whether we can use the same.  Please share your thoughts. After we
> finalised
> >> will put this into wiki and make it as common guide line.
> >>
> >> Comments
> >>
> >> Doc comments
> >>
> >> All classes and all methods/functions MUST have doc comments
> >>
> >> Explain each parameter, return type and assumptions made
> >>
> >> Line comments
> >>
> >> In case you have complex logic, explain any genius logic, rationale for
> >> doing something
> >>
> >>
> >> Logging
> >>
> >> Log then and there
> >>
> >> With ample local information and context
> >>
> >> Remember logs are for users. Make them meaningful, readable and also
> make
> >> sure you spell check (ispell)
> >>
> >> Use correct log level, e.g do not log errors as warnings or vice versa
> >>
> >> Remember to log the error before throwing an exception
> >>
> >>
> >> Logic
> >>
> >> Make your genius code readable
> >>
> >> Use meaningful variable names. Remember, compilers can handle long
> >> variable names
> >>
> >> ________________________________
> >>
> >> Variables declared in locality, as an when required
> >>
> >> The underscore character should be used only when declaring constants,
> and
> >> should not be used anywhere else in Java code
> >>
> >> Make sure the function/method names are self descriptive
> >>
> >> One should be able explain a function/method using a single sentence
> >> without conjunctions (that is no and/or in description)
> >>
> >> Have proper separation of concerns
> >>
> >> Check if you do multiple things in a function
> >>
> >> Too many parameters are smelly, indicates that something is wrong
> >>
> >> Use  variables to capture status and return at the end whenever possible
> >>
> >> Avoid status returning from multiple places, that makes code less
> readable
> >>
> >> Be consistent in managing state e.g. Initialize to FALSE and set to TRUE
> >> everywhere else
> >>
> >> Where does that if block end, or what block did you end right now? Have
> a
> >> comment at end of a block at }
> >>
> >> Use if statements rationally, ensure the behavior is homogeneous
> >>
> >> In case of returning a collection, must return an empty collection and
> not
> >> null (or NULL)
> >>
> >> Do not use interfaces to declare constants. Use a final class with
> public
> >> static final attributes and a private constructor.
> >>
> >> Always use braces to surround code blocks ({}) even if it is a single
> >> line.
> >>
> >> Break code into multiple lines if it exceeds 100 columns
> >>
> >> Align method parameters, exception etc. in order to improve readability.
> >> Use the settings in your IDE to do this.
> >>
> >> Be sure to define, who should catch an exception when throwing one
> >>
> >> Be sure to catch those exceptions that you can handle
> >>
> >> Do not use string literals in the code, instead declare constants and
> use
> >> them, constant names should be self descriptive
> >>
> >> Use constants already defined whenever possible, check to see if someone
> >> already declared one, specially in base libs, like Axis2
> >>
> >>
> >> Java Specific
> >>
> >> Coding conventions -
> >> http://www.oracle.com/technetwork/java/codeconv-138413.html
> >>
> >> Only exception is line length, we use 100
> >>
> >> Run FindBugs on your code - http://findbugs.sourceforge.net/
> >>
> >> Use CONSTANT_VALUE.equals(variable_name) to avoid null pointer
> exceptions
> >>
> >> IMPORTANT
> >>
> >> You should run FindBugs on your new code or modified code, and commit
> only
> >> after fixing any bugs reported by FindBugs. It is recommended to use the
> >> IntellijIDEA (FindBugs-IDEA) or Eclipse FindBugs plugin to do this.
> >>
> >>
> >>
> >> --
> >> Lakmal Warusawithana
> >> Vice President, Apache Stratos
> >> Director - Cloud Architecture; WSO2 Inc.
> >> Mobile : +94714289692
> >> Blog : http://lakmalsview.blogspot.com/
> >>
> >
> >
> >
> > --
> > Isuru Perera
> > Senior Software Engineer | WSO2, Inc. | http://wso2.com/
> > Lean . Enterprise . Middleware
> >
> > about.me/chrishantha
>
>
>
> --
> Akila Ravihansa Perera
> Software Engineer, WSO2
>
> Blog: http://ravihansa3000.blogspot.com
>



-- 
Imesh Gunaratne

Technical Lead, WSO2
Committer & PMC Member, Apache Stratos

Reply via email to