Re: Yet another set of Perl best practices
by toolic (Bishop) on Aug 24, 2012 at 12:43 UTC
|
19. Depending on an external module needs a good justification.
Re-inventing an optimized, well-tested, well-documented wheel requires an even better justification.
| [reply] |
|
Providing functionality is a very good justification.
But for instance, providing syntactic sugar is not a so good justification, in some cases it would make sense, in others it would not.
| [reply] |
Re: Yet another set of Perl best practices
by Anonymous Monk on Aug 24, 2012 at 12:35 UTC
|
Make your subs/methods meaningful. Make your subs/methods names meaningful.
Now if only there was a book of examples of each practice :)
| [reply] |
|
No, I really mean the subs/methods, not their names.
IMO subs/methods should do something specific, clear and easy to explain (at least, once you have a good vocabulary for the problem space at hand).
Though, if you have problems naming your methods, it is probably a good indication that you are not doing that right.
Maybe meaningful is not the right word here...
| [reply] |
|
| [reply] |
Re: Yet another set of Perl best practices
by grizzley (Chaplain) on Aug 24, 2012 at 13:37 UTC
|
Why is this list called Perl best practices? Only 7, 11, 20 and maybe 18 is related specific to Perl. The rest is valid for any language. | [reply] |
|
Why is this list called Perl best practices?
Good point.
I prefer to have two separate lists: one for general
programming practices, another for language-specific ones.
The general, language-independent list tends to be
the more important and interesting of the two IMHO.
Most language-specific items, such as
"start each file with use strict"
or
"use three-argument open and lexical file handles"
are easily detected by a tool, such as Perl::Critic.
The general list, OTOH, usually requires a human with
good taste to adjudicate.
The point that sound programming is mostly language
independent was well made by chromatic in
response to a
reddit post extolling Python's "readability":
Pray tell, how precisely does Python prevent you
from using bad variable names?
How does Python enforce good encapsulation?
How does Python detect methods and functions that are too long?
How does Python help you avoid poor coupling and
promote wise decomposition?
Does Python write good documentation for you?
Does Python require comprehensive testing?
| [reply] |
|
| [reply] |
|
Why is this list called Perl best practices? Only 7, 11, 20 and maybe 18 is related to Perl. The rest is valid for any language. They're all related to perl since perl is a programming language :)
Perhaps you meant specific to perl ?
But even if they look specific, they all really are generic
- 7. Perl is a powerful and expressive language, don't be afraid to use it to its maximum.
- write idiomatic code
- 11. Don't use an object when a simple hash or array will do.
- Don't use an object when a simple struct will do
- Don't use an object when a simple data structure will do
- 20. use strict, use warnings, selectively disable them when required.
- lint that mother hard, maximum warnings -Wall
- lint, "use strict";
- 18. Add lots of debugging code
- use assertions, use logging
| [reply] |
Re: Yet another set of Perl best practices
by Anonymous Monk on Aug 24, 2012 at 20:04 UTC
|
26. Don't use too much bold face in a posting. | [reply] |