Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: Why I'm a Pod::Nazi

by dws (Chancellor)
on Nov 22, 2001 at 11:20 UTC ( [id://126945]=note: print w/replies, xml ) Need Help??


in reply to Why I'm a Pod::Nazi

I've been programming for well over 15 years and have watched myself move from the "comments are for wimps" mentality to the "document the hell out of everything" track.

There's a middle ground. The path to it starts by considering that comments have the potential to be a maintenance burden. The potential for burden increases with the volume of commentary. It gets to be a major nuisance during maintenance when a 2 line change means having to rework 20 lines of commentary. Human nature being what it is, somebody is going to forget to update a comment, and the world described by the commentary can begin to diverge from the truth of the code. Having two divergent stories is a bigger liability than one truth, the code, with no commentary at all.

Pod documentation carries an additional risk, if one follows the style of locating the pod either entirely before or entirely after the code it describes. Physical distance between code and its corresponding commentary increases the likelihood that the commentary won't be updated during maintenance.

The middle ground is to locate commentary close to the code it describes, and to write as little commentary as necessary. If comments are close to the code and there isn't an excess of verbiage, chances are greatly improved that the commentary will survive maintenance.

Replies are listed 'Best First'.
Re (tilly) 2: Why I'm a Pod::Nazi
by tilly (Archbishop) on Nov 22, 2001 at 23:47 UTC
    There was a thread at Inline POD vs. EOF POD a while ago about the joys of inline versus eof POD. While a lot of people seemed to like inline, my strong sympathies go with the position put forth by tye and Abigail that eof is better for POD.

    In particular I liked Abigail's explanation of why inline is a problem. To it I can only add the point that synchronization of POD and code should be far less of a problem than synchronization of general comments and code. The POD is about the public interface. Public interfaces should not be changed as capriciously as code. If you do change them, you need to track down all of the code that used the old interface and change that as well. Compared to that synchronization, modifying the POD is a small cost.

    Comments that need synchronization with code for me go inline. There your point about distance is relevant. But I strongly prefer having POD at the end of the file.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others surveying the Monastery: (2)
As of 2024-04-20 03:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found