http://www.perlmonks.org?node_id=221535


in reply to Re: Re: $bad_names eq $bad_design
in thread $bad_names eq $bad_design

Yes! It side-steps domain knowledge. Lets expand on this point.

Consider this code:

if ($a->is_xxx_yyy && $b < PPP_QQQ) { ... }
An experienced Perl coder would instantly, subconciously, grok the control-flow within it. Part of this understanding relies on convention, so could be subverted, but just look at the amount of information/expectation we have: So we'd know that there are 3 paths through the control logic of the if statement, and be able to see how they interact. Bad coders could subvert my expectations (e.g. they could add side-effects to the predicate): but "hard cases make bad law".

Compare this with an abstracted function call:

if (xxx_yyy_ppp_qqq($a,$b))
The perl-brain gleams no information from this. Understanding it relies entirely on the quality of the name of the identifier. And we all know how hard it is to create a really good identifier name.

--Dave