[Python] Programmazione web

Manlio Perillo manlio_perillo a libero.it
Ven 25 Apr 2008 23:47:02 CEST


Lawrence Oluyede ha scritto:
> 2008/4/25 Manlio Perillo <manlio_perillo a libero.it>:
>>  Si, ma nel modo sbagliato direi :).
> 
> A parte il baco nell'implementazione, a cosa ti riferisci?
> 

1) E' un abuso dei cookie, che non sono stati pensati per fare questo
2) Va anche bene rafforzare la sicurezza controllando l'IP del client,
    ma così non puoi supportare utenti Fastweb o che usano un proxy.
3) Tutto quello che fa mod_auth_tkt lo fa HTTP Digest, e molto meglio.

    Peccato per le implementazioni nei browsers correnti non ottimali,
    ma comunque si può usare, l'unico aspetto negativo è che
    gli utenti si devono loggare usando la finestra di dialogo del
    browser (e Safari ha anche un fastidioso bug che ne riduce ancora
    di più l'usabilità).

    E' possibile fare un login tramite form HTML usando Ajax, ma non
    tutti i browser lo supportano.

    Il logout invece lo si fa senza troppi problemi.


>>  Ma ad esempio alcune delle cose che non mi piacciono di Django
>>  probabilmente sarebbero state sviluppate meglio se avessere costruito il
>>  tutto sopra WSGI fin dall'inizio e nel modo corretto.
> 
> Esempio?
> 

Una su tutte: quasi tutto lo stato è mantenuto in variabili globali ed è 
strettamente legato al resto del framework.

Questo significa che devi fare i salti mortali se ad esempio vuoi usare 
il sistema di templating di Django in altre applicazioni;
infine significa anche che non puoi far girare due applicazioni nello 
stesso interprete.


Un'altra cosa che non mi piace è l'idea "don't repeat youself" portata 
agli estremi, in cui "mischi" insieme concetti che magari è meglio 
tenere separati.

Ad esempio nella definizione del modello mischi un pò di tutto: in un 
solo colpo per ciascun dato definisci sia il tipo di dato, sia il tipo 
di controller (ossia come il dato deve essere gestito nel form).

Per non parlare poi delle "istruzioni" per l'interfaccia di admin, che 
IMHO non dovrebbero proprio stare dentro il modello.


Ok, tutto questo ti fa scrivere meno codice, ma limita anche quello che 
puoi fare; francamente preferisco scrivere un pò di codice in più.



Non commento l'ORM, perchè non è strettamente necessario usarlo;
ho visto comunque applicazioni che usano l'ORM come fosse su un database 
in memoria e non in un database relazionale, magari su un server separato.





Ciao  Manlio Perillo


Maggiori informazioni sulla lista Python