Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Logical expression style

by dws (Chancellor)
on Jul 12, 2002 at 16:52 UTC ( [id://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?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (1)
As of 2024-04-23 16:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found