Hello, 

I agree with you, i find out here [1] that it is customisable.

So we can agree upon this variation of the rule !

I have not tested yet, will see in the near future 

Thanks

Gil

Le 11 juillet 2022 17:57:45 GMT+02:00, Scott Gray <lekt...@gmail.com> a écrit :
>+1 in general from me although some of those rules might be challenging to
>resolve.  For example DuplicateStringLiteral could be referring to an
>entity name being used in delegator queries more than once, I don't think
>we'd prefer to see that extracted to a constant.
>
>SpaceAroundMapEntryColon I'm not so sure about, my preference for
>legibility has always been [someKey: someValue].  I find
>[someKey:someValue] a bit too condensed and harder to differentiate key
>from value.
>
>Regards
>Scott
>
>On Mon, 4 Jul 2022 at 16:25, Gil Portenseigne <gil.portensei...@nereide.fr>
>wrote:
>
>> Hello Devs,
>>
>> I would like to continue Codenarc integration in OFBiz (OFBIZ-11167).
>>
>> For those who are not aware, Codenarc is an analysis tools for Groovy
>> for defects, bad practices, inconsistencies, style issues and more.
>>
>> For this purpose we need to agree about the ruleset to put in place.
>>
>> I took as a basis the ruleset :
>> https://codenarc.org/StarterRuleSet-AllRulesByCategory.groovy.txt
>>
>> And started to fix some in
>> https://github.com/apache/ofbiz-framework/pull/517
>>
>> Before doing the complete work, a first rule made me wonder if that is a
>> choice that we will be doing as a community :
>>
>> IfStatementBraces - Use braces for if statements, even for a single
>> statement.
>>
>> There are 234 occurrences in the project, and I guess that some opinions
>> might diverge on this subject.
>>
>> Moreover, some rules needs lots of fixes in the project (those with more
>> than 200 occurrences) :
>>
>>
>> +------------+---------------------------------------------------------------------+
>> | Number of  | Rule name and details
>>          |
>> | occurrence |
>>          |
>>
>> +============+=====================================================================+
>> | 9883       | UnnecessaryGString  - String objects should be created with
>> single  |
>> |            |  quotes, and GString  objects created with double quotes.
>> Creating  |
>> |            |  normal String objects with  double quotes is confusing to
>> readers. |
>>
>> +------------+---------------------------------------------------------------------+
>> | 4569       | DuplicateStringLiteral  - Code containing duplicate String
>> literals |
>> |            |  can usually be improved by  declaring the String as a
>> constant     |
>> |            | field. The ignoreStrings property ()  can optionally
>> specify a      |
>> |            | comma-separated list of Strings to ignore.
>>         |
>>
>> +------------+---------------------------------------------------------------------+
>> | 4209       | SpaceAroundMapEntryColon  - Check for configured formatting
>> of      |
>> |            | whitespace around colons for  literal Map entries.
>>         |
>> |            | The characterBeforeColonRegex and
>> characterAfterColonRegex         |
>> |            | properties specify a regular expression that  must match
>> the        |
>> |            | character before/after the colon.
>>          |
>>
>> +------------+---------------------------------------------------------------------+
>> | 1448       | LineLength  - Checks the maximum length for each line of
>>         |
>> |            | source code. It checks for  number of characters, so lines
>>         |
>> |            |  that include tabs may appear longer than  the allowed
>> number       |
>> |            |  when viewing the file. The maximum line length can  be
>>          |
>> |            | configured by setting the length property, which defaults
>> to 120.   |
>>
>> +------------+---------------------------------------------------------------------+
>> | 885        | UnnecessaryGetter  - Checks for explicit calls to
>> getter/accessor   |
>> |            |  methods which can, for  the most part, be replaced by
>> property     |
>> |            |  access. A getter is defined as a  method call that
>> matches         |
>> |            | get[A-Z] but not getClass() or get[A-Z][A-Z]  such as
>> getURL().     |
>> |            |  Getters do not take method arguments. The
>> ignoreMethodNames       |
>> |            | property (null) can specify method names that should  be
>> ignored    |
>> |            | , optionally containing wildcard characters ('*' or '?').
>>          |
>>
>> +------------+---------------------------------------------------------------------+
>> | 601        | NoDef - def should not be used. You should replace it with
>>         |
>> |            | concrete type.
>>         |
>>
>> +------------+---------------------------------------------------------------------+
>> | 485        | MethodReturnTypeRequired  - Checks that method return
>> types         |
>> |            |  are not dynamic, that is they are  explicitly stated and
>>          |
>> |            |  different than def.
>>         |
>>
>> +------------+---------------------------------------------------------------------+
>> | 484        | Indentation - Check indentation for class and method
>>         |
>> |            | declarations, and initial statements.
>>          |
>>
>> +------------+---------------------------------------------------------------------+
>> | 482        | UnnecessaryReturnKeyword  - In Groovy, the return keyword
>>          |
>> |            |  is often optional. If a statement is  the last line in a
>>          |
>> |            | method or closure then you do not need to have the return
>> keyword.  |
>>
>> +------------+---------------------------------------------------------------------+
>> | 407        | UnnecessaryObjectReferences  - Violations are triggered
>> when        |
>> |            | an excessive set of consecutive  statements all reference
>>          |
>> |            | the same variable. This can be made more  readable by
>> using         |
>> |            |  a with or identity block.
>>         |
>>
>> +------------+---------------------------------------------------------------------+
>> | 345        | CompileStatic - Check that classes are explicitely
>> annotated        |
>> |            | with either @GrailsCompileStatic, @CompileStatic or
>> @CompileDynamic |
>>
>> +------------+---------------------------------------------------------------------+
>> | 320        | ExplicitCallToEqualsMethod  - This rule detects when the
>>         |
>> |            | equals(Object) method is called directly  in code instead
>>          |
>> |            |  of using the == or != operator. A groovier way to
>>         |
>> |            |  express this: a.equals(b) is this: a == b and a groovier
>>          |
>> |            |  way to express :  !a.equals(b) is : a != b
>>          |
>>
>> +------------+---------------------------------------------------------------------+
>> | 235        | IfStatementBraces - Use braces for if statements,
>>          |
>> |            | even for a single statement.
>>         |
>>
>> +------------+---------------------------------------------------------------------+
>> | 235        | SpaceAroundOperator - Check that there is at least one
>> space        |
>> |            | (blank) or whitespace around each binary operator.
>>         |
>>
>> +------------+---------------------------------------------------------------------+
>> | 211        | NestedBlockDepth - Checks for blocks or closures nested
>> more        |
>> |            |  than maxNestedBlockDepth (5) levels deep.
>>         |
>>
>> +------------+---------------------------------------------------------------------+
>> | 201        | TrailingWhitespace - Checks that no lines of source code
>>         |
>> |            | end with whitespace characters.
>>          |
>>
>> +------------+---------------------------------------------------------------------+
>>
>> I think that if someone want to express an opposition about applying one
>> of the above rule, i would be great to express it and discuss it here.
>>
>> My opinion is that it could be nice to adopt every rules, to respect
>> standard best practice. Even if it implies lot of code changes.
>>
>> Thanks in advance for your feedback.
>>
>> Regards,
>>
>> Gil
>>

-- 
Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma 
brièveté.

Reply via email to