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 <don...@stufft.io<javascript:>
> > wrote:
>
>>
>> On Apr 15, 2013, at 1:16 PM, Alex Ogier <alex....@gmail.com <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 django-developers+unsubscr...@googlegroups.com.
To post to this group, send email to django-developers@googlegroups.com.
Visit this group at http://groups.google.com/group/django-developers?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to