groovy-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From MG <mg...@arscreat.com>
Subject Re: Possible New Groovy Features... - Auto final-ize
Date Sun, 27 Aug 2017 02:57:23 GMT
Hi Paul,

On 25.08.2017 04:15, Paul King wrote:
>
>
> On Fri, Aug 25, 2017 at 11:03 AM, MG <mgbiz@arscreat.com 
> <mailto:mgbiz@arscreat.com>> wrote:
>
>
>     I was just referring to your "You can already leave off the
>     "clutter" and apply a CodeNarc rule[1] to detect "bad" style",
>     which seemed to poke fun at my suggestion - and which I did not
>     quite get: What use would a rule be, if having the clutter that
>     unavoidably comes from having "final" everywhere is exactly what
>     the rule would enforce ?-)
>
>
> I definitely wasn't trying to poke fun at any suggestions.

> Many people consider changing parameters halfway through a long method 
> can be confusing and lead to obscure bugs when the person reading your 
> code wasn't expecting the change. From my agile background days there 
> were two schools of thought on dealing with that issue (mostly in Java 
> land in those days). One is that you should have final everywhere 
> because then the compiler will stop the "bad" style.

Yup.

> The second is that having final everywhere adds lots of "clutter" and 
> makes the code less succinct.

Yup.

> Leave final off but don't change those parameters anyway - and back it 
> up with a checkstyle rule that breaks the build if you ever do.

If you do not already have a style checker in place (not a big fan, 
usually too rigid/dumb for my taste, and another thing you have to 
adapt/evolve over time, update, administrate, etc).

> Advocates of the second style would go on to say that if you have a 
> method that is so long that you might get lost knowing whether a 
> parameter has changed or not, well you have a method that is way too 
> long! :-)

Yes hard to do in 3-line-methods (setup-execute-teardown) - but not 
impossible ;-)

(Overall: That is a lot of background information I was supposed to 
glean from two words put in quotes ;-) )

>     Apart from that I totally get and expect the Devil's advocate
>     approach from your side, I would do the same. If I have a
>     proposal, I'd better expect you to poke it and be prepared to
>     defend it.
>
>     Thank you for your suggestions on where to look for info on the
>     local AST transform.
>     Where can I download "Groovy in Action" ?
>
>
> Actually, I think an @AutoFinal transform might be a good addition. 
> I'm happy to work on that with you if you like.

Let's do it.
Markus




Mime
View raw message