[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