Forgot the ref https://github.com/CodeNarc/CodeNarc/issues/331
Le 12 juillet 2022 21:11:13 GMT+02:00, Gil Portenseigne <gil.portensei...@nereide.fr> a écrit : >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é. -- Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.