Hi Mari,

On Fri, Sep 19, 2014 at 4:40 PM, Mariangela Hills <[email protected]>
wrote:

> Thanks for your feedback, Sajith!
>
> Based on your comment shall I remove the following guideline?
>
>
>    - Reformat code using the formatting option provided in the respective
>    IDE.
>    For example, if you are using intelliJ IDEA, navigate *Code* menu and
>    click *Reformat the code *or use the keyboard shortcut as follows:
>    Alt+Ctrl+L
>
>
> Yes, that's better


> 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 Fri, Sep 19, 2014 at 3:35 PM, Sajith Kariyawasam <[email protected]>
> wrote:
>
>> Hi,
>>
>> In formatting code, I think we need to come up with templates for both
>> Eclipse and IntelliJ to make sure everyone uses the same formatting
>> guidelines.
>> Default formatters may be different within IDEs, and when someone
>> reformats using a different formatter, the code diff will have the
>> formatting diffs also, which
>> makes really hard to track the code changes.
>>
>> @Mari  "Alt+Ctrl+L" is not the default code format shortcut in Eclipse,
>> IMO if we specify a shortcut key we need to mention the IDE as well..
>>
>> Thanks,
>> Sajith
>>
>> On Thu, Sep 18, 2014 at 6:19 PM, Mariangela Hills <[email protected]>
>> wrote:
>>
>>> 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 <[email protected]
>>> > 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 <[email protected]
>>>> > 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 <
>>>>> [email protected]> 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 <
>>>>>> [email protected]> 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 <
>>>>>>> [email protected]> 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 <
>>>>>>> [email protected]>
>>>>>>> > 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 <
>>>>>>> [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/
>>>>>>> >>>
>>>>>>> >>
>>>>>>> >>
>>>>>>> >>
>>>>>>> >> --
>>>>>>> >> 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/
>>>>
>>>
>>>
>>
>>
>> --
>> *Sajith Kariyawasam*
>>
>>
>> *Committer and PMC member, Apache Stratos,WSO2 Inc., http://wso2.com
>> <http://wso2.com>AMIE (SL)Mobile: +94772269575*
>>
>
>


-- 
*Sajith Kariyawasam*


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

Reply via email to