[Chicago] Looking for a well designed yet sizable project to read

Kumar McMillan kumar.mcmillan at gmail.com
Sat Mar 12 15:16:26 CET 2011


On Sat, Mar 12, 2011 at 12:50 AM, Tathagata Dasgupta
<tathagatadg at gmail.com> wrote:
>
> Can you point me to some manageable sized project which I can read to
> understand how I should design my projects in Python?
> Links and tips of best practices would be really great to have ...
>
> And lastly no Python programmer would probably feel good to let django
> slip away from his toolkit; there are too many resources out there too
> ... but any django 101 talk coming up anytime soon?

Hello Tathagata.

I was sorry to miss this meeting but it conflicted with PyCon :(  Big
ChiPy representation here in ATL though!

Since you also mention your interest in Django you could take a look
at a project I work on called Zamboni:
https://github.com/jbalogh/zamboni/

It's very large so the code base will take some time to grok.  There
are install docs which explains how to set everything up:
http://jbalogh.github.com/zamboni/topics/installation/

This is a Django app that powers https://addons.mozilla.org/ , which
is has a lot of features for scaling and enhanced security that you
don't get using out-of-the-box Django.  Actually, the core of it has
been extracted out into a skeleton you could use for your own Django
apps if you wanted: https://github.com/mozilla/playdoh  It's a bit
heavyweight since it's intended mainly for high traffic sites
localized in many languages--sites that kiddies spend all day trying
to hack--so it may not be for everyone.

The Zamboni code is well designed IMO (I only started working on it
recently); it follows PEP8 standards, it follows general Django
standards, has pretty good docs, has about 1800 tests, and uses lots
of helpful 3rd party and custom modules.  The one thing that's a
little odd about it is it doesn't use virtualenv for production
(although we use it for development).  I wouldn't necessary suggest
following this pattern although it has some benefits.  For Mozilla, it
was necessary because we have 24 webheads that run Django and it
slowed us down pulling in packages from a PyPI server for each deploy
on each webhead.  Instead, all dependencies are checked into git so
that you can just run git pull to get diffs applied.

Let me know if you have any questions.

Kumar


More information about the Chicago mailing list