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.