Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re^2: Improving the quality of my modules

by SBECK (Chaplain)
on Aug 16, 2015 at 02:54 UTC ( [id://1138724]=note: print w/replies, xml ) Need Help??


in reply to Re: Improving the quality of my modules
in thread Improving the quality of my modules

Thanks for the compliment. I certainly remember the conversation we had before. One of my most useful perl monks interactions!

I think that some of the tools on this list can distract from work (especially if you took an 'I am going to use every single one of them' approach). For example, I don't personally find that Perl::Critic is very helpful to me (and I mostly agree that following it would be to satisfy someone arbitrary rules many of which I do not personally agree with). And the 'Change Kwalitee' tool doesn't (IMO) contribute much at this point (though I could see how it could evolve into something a bit more useful for tracking changes), so I threw a couple of my smaller modules at it for fun, but my main modules don't use it.

However, a number of the tools DO make some contribution to the quality of code and require very little effort to use. Travis CI is a good example. Using it, I automatically run the test suit on all versions of perl 5.6 to 5.20 without me having to do it manually. True, it hasn't actually caught anything for me yet... but someday it may. And given how easy it is to use, I consider it a useful tool. And as a side note, using Travis CI forced me to put my modules on GitHub and I've gotten 5 or 6 patches as a result. Nothing major to date, but all of them have been valid. Likewise, Test::Pod and Test::Pod::Coverage are painless to set up, and that one-time cost makes sure that my pod files are all valid and complete (and I've caught both types of problems using them prior to a new release). Pod::Spell is similarly easy to use and I run it just prior to a release to spell check my pods. So these types of tools are so trivial to use that I don't see any reason NOT to use them.

Obviously, Devel::NYTprof is extremely valuable, but I'm finding Devel::Cover almost equally so. I've just barely started using it, and by finding placed in my code that aren't tested in my test suite, I've already found 1 or 2 very minor bugs. It may take a while, but eventually I would like to see every single line of my module get attention in a test suite. I think that would be a necessary prerequisite to having completely bug-free code.

  • Comment on Re^2: Improving the quality of my modules

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (3)
As of 2024-04-19 21:33 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found