Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re: Improving the quality of my modules

by BrowserUk (Pope)
on Aug 15, 2015 at 02:16 UTC ( #1138662=note: print w/replies, xml ) Need Help??

in reply to Improving the quality of my modules

Sorry, but I have to ask. From what I know of the modules you've listed, none of them will play any part in the runtime function, utility or effectiveness of your modules.

So how do you perceive that they will "improve the quality of your modules"?

All of the modules you've listed may -- and I heavily qualify that 'may' -- have some benefit for you as the maintainer of your code; but none of them -- with the possible exception of Devel::NYTProf -- will benefit the users of your code.

As someone who is fairly intimately familiar with the details and quality of your code; and your work ethic; I really wonder if your adoption of these tools will simply divert your attention from producing code that solves many peoples problems; to code that serves only to satisfy the arbitrary and capricious 'rules' of dumb (as in unthinking, inflexible) robotic tests that serve only to dogmatic compliance than user-felt improvements to the actual, runtime code?

With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
In the absence of evidence, opinion is indistinguishable from prejudice.
I'm with torvalds on this Agile (and TDD) debunked I told'em LLVM was the way to go. But did they listen!
  • Comment on Re: Improving the quality of my modules

Replies are listed 'Best First'.
Re^2: Improving the quality of my modules
by SBECK (Hermit) on Aug 16, 2015 at 02:54 UTC

    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.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (5)
As of 2020-02-18 12:15 GMT
Find Nodes?
    Voting Booth?
    What numbers are you going to focus on primarily in 2020?

    Results (75 votes). Check out past polls.