Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

Re: Critique requested for module code - QuickMemo+ reader

by Discipulus (Canon)
on Jan 24, 2021 at 18:06 UTC ( [id://11127382]=note: print w/replies, xml ) Need Help??


in reply to Critique requested for module code - QuickMemo+ reader

Hello Lotus1,

something I had no time to mention to your previous post is http://prepan.org/prepan.org even if it is not heavily used nowadays is a good place to ask for comments. Put you module there, or the intended usage and ask also for the best name as you already have done here.

About the module: I like Carp and returning errors and warning from the user point of view: The end user like to know where the error occured in their code, rather than in your module. You can improve the error checking in your module.

For your convenience you can use a debug flag: I use something like: our $debug = $ENV{MY_MODULE_DEBUG} // 0 so that I can leverage it from outside the module. Then you can fill in your module of debugging statements: print "Ouch because damn!" if $debug; (PS: our is there so that this can be set by evntual submodules ).

Then you must add a pod section if you have not. perlpod is the place where to start.

And, wait.. no tests? :) You must test it against valid and invalid input to see it behaves as you expect. Then document well what is the normal behaviour. If you are totally new to test see my (I'm not the king of test anyway ;) step-by-step-tutorial-on-perl-module-creation-with-tests-and-git or at least its resource part.

good luck!

L*

There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

Replies are listed 'Best First'.
Re^2: Critique requested for module code - QuickMemo+ reader
by Lotus1 (Vicar) on Jan 24, 2021 at 18:11 UTC

    Thanks for the suggestions. I'll add an update with my tests!

    Update: I'll look into using carp. Archive::Zip gave me a lot of those kinds of warnings. You are right that I wanted to see where the errors were in my code not in Archive::Zip. Thanks again!

      Hello Lotus1,

      > I wanted to see where the errors were in my code not in Archive::Zip

      No is not what I intended to mean. With Carp the user of your module sees the error from his perspective, like: Ouch file does not exists at consumer_script.pl line 42 and this is generally more useful.

      L*

      There are no rules, there are no thumbs..
      Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (4)
As of 2024-04-24 22:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found