Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses

Re: Logical expression style

by dws (Chancellor)
on Jul 12, 2002 at 16:52 UTC ( #181342=note: print w/replies, xml ) Need Help??

in reply to Logical expression style

When making on-the-fly decisions on breaking lines, I try to consider readability and recognizability. They're different beasts, though they're often conflated. Readability is about being able to grok the entire expression. Recognizability is the ability to classify the expression when doing a quick scan through the code. When scanning quickly, my eyes focus to the left.

Consider the fragment:

if ( A && B )
This is certainly readable, but to recognize what the expression is (i.e., is it a conjunction, disjunction, or a hybrid) requires reading to the end of the line. If it's a long line, this slows down my scanning pattern by making me read further to the right.

Now consider

if ( A && B )
Equally readable, but easier, in my opinion, to recognize when quickly scanning code.

Formatting for recognizability also forces a non-obvious change in indentation style. I'll write

if ( A && B ) { ... }
if the expression is short enough to fit on one line, but will write
if ( A && B ) { ... }
if the expression needs to be broken across lines. The reason? It's easier to quickly pick out the scope when scanning code. If I were to be consistent, and format the fragment as
if ( A && B ) { }
it would still be readable, but a bit harder to quickly recognize.

Log In?

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://181342]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2022-08-08 18:53 GMT
Find Nodes?
    Voting Booth?

    No recent polls found