ExcessiveClassLength rule is already there in PMD [1] , but its not
activated. I'm not sure whether we can activate

[1]
https://analysis.apache.org/rules_configuration/index/49?commit=Search&rule_activation=INACTIVE&searchtext=ExcessiveClassLength&sort_by=SORT_BY_RULE_NAME

On Mon, Oct 6, 2014 at 12:12 PM, Reka Thirunavukkarasu <r...@wso2.com>
wrote:

> Hi all,
>
> I found [1] which has few recommended lines of code for the java as well.
> When we increase the no of lines in a class/method, then we will also
> increase the responsibility [2] of that class/method. Can we propose a
> convention about line of codes in a method/class as well?
>
> [1] http://www.aivosto.com/project/help/pm-loc.html
> [2] http://en.wikipedia.org/wiki/Single_responsibility_principle
>
> Thanks,
> Reka
>
> On Fri, Oct 3, 2014 at 2:48 PM, Chamila De Alwis <chami...@wso2.com>
> wrote:
>
>> +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*
>>>
>>
>>
>
>
> --
> 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