+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* >