Re: Guidance - Professional Python Development

2009-03-08 Thread Martin P. Hellwig

RT wrote:
cut


Can you recommend any books or articles that you have found offer
useful advice on program structure, design and use of classes or any
other features or best practices  that you feel are important for
professional Python development.

cut
In my opinion, 'professional development' has surprisingly less to do 
with the chosen programming language but more so with project management.


Although opinions differs quite, I like a documented approach based on 
unit-testing. Which means I need, project description, project scope, 
project specification, functional design, technical design first. Then I 
write the unit-test and finally solve them.


Of course you use a repository to keep your work in and use a Lint tool 
to check for convention.


There are loads of other stuff that affect your environment, testing, 
documentation, quality control, release management and time-keeping.


Using an IDE (I use Eclipse with PyDev) can help you manage all these 
aspects although it's more important that you feel comfortable with your 
chosen tools.


Perhaps this paper might be interesting:
http://dcuktec.googlecode.com/svn/DCUK%20Technologies%20LTD/papers/DITDD/deliverables/DITDD.pdf

Though I would request that other people, especially with different 
opinions would give their point of view and hopefully a more direct 
answer to your question then I did.


--
mph
--
http://mail.python.org/mailman/listinfo/python-list


Re: Guidance - Professional Python Development

2009-03-08 Thread Scott David Daniels

RT wrote:

I have been doing Python development at work for several years. I
started with the official documentation and tutorial,  by
necessity, the examples tend to be rather simple and none of them
really explain the process of developing complete, industrial
strength Python applications.

Can you recommend any books or articles that you have found offer
useful advice on program structure, design and use of classes or any
other features or best practices  that you feel are important for
professional Python development.


Very Python-Technical:
I'd go with the Python Cookbook if you haven't read through it.
Read it sequentially, leaving a section only once you are sure it
won't tell you anything interesting.  The introductions to the
sections are great.

More general purpose:
I've read some of Expert Python Programming (not enough to have a
solid opinion about it (except to know I feel it is neither junk nor
perfect).  You might see if it is to your liking (check Table of
Contents, read sample chapter).

Even more general purpose:
As Martin P. Hellwig has already commented, learning unit-test based
programming can be a huge step forward.  Another extra-language
critical decision is source control.  If you don't do it now, learn
and use it (it can make you more fearless when refactoring).

I certainly like doing agile development to the extent I can get to
teams where I can do that.  Try any parts of it that you can (especially
those parts that seem the most wrong to you).  Your goal in trying agile
practices (to my way of thinking) is to get to the point that you know
in your bones why these practices work.  Once you know why they work,
you will be in a position to reject some of them, but introspection
without trying will have you skipping too many good ideas.

--Scott David Daniels
scott.dani...@acm.org
--
http://mail.python.org/mailman/listinfo/python-list