Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Re^2: A refactoring trap

by Anonymous Monk
on Aug 17, 2005 at 06:00 UTC ( #484351=note: print w/replies, xml ) Need Help??

in reply to Re: A refactoring trap
in thread A refactoring trap

Does it really gain that much? I think commenting out a regex like that is just as silly and pointless as writing:
my $tmp = 0; # Make $tmp 0. $i ++; # Increment $i. print "hello"; # Print 'hello' to the screen.
If I want to comment the regex, I'd write:
# Capture what's between brackets, # omitting leading white space. /\[\s*([^\]]+)/;
Because that documents the intent of the regex, not the mechanics. Given the context, I'd probably even document what's between the brackets, and not just the fact I'm capturing between brackets, for instance:
# Capture the wiki-link. /\[\s*([^\]]+)/;
Now, that's useful, and you immediately know what to change if the syntax of the wiki-links changes. Where as your example carefully documents the tiny steps it takes, and not the overall picture.

You might want to read Brian W. Kernighan, Rob Pike: The Practice of Programming, which discusses correct commenting style as well. And there's no reason to assume you should use a commenting style for regexes that's considered bad style for other code.

Replies are listed 'Best First'.
Re^3: A refactoring trap
by Nkuvu (Priest) on Aug 17, 2005 at 12:55 UTC
    Does it gain that much in this instance? Probably not. Commenting on intent is actually a nice way to put it, and one habit that I'm trying to break is commenting on mechanics. I've written a number of scripts for people who are not Perl-savvy, and they come back with questions on how this or that works. So for a long time I started commenting on every single regex on how it works -- because that's what people were asking about. These people are general C/C++ programmers, so I didn't get into the habit of commenting code like your first example, thank dog.

    So you have a very good point, and I'll add your reading suggestion to my list of books. I have some good habits, some not so good. I knew when I posted this that I might have comments about the style -- which is really what I want. Nothing like critiques of bad practices to break the habit.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (3)
As of 2020-09-19 05:31 GMT
Find Nodes?
    Voting Booth?
    If at first I donít succeed, I Ö

    Results (114 votes). Check out past polls.