Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Request for help in method naming

by tobyink (Abbot)
on May 18, 2017 at 19:16 UTC ( #1190558=note: print w/replies, xml ) Need Help??


in reply to Request for help in method naming

I'd strongly suggest having tpv ALWAYS return metric measurements. Otherwise people using your objects always need to check which measurement system they're on (apparently by calling $object->_is_metric which looks like a private method they shouldn't be calling). This seems a recipe for disaster. You just know half the time people will just assume it's going to give them metric because that's the default.

If you want to offer imperial units too, define another method tpv_imperial to do that. People who want that, can call it by name and know reliably what they're getting.

Replies are listed 'Best First'.
Re^2: Request for help in method naming
by stevieb (Abbot) on May 18, 2017 at 19:39 UTC

    That's the second recommendation for something like this. The first was a dup of poll().

    This one sounds more logical and sane to me. I can name the inner conversion methods what I want (and have them public), but the names won't matter as much, as the typical end user won't be using them directly.

    Doing this with tpv() makes a great deal more sense, as it provides more flexibility, while allowing poll() to do the same thing it does (fetch the data, send it through the parser, and return it as original JSON or original Perl as originally designed).

    Anonymonk's idea of hacking poll() was a good one so I don't want to take away from that, but it does make more sense to implement this in tpv() as that's where all of the relevant convertible data is housed), and that's what I think I'm going to do.

    update:I appreciate those who actually have reached out and viewed the code. It's impressive to me that people do really care :) fwiw, the most recent changes that have been committed can be found in the repo.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1190558]
help
Chatterbox?
LanX "I put lipstick on a pig,"
[erix]: it does seem to get out of hand -- but then again, it looks like that for months already :)
[LanX]: the bets are rather who will leave office first Trump or May
[erix]: Harakiri with a nuke on the white house, that'd clean up the staff there a bit too ;)

How do I use this? | Other CB clients
Other Users?
Others surveying the Monastery: (13)
As of 2017-08-18 13:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Who is your favorite scientist and why?



























    Results (302 votes). Check out past polls.

    Notices?