Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
I was thinking last night what made me think I'm an efficient perl coder. I had a bit of a Super and found this node, which co-incidentally is similar but not really what I was after.

After some careful thought I realised the things that I believe make me an efficient coder are not necessarily code specific qualities, but encompass a more holistic approach to banging out the final product. (The below list is not in any particular order).

When I say efficient, I don't mean banging out code on time and under budget, I'm talking about banging out code on time close to budget with the additional qualities of my code being easy to maintain, easy to expand, easy to replace in need etc etc. I'm not just talking about my lines of perl.

  1. Peer review
  2. Code reuse
  3. Good design
  4. Continual Learning
  5. Testing
  6. Teaching
  7. Documentation
To expand on the above points a briefly:

Peer review
I like to have others in my team and external to my workplace (eg PM) to look at my code, make suggestions and recommendations. It expands my experience and offers me the chance to learn new techniques, and to avoid bad ones.

Code reuse
Where ever i can, i attempt to extract core concepts out into standalone modules that can be used again and again, for example abstractions to data aggregation for reporting.

Good design
Obviously highly subjective, however in context an efficient design will lead to implementation on time, a solution that is maintainable and a end result that will make the project owners "happy" among a long list of desirable qualities.

Continual Learning
While similar to peer review, I take this a step further by experimenting with new things, reading journals, web sites and manuals/books.

Testing
Of course one of the things that makes me think that i am an efficient coder is testing. Writing automated tests, formal documentation with the aim of "Getting it right (tm)" without having to go back to the coding board tim e and time again.

Teaching
While related to Continual Learning, I find that if i can teach my team new things, i benefit twofold. firstly, i get to re-enforce things I already know and secondly I increase the knowledge in my team so i don't need to necessarily complete all the code that needs to be done.

Documentation
I like to document my code in pod and also inline. It helps me remember why i've done things, and why I've not done things. It reduces my time to revisit and understand code I've written before and not looked at for a while.

Of course there is quite a list of what can and does make an efficient coder, what additions/deletions would you make to the list?

update: fixed a bunch of weird (<deleted>) chars.


In reply to Seven habits of highly efficient perl coders by Ryszard

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others lurking in the Monastery: (6)
As of 2024-04-25 14:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found