@Carl

I agree that virtual environments are very useful. I would argue they
are almost essential in a Python/Django project. I'm starting to
wonder if there are compelling reasons NOT to use a virtualenv when
developing, especially one that is so isolated as a "--no-site-
packages" one. It seems like a *bad* idea to develop using site-
packages....

> If you want to test work flow, then try and make good use of the
> "manage.py shell"

I have yet to work much with the Django interactive shell but a
current project is likely to necessitate it. I am sure it is a useful
tool for debugging.

Cheers

On Dec 22, 2:04 pm, "Cal Leeming [Simplicity Media Ltd]"
<[email protected]> wrote:
> Apologies if I have repeated what anyone else has said, or if some of
> these comments aren't directly related, but here's my two cents worth.
>
> And remember, rapid development isn't always about the different pieces
> of software or frameworks that you use, so hopefully some of the below
> comments give some food for thought.
>
>     * Make sure your workflow is sensible for the size of the project
>       you are working on. For example, there's no point putting
>       significant time into enterprise grade unit testing, if the app is
>       not business critical, or the client doesn't want to pay too much.
>
>     * If the project is in-house (i.e. its one of your own projects),
>       then these are the best times to experiment with new methods and
>       solutions, because then you are not putting your clients product
>       at risk, and you learn from mistakes the easy way. (we've all been
>       there!)
>
>     * It is nice to use isolated Python environments where ever
>       possible, but remember, they will need to be maintained manually
>       (for security patches etc). This does have its benefits, for
>       example if your Django app has dependancies for a specific version
>       of a module, and the sys admin upgrades Python, and thus breaks
>       your app.
>
>     * Before you even touch anything, make sure you have a spec from the
>       client first. This is absolutely crucial if you want an easy life.
>       Again, if this is your own project, you may choose to either draw
>       up a spec to give you a good idea as to how one should look
>       (you'll learn along the way), or think up the spec as you go
>       along. Some clients will say there is no spec, and that they are
>       thinking of things off the top of their head. In these cases, you
>       must *insist* that you work on a daily rate, no exceptions,
>       otherwise clients will take you for a ride (again, we've all been
>       there before).
>
>     * It's good to start with the database models first, to make sure
>       that the underlaying foundations of your application are sound.
>       Try to anticipate future modifications, and don't bother too much
>       with tuning to begin with. As long as you have some decent skills
>       in the database you have chosen to use, then it is an easy enough
>       task to create indexes along the way etc.
>
>     * If you want to test work flow, then try and make good use of the
>       "manage.py shell" and also the ability to create management
>       commands. This will allow you to quickly test code changes,
>       without having to do app restarts, or going through login
>       processes. I know this sounds like a minimal amount of time saves,
>       but when you're doing 200-300 test runs a day, it soon adds up!
>       Again, use your own discretion as to whether this approach is
>       sensible for the size of the project.
>
> Also, as a side comment, I haven't used either buildout or fabric, so I
> can't offer much advice on these.
>
> On 22/12/2010 18:40, Dana wrote:
>
> > I've been bashing my head against a wall lately trying to determine
> > the best (highly subjective, I know) workflow for developing Django
> > projects.
>
> > What I have gathered so far is:
>
> > * Buildout -- For building and packaging your projects.
> > * Fabric -- For easy deployment/testing of code on devel/staging/
> > production servers
> > * PIP -- For installing Python packages into your project.
> > * virtualenv -- For creating an isolated Python environment.
>
> > ... but what I am having trouble figuring out is how the workflow
> > should be between these tools.
>
> > * What's the relationship between PIP and buildout in development vs.
> > deployment?
> > * Is buildout used solely for installing/packaging stuff for
> > deployment?
> > * Do you use fabric to run buildout on a server?
> > * What role does PIP requirements file play in all this? Is it used?
> > * Are you using setuptools or distribute?
>
> > I know this is a very broad and subjective topic but I'd love to hear
> > what you guys and gals are doing out there to develop rapidly and to
> > deploy efficiently and predictably.
>
> > Cheers

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to