[Python] Programmazione web

Valentino Volonghi dialtone a gmail.com
Sab 26 Apr 2008 22:39:27 CEST


On Sat, Apr 26, 2008 at 1:06 AM, Nicola Larosa <nico a teknico.net> wrote:
>  Che rimane peraltro un'ottima soluzione per l'80% del risultato con il 20%
>  dello sforzo che occorre per affrontare SQLAlchemy. E il lavoro per
>  integrare quest'ultimo in Django  peraltro ripreso alla grande:
>
>  Django-SQLAlchemy Update
>  http://blog.michaeltrier.com/2008/4/7/django-sqlalchemy-update

Ni, SQLAlchemy e` complesso e non c'e` dubbio, ma lo e` specialmente quando
si vuole usare al 100% e in quel caso semplifica molto la vita in
realta`. Ad esempio
nel nostro db abbiamo quelle che in rails chiamano associactioni
polimorfiche, solo
che per noi sono polimorfiche ovunque.

Sostanzialmente e` il sistema a eventi che notifica quando gli oggetti nel db
cambiano di stato. Perche` e` complesso? Perche` la relazione degli eventi
ha un emettitore e un recettore dell'evento. L'evento e` polimorfico (ce ne sono
di vari tipi), l'emettitore e il recettore non solo sono tipi
(tabelle) diverse ma pure
loro hanno in mezzo il polimorfismo.

More info: http://techspot.zzzeek.org/?p=13

Ora... questo tipo di cose e` piuttosto complesso ma ha il pregio di
semplificare
tantissimo il codice applicativo che sta sopra. A noi basta
semplicemente andare di:

ad_space.status = 'verify'

che nel db al momento del commit viene generato anche l'evento nella tabella
apposita.

A questo aggiungi la recente aggiunta del declarative layer:
http://www.sqlalchemy.org/docs/04/plugins.html#plugins_declarative

E dico che il 20% di sforzo vale anche per sqlalchemy. Se uno invece vuole usare
direttamente i mapper allora concordo, sono tosti e difficili e
probabilmente non valgono
la fatica di comprenderli bene.

IMHO poi.

Sostanzialmente penso che django dovrebbe mollare il proprio orm
perche` sqlalchemy
e` superiore in tutto, tra l'altro facendo cosi`, anche a livello
strategico, farebbero una genialata.
Ci sono molte semplici applicazioni che usano sqlalchemy e potrebbero
spostarsi su django
senza toccare il db.

-- 
Valentino Volonghi aka Dialtone
Now running MacOS X 10.5
Home Page: http://www.twisted.it


Maggiori informazioni sulla lista Python