It seems that Stratos code in Sonar are checked via "Sonar way with
FindBugs" profiles, and includes CheckStyle, PMD, and FindBugs, [1]
therefore better we mention in our coding standards guide to use Sonar in
developers' IDEs with those plugins installed, rather than mentioning
to "Run FindBugs on your code"

I will come up with some contents on how to install and use those plugins,
thereafter we can review and update the document.

[1] https://analysis.apache.org/profiles/permalinks/49


On Thu, Oct 2, 2014 at 1:19 PM, Reka Thirunavukkarasu <[email protected]> wrote:

> +1 for 120.
>
> On Thu, Oct 2, 2014 at 1:15 PM, Sajith Kariyawasam <[email protected]>
> wrote:
>
>> +1 for 120,
>>
>> Also, introducing a Code Template can be useful, specially to maintain
>> the license headers etc
>>
>> Thanks,
>> Sajith
>>
>> On Thu, Oct 2, 2014 at 11:28 AM, Lahiru Sandaruwan <[email protected]>
>> wrote:
>>
>>> +1 for 120.
>>>
>>> On Thu, Oct 2, 2014 at 11:19 AM, Isuru Perera <[email protected]> wrote:
>>>
>>>> Hi Nirmal,
>>>>
>>>> Sorry for the delay! I needed some time to go through the coding
>>>> guidelines in WSO2 and other Apache project.
>>>>
>>>> All,
>>>>
>>>> Since everyone agrees on 4 spaces, we will configure that accordingly.
>>>> My next concern is that 100 columns for a line is too short.
>>>>
>>>> Most of other projects use 120 columns for the line width.
>>>>
>>>> For example:
>>>> http://maven.apache.org/developers/conventions/code.html
>>>> https://airavata.apache.org/development/source.html
>>>> http://onami.apache.org/committers/codestyle.html
>>>>
>>>> However I think it's better if we can have at least 160 columns for a
>>>> line.
>>>>
>>>> There are some projects, which use 160 columns. :)
>>>> https://accumulo.apache.org/source.html
>>>>
>>>> So, WDYT?
>>>>
>>>>
>>>> On Wed, Oct 1, 2014 at 5:15 PM, Sajith Kariyawasam <[email protected]>
>>>> wrote:
>>>>
>>>>> I came up with the attached code format profile for Eclipse. This is
>>>>> based on the  Eclipse (built in) profile, and I modified lineSplit from 80
>>>>> to 100 and 4 Space indentation. Other default settings seems OK to me.
>>>>>
>>>>> Please share your thoughts
>>>>>
>>>>> Thanks,
>>>>> Sajith
>>>>>
>>>>> On Wed, Oct 1, 2014 at 4:47 PM, Nirmal Fernando <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> Guys,
>>>>>>
>>>>>> Did you all manage to create the formatter profiles?
>>>>>>
>>>>>> On Tue, Sep 23, 2014 at 11:59 AM, Nirmal Fernando <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Thanks for the reminder Imesh. I've created a Jira for this
>>>>>>> https://issues.apache.org/jira/browse/STRATOS-813
>>>>>>>
>>>>>>> On Tue, Sep 23, 2014 at 10:31 AM, Imesh Gunaratne <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> 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 <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> On Mon, Sep 22, 2014 at 4:39 PM, Isuru Perera <[email protected]>
>>>>>>>>> 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 <
>>>>>>>>> [email protected]>
>>>>>>>>> > 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
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Best Regards,
>>>>>>> Nirmal
>>>>>>>
>>>>>>> Nirmal Fernando.
>>>>>>> PPMC Member & Committer of Apache Stratos,
>>>>>>> Senior Software Engineer, WSO2 Inc.
>>>>>>>
>>>>>>> Blog: http://nirmalfdo.blogspot.com/
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Best Regards,
>>>>>> Nirmal
>>>>>>
>>>>>> Nirmal Fernando.
>>>>>> PPMC Member & Committer of Apache Stratos,
>>>>>> Senior Software Engineer, WSO2 Inc.
>>>>>>
>>>>>> Blog: http://nirmalfdo.blogspot.com/
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Sajith Kariyawasam*
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> *Committer and PMC member, Apache Stratos,WSO2 Inc., http://wso2.com
>>>>> <http://wso2.com>AMIE (SL)Mobile: +94772269575-- Isuru PereraSenior
>>>>> Software Engineer | WSO2, Inc. | http://wso2.com/ <http://wso2.com/>Lean .
>>>>> Enterprise . Middlewareabout.me/chrishantha <http://about.me/chrishantha> 
>>>>> *
>>>>>
>>>>
>>>
>>>
>>> --
>>> --
>>> Lahiru Sandaruwan
>>> Committer and PMC member, Apache Stratos,
>>> Senior Software Engineer,
>>> WSO2 Inc., http://wso2.com
>>> lean.enterprise.middleware
>>>
>>> email: [email protected] cell: (+94) 773 325 954
>>> blog: http://lahiruwrites.blogspot.com/
>>> twitter: http://twitter.com/lahirus
>>> linked-in: http://lk.linkedin.com/pub/lahiru-sandaruwan/16/153/146
>>>
>>>
>>
>>
>> --
>> *Sajith Kariyawasam*
>>
>>
>> *Committer and PMC member, Apache Stratos,WSO2 Inc., http://wso2.com
>> <http://wso2.com>AMIE (SL)Mobile: +94772269575*
>>
>
>
>
> --
> Reka Thirunavukkarasu
> Senior Software Engineer,
> WSO2, Inc.:http://wso2.com,
> Mobile: +94776442007
>
>
>


-- 
*Sajith Kariyawasam*


*Committer and PMC member, Apache Stratos,WSO2 Inc., http://wso2.com
<http://wso2.com>AMIE (SL)Mobile: +94772269575*

Reply via email to