Hi All,

I added the content in [1]. Please let me know if any changed are needed.

[1]
https://cwiki.apache.org/confluence/display/STRATOS/Coding+Standards+and+Best+Practices

Regards,
Mariangela




*--*
Mariangela Hills
Senior Technical Writer

*WSO2, Inc.*lean.enterprise.middleware.
m: +94 773 500185
w: http://wso2.com
<http://wso2.com/events/>

On Thu, Sep 18, 2014 at 5:14 PM, Nirmal Fernando <nirmal070...@gmail.com>
wrote:

> I think we can use the general Java coding conventions
> http://www.oracle.com/technetwork/java/codeconvtoc-136057.html
>
> On Wed, Sep 17, 2014 at 10:30 AM, Mariangela Hills <mariang...@wso2.com>
> wrote:
>
>> Lakmal, will do! I have created a JIRA [1] to track this task.
>>
>> [1] https://issues.apache.org/jira/browse/STRATOS-804
>>
>> Regards,
>> Mariangela
>>
>>
>>
>>
>> *--*
>> Mariangela Hills
>> Senior Technical Writer
>>
>> *WSO2, Inc.*lean.enterprise.middleware.
>> m: +94 773 500185
>> w: http://wso2.com
>> <http://wso2.com/events/>
>>
>> On Wed, Sep 17, 2014 at 10:09 AM, Lakmal Warusawithana <lak...@wso2.com>
>> wrote:
>>
>>> @Mari,
>>>
>>> Can you work on all feedback and compile a wiki page?
>>>
>>> On Tue, Sep 16, 2014 at 1:11 PM, Akila Ravihansa Perera <
>>> raviha...@wso2.com> wrote:
>>>
>>>> Hi,
>>>>
>>>> +1 for using this as the common guideline.
>>>>
>>>>  IMO, we should add coding styles as well. It will make the code more
>>>> readable and easy to understand. We might be able to get some idea
>>>> from Google Java style in [1]. Another style from Apache ACE project
>>>> in [2].
>>>>
>>>> [1] https://google-styleguide.googlecode.com/svn/trunk/javaguide.html
>>>> [2] https://ace.apache.org/dev-doc/coding-standards.html
>>>>
>>>> Thanks.
>>>>
>>>> On Tue, Sep 16, 2014 at 12:28 PM, Sajith Kariyawasam <saj...@wso2.com>
>>>> wrote:
>>>> > You can access Sonar dashboard for Stratos in [1], Imesh shared this
>>>> in the
>>>> > thread [Discuss] Setting up Sonar for Stratos
>>>> > [1]
>>>> >
>>>> https://analysis.apache.org/dashboard/index/org.apache.stratos:stratos-parent
>>>> >
>>>> > On Tue, Sep 16, 2014 at 12:15 PM, Sajith Kariyawasam <saj...@wso2.com
>>>> >
>>>> > wrote:
>>>> >>
>>>> >> Hi all,
>>>> >>
>>>> >> I think these guidelines should align with the Sonar rules which are
>>>> >> already integrated with Stratos, or decide on a set of guidelines
>>>> and change
>>>> >> the Sonar rules accordingly.
>>>> >>
>>>> >> Also, IMO we should use Sonar plugin in IDE s, rather than using
>>>> Findbugs
>>>> >> / PMD etc individually..
>>>> >> [1]
>>>> >>
>>>> http://stackoverflow.com/questions/5479019/is-sonar-replacement-for-checkstyle-pmd-findbugs
>>>> >>
>>>> >> I assume that we can use Sonar even for managing code review stuff
>>>> as well
>>>> >> [2]
>>>> >> [2] http://www.sonarqube.org/effective-code-review-with-sonar/
>>>> >>
>>>> >> Thanks,
>>>> >> Sajith
>>>> >>
>>>> >> 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/
>>>> >>>
>>>> >>
>>>> >>
>>>> >>
>>>> >> --
>>>> >> Sajith Kariyawasam
>>>> >> Committer and PMC member, Apache Stratos,
>>>> >> WSO2 Inc., http://wso2.com
>>>> >> AMIE (SL)
>>>> >> Mobile: +94772269575
>>>> >>
>>>> >
>>>> >
>>>> >
>>>> > --
>>>> > Sajith Kariyawasam
>>>> > Committer and PMC member, Apache Stratos,
>>>> > WSO2 Inc., http://wso2.com
>>>> > AMIE (SL)
>>>> > Mobile: +94772269575
>>>> >
>>>>
>>>>
>>>>
>>>> --
>>>> Akila Ravihansa Perera
>>>> Software Engineer, WSO2
>>>>
>>>> Blog: http://ravihansa3000.blogspot.com
>>>>
>>>
>>>
>>>
>>> --
>>> Lakmal Warusawithana
>>> Vice President, Apache Stratos
>>> Director - Cloud Architecture; WSO2 Inc.
>>> Mobile : +94714289692
>>> Blog : http://lakmalsview.blogspot.com/
>>>
>>>
>>
>
>
> --
> Best Regards,
> Nirmal
>
> Nirmal Fernando.
> PPMC Member & Committer of Apache Stratos,
> Senior Software Engineer, WSO2 Inc.
>
> Blog: http://nirmalfdo.blogspot.com/
>

Reply via email to