On Sat, 12 Jun 2021 at 10:54, Andrea Aime <andrea.a...@geo-solutions.it>
wrote:

> Hi all,
> PMD recently released version 6.35, with a new check borrowed from the
> Sonar family called
> "Cognitive complexity".
>
> In short, it's an improvement over cyclomatic complexity that accounts for
> the difficulty in understanding
> code rather than just counting the decision points in a method.
> You can read a short paper about it here:
> https://www.sonarsource.com/docs/CognitiveComplexity.pdf
> (10 pages excluding the appendixes, well worth it IMHO).
>
> I took this new check for a spin... it measures the cognitive complexity
> of methods, with a threshold
> of 15. That's a non-starter, we have way too many methods above that
> threshold.
> I've then tried out 50 and 100, still way too many (oh my gosh!).
>
> Pumping it up to 200 (!!!) provides a list of candidates that seems a bit
> more reasonable to attack.
> For example, gt-main only has two methods above that threshold. Here they
> are (brace for cognitive impact!)
>
>    - "Conditionals hurricane with love for chained property calls" in
>    DefaultTemporalPrimitive
>    
> <https://github.com/geotools/geotools/blob/f66689b5305eaf381e21dc2feec8011138d4cb24/modules/library/main/src/main/java/org/geotools/temporal/object/DefaultTemporalPrimitive.java#L79>
>    - "Gonna fit my entire program in a single method" in FilterDOMParser
>    
> <https://github.com/geotools/geotools/blob/14d27a2db448454c64e8f38e9977565cc400d52b/modules/library/main/src/main/java/org/geotools/filter/FilterDOMParser.java#L113>
>
>
I think I recognise that method :-) but in my defence I've learned a lot in
the last 20 years!

This is different from considering just method length, for example, some
> time ago Gabriel was proposing
> to look PMD maximum method length check, which flagged only a few methods,
> including "reproject" which
> is a 400 lines long method... but only has a cognitive complexity of
> little above 100, I believe thanks to
> its flatter structure.
>
> So, what do you think? Do you mind having this kind of check as part of
> the ones performed by PMD?
> We can start with a score of 200 and go down little by little, until time
> and interest are exhausted.
>
>
+1

Ian
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to