Re: Guidance - Professional Python Development
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
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