Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re^2: In Need of Mentoring

by Anonymous Monk
on Jan 16, 2012 at 07:28 UTC ( #948080=note: print w/ replies, xml ) Need Help??


in reply to Re: In Need of Mentoring
in thread In Need of Mentoring

camelCase vs underscore_variables; for(;;) vs while (1) vs while () It doesn't matter. Pick the one you like stylistically and be consistent.

FWIW, when it comes to both issues, I don't think consistency matters that much either :) It doesn't when reading other peoples code (too many different kinds of people), so it doesn't when writing my own (its all functionally equivalent )


Comment on Re^2: In Need of Mentoring
Replies are listed 'Best First'.
Re^3: In Need of Mentoring
by tobyink (Abbot) on Jan 16, 2012 at 09:15 UTC

    If you're inconsistent with lexical variables like my($fooBar, $quux_xyzzy), then that's fine by me. It may slightly confuse people hoping to delve into your code, but that's probably only a small number of people.

    However, for public functions/methods - for the API you expect other people to code to - you should aim for consistency throughout a module or collection of related modules.

    Generally speaking under_scores seem to be the most popular way of naming functions and methods, so unless you've got a specific reason to use another naming convention, should be the default option. Good reasons to use camelCase or runtogetherwords might be:

    • consistency with a specification - for example, an HTTP library might name functions or methods after HTTP methods which are conventionally written in uppercase, so it migh make sense to name methods like $object->POST and $object->GET.
    • porting code from another language - if you've ported a library from another language, then it makes sense to keep the original case of function/method names. This allows your users to easily understand the documentation and examples of the source library and apply that knowledge when using your port.
    • inspiration from another language - perhaps your code is not a direct port of a library from another language, but aims to be a work-alike.
Re^3: In Need of Mentoring
by repellent (Priest) on Jan 16, 2012 at 08:10 UTC
    Oooo.. alternating between camelCase and underscore_variables in a huge class will be quite the sight to see :) To each her/his own: I believe in consistency in coding, which has served me well so far.

      I saw it just the other day in Web::Magic 0.005, didn't bother me one iota. I have to lookup the documentation either way. Web::Magic

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (18)
As of 2015-07-28 18:47 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (258 votes), past polls