That's a good point - although I can't think how to explain it in words..
Makes me wonder if I should do a blog post about this infact... *adds into
todo list, amongst the other 9000 tasks he has* lol.

On Tue, Jan 10, 2012 at 6:54 PM, Derek <gamesb...@gmail.com> wrote:

> Cal
>
> I agree that its true that having more experience allows you to build
> better web apps and get smarter about how you do that. But I disagree
> that someone with that experience cannot share some or part of the
> "why and how" that is done.  And I hope someone will be able to :)
>
> Derek
>
> On 10 January 2012 13:01, Cal Leeming [Simplicity Media Ltd]
> <cal.leem...@simplicitymedialtd.co.uk> wrote:
> > I've hit this same problem myself many times.
> >
> > Ultimately there is never any one answer - you can split out
> functionality
> > into individual modules, but there has to be a good use case for it,
> > otherwise the overhead has a negative impact.
> >
> > You also have to take into consideration the re-usability of what you are
> > splitting out, and if something is split out, then it has to be treated
> as a
> > standardized module which is kept backwards compatible for everything.
> >
> > It's not just a case of having a standardized directory layout, the
> entire
> > use case of the project will determine the layout - you can follow 'sane
> > principles' such as naming convention etc, but the actual splitting of
> > functionality is really up to the developer (and isn't really something
> that
> > can be taught - it's more of an experience thing).
> >
> > Personally, I found that using 'MultiHostMiddleware' has been an absolute
> > life saver for splitting out sites within a single project - check it
> > out: http://code.djangoproject.com/wiki/MultiHostMiddleware (I just
> went and
> > tidied it up a bit).
> >
> > Just my two cents worth!
> >
> > Cal
> >
> > On Tue, Jan 10, 2012 at 6:46 AM, Derek <gamesb...@gmail.com> wrote:
> >>
> >> Brian
> >>
> >> That is useful "generic" advice and a topic I am very interested in -
> >> how to break up an "enterprise" type of application into smaller apps
> >> (to enable distribution of sub-sections to different types of
> >> audiences) while at the same time maintaining tight coherency among
> >> closely-related data sets.  In this case there is a typically a "core"
> >> data set and then many other more peripheral ones that all need to
> >> connect to the core.  I have not yet seen any example of such a design
> >> process - or even a set of principles - which describe *how* to
> >> achieve such a design.
> >>
> >> Derek
> >>
> >> On 9 January 2012 18:18, Brian Schott <bfsch...@gmail.com> wrote:
> >> > My advice is If you find yourself breaking models, views, utils, etc.
> >> > into separate files within an app, you should really consider
> breaking your
> >> > app into multiple apps.  I hit this myself in or own project and found
> >> > myself dealing with the auto registration functionality for admin.py,
> >> > tasks.py, and a bunch of other too-large files.  I bit the bullet and
> broke
> >> > things out and my import/discovery headaches disappeared.  My
> individual py
> >> > files got small and
> >> >
> >> > +--major_app
> >> >     +--docs
> >> >     +--templates
> >> >          +-- (img, js, css, base.html)
> >> >     +--projects
> >> >          +--dev
> >> >          +--test
> >> >          +--deploy
> >> >     +--apps
> >> >          +--sub_app1    (create with startapp command)
> >> >               +--models.py
> >> >               +--tasks.py
> >> >               +--templates
> >> >               +--tests.py
> >> >               +--urls.py
> >> >               +--views.py
> >> >               +--...
> >> >          +--sub_app2
> >> >               +-- .....
> >> >
> >> > I put this in the top of my settings.py files down in projects/dev or
> >> > projects/test, or projects/deploy so that the apps just get
> discovered.
> >> >
> >> > # the base directory is up two levels from the project
> >> > PROJDIR = os.path.abspath(os.path.dirname(__file__)) + '/'
> >> > PROJNAME = PROJDIR.split('/')[-2]
> >> > BASEDIR = os.path.abspath(os.path.join(PROJDIR, '..', '..')) + '/'
> >> > APPSDIR = os.path.abspath(os.path.join(BASEDIR, 'apps')) + '/'
> >> >
> >> > # add apps and projects directory to path
> >> > sys.path.insert(0, PROJDIR)
> >> > sys.path.insert(0, APPSDIR)
> >> >
> >> > Brian
> >> >
> >> > Brian Schott
> >> > bfsch...@gmail.com
> >> >
> >> > On Jan 7, 2012, at 2:24 PM, IgorS wrote:
> >> >
> >> >> Below is my current structure. I am new to Django and probably
> missing
> >> >> something... Restructuring an application somewhere in the middle of
> >> >> the development cycle is more expensive than just having the "right"
> >> >> layout from the start. Especially if this is possible. I consider a
> >> >> small overhead at the start being better than a great rework in the
> >> >> middle (yes, i am aware of the minimal viable product concept :-)
> >> >>
> >> >> app
> >> >>       +--models
> >> >>               ---abstract_base.py
> >> >>               ---core.py
> >> >>               ---...
> >> >>       +--probe
> >> >>       +--static
> >> >>               ---css
> >> >>               ---js
> >> >>               ---images
> >> >>       +--templates
> >> >>               ---base.html
> >> >>               ---...
> >> >>       +--tests
> >> >>               ---test_users.py
> >> >>               ---...
> >> >>       +--utils
> >> >>       +--views
> >> >>       ---__init__.py
> >> >>       ---app_settings.py
> >> >>       ---context_processors.py
> >> >>       ---middleware.py
> >> >>       ---urls.py
> >> >>
> >> >> Thank you,
> >> >> -igor
> >> >
> >>
> >> --
> >> You received this message because you are subscribed to the Google
> Groups
> >> "Django users" group.
> >> To post to this group, send email to django-users@googlegroups.com.
> >> To unsubscribe from this group, send email to
> >> django-users+unsubscr...@googlegroups.com.
> >> For more options, visit this group at
> >> http://groups.google.com/group/django-users?hl=en.
> >>
> >
> > --
> > You received this message because you are subscribed to the Google Groups
> > "Django users" group.
> > To post to this group, send email to django-users@googlegroups.com.
> > To unsubscribe from this group, send email to
> > django-users+unsubscr...@googlegroups.com.
> > For more options, visit this group at
> > http://groups.google.com/group/django-users?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To post to this group, send email to django-users@googlegroups.com.
> To unsubscribe from this group, send email to
> django-users+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/django-users?hl=en.
>
>

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

Reply via email to