Alex, I see http methods as being very basic, a part of the URL itself. In other words, from the level of the web framework it's pointless to talk about the URL as anything but a pair of request method and path. Strangely, I'm not sure I agree with you that intelligent dispatch decisions should happen early on. Rather, I think simple decisions should be made early on.
On Monday, April 15, 2013 12:33:42 PM UTC-5, Alex Ogier wrote: > > On Mon, Apr 15, 2013 at 1:22 PM, Donald Stufft <[email protected]<javascript:> > > wrote: > >> >> On Apr 15, 2013, at 1:16 PM, Alex Ogier <[email protected] <javascript:>> >> wrote: >> >> The problem I have with fallthrough-based dispatch is that it encourages >> really expensive performance-killing patterns, where you end up doing a >> linear scan over view functions round-tripping to the database for each one >> to see if the view can handle the request. multiurl is sort of nice because >> it least it's obvious that what it's doing might be expensive, and the >> whole linear scan is collected in one place so if it gets too long it looks >> "wrong" in a Joel Spolsky sense. >> >> >> I don't see how including the method in the resolution scheme equates to >> hitting the database. >> > > Oh sorry, I wasn't totally clear. I am advocating a system where people > are encouraged to make intelligent dispatch decisions like this one early > in the routing framework *instead* of with a try-catch-fallthrough pattern. > Anything that lets you avoid doing extra work through a little up-front > intelligence is a plus in my book, and I think it's a shame that there > aren't really any good hooks to make these kinds of intelligent decisions > in the routing framework. django-multiurl has already done a lot of the > heavy lifting to make multiple URLs for the same regex work in a clean way > outside of core, but it uses this onerous pattern of calling views and > expecting them to fail in a specific way. So I am proposing that it could > easily be made to have all the right hooks to make arbitrary intelligent > routing decisions. > > I think we're on the same side here, except that you want this in core. > > Best, > Alex Ogier > -- You received this message because you are subscribed to the Google Groups "Django developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-developers?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
