+120 columns.

In most used screen sizes, it would be easier to continue down without
additionally scrolling horizontally. And if a particular line is longer
than 120, it would be either too compact or can easily be broken to
multiple lines.


Regards,
Chamila de Alwis
Software Engineer | WSO2 | +94772207163
Blog: code.chamiladealwis.com



On Fri, Oct 3, 2014 at 1:53 PM, Sajith Kariyawasam <saj...@wso2.com> wrote:

> 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 <r...@wso2.com>
> wrote:
>
>> +1 for 120.
>>
>> On Thu, Oct 2, 2014 at 1:15 PM, Sajith Kariyawasam <saj...@wso2.com>
>> 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 <lahi...@wso2.com>
>>> wrote:
>>>
>>>> +1 for 120.
>>>>
>>>> On Thu, Oct 2, 2014 at 11:19 AM, Isuru Perera <isu...@wso2.com> 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 <saj...@wso2.com>
>>>>> 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 <
>>>>>> nirmal070...@gmail.com> wrote:
>>>>>>
>>>>>>> Guys,
>>>>>>>
>>>>>>> Did you all manage to create the formatter profiles?
>>>>>>>
>>>>>>> On Tue, Sep 23, 2014 at 11:59 AM, Nirmal Fernando <
>>>>>>> nirmal070...@gmail.com> 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 <im...@apache.org
>>>>>>>> > 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 <
>>>>>>>>> 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
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> 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: lahi...@wso2.com 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