Re: [Python] Unit of Work in python

2015-09-19 Per discussione Riccardo Magliocchetti

Il 19/09/2015 11:29, flandero ha scritto:

2015-09-17 10:44 GMT+02:00 Stefano Bossi >:

Qualcuno l'ha mai implementato?
A parte l'implementazione di SQLAlchemy ne conoscete altre?
Sapete per caso se Django non lo ha mai preso in considerazione?


Direi di no by design:
http://lucumr.pocoo.org/2011/7/19/sqlachemy-and-you/


Ciao,
forse ti riferisci a:

Forse ti riferisci a
https://docs.djangoproject.com/en/1.8/topics/db/transactions/, precisamente al
metodo 'atomic'

atomic(/using=None/, /savepoint=True/)[source]


Atomicity is the defining property of database transactions. atomic allows
us to create a block of code within which the atomicity on the database is
guaranteed. If the block of code is successfully completed, the changes are
committed to the database. If there is an exception, the changes are rolled
back.


Non credo sia quello che intenda, vedi 
http://martinfowler.com/eaaCatalog/unitOfWork.html
Il punto credo sia business transaction vs database transaction, tenendo pure 
presente di gestire una business transactions che dura per più di una request.


Se dovessi farlo mi serializzerei le operazioni che vorrei fare su una cache e 
alla fine della fiera, deserializzo e faccio tutto in un blocco. Fare 
l'eventuale merge delle operazioni ridondanti lo vedo già più complicato. Poi 
c'è anche da pensare a come invalidare unit of work presenti in cache ma non 
completate. Molto probabilmente farei una cosa che, se funziona, funziona per 
miracolo.


Qua ci sono diversi possibili spunti:
http://stackoverflow.com/questions/6245498/django-orm-unit-of-work

--
Riccardo Magliocchetti
@rmistaken

http://menodizero.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Disiscrizione

2015-09-19 Per discussione Carlos Catucci
2015-09-19 12:18 GMT+02:00 paolo lo bello :

> Ciao a tutti potreste cancellarmi per favore dalla lista? Se non é
> possibile farlo da parte vostra potrei sapere come fare per cancellarmi da
> questa lista? Grazie mille ma pensavo che potevo entrare in questo
> fantastico mondo. Ma non é per me ho pure sbagliato gli studi superiori.
> Cordiali saluti wildlux@gmail.
>
> :(
>

Per disiscrierti c'e' il comando unsubscribe ma sei sciuro di avere
sbagliato? Non e' cosi' difficile alla fine. Certo se leggi solo le cose
dei Guru come Riko tutto sembra alieno (anche a me spesso). Ma ci sono vari
livelli.

Carlos
-- 
EZLN ... Para Todos Todo ... Nada para nosotros
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Unit of Work in python

2015-09-19 Per discussione flandero
>
>
> Non credo sia quello che intenda, vedi
> http://martinfowler.com/eaaCatalog/unitOfWork.html


In merito al tuo link:

<< A Unit of Work keeps track of everything you do during a business
transaction that can affect the database. When you're done, it figures out
everything that needs to be done to alter the database as a result of your
work.>>

 decorando esecuzione della mia logica con @transaction.atomic non ottengo
esattamente questo, un po' come la creazione di un'unica transazione con
flush\commit finale in sqlalchemy? Forse mi sfugge il punto...


>
> Il punto credo sia business transaction vs database transaction, tenendo
> pure presente di gestire una business transactions che dura per più di una
> request.
>
>
Se il punto è questo allora mi piace la soluzione proposta da te!
Mi è già capitato di cachare oggetti da utilizzare spesso: penso allo
states pattern e al caching degli oggetti di stato. In tal caso me la
gestirei così, tenendo pero' in cache solo -appunto- gli oggetti base di
stato (per non doverli reinstanziare ogni volta, specie se gli stati sono
molti) e lasciando che la transazione evolva in uno stato di rollback se
qualcosa dovesse andare male
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Unit of Work in python

2015-09-19 Per discussione flandero
2015-09-17 10:44 GMT+02:00 Stefano Bossi :

> Qualcuno l'ha mai implementato?
> A parte l'implementazione di SQLAlchemy ne conoscete altre?
> Sapete per caso se Django non lo ha mai preso in considerazione?
>
> grazie,
> stefano
>
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
>
>
Ciao,
forse ti riferisci a:

Forse ti riferisci a
https://docs.djangoproject.com/en/1.8/topics/db/transactions/, precisamente
al metodo 'atomic'

atomic(*using=None*, *savepoint=True*)[source]


Atomicity is the defining property of database transactions. atomic allows
us to create a block of code within which the atomicity on the database is
guaranteed. If the block of code is successfully completed, the changes are
committed to the database. If there is an exception, the changes are rolled
back.


Ciao
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Disiscrizione

2015-09-19 Per discussione paolo lo bello
Ciao a tutti potreste cancellarmi per favore dalla lista? Se non é
possibile farlo da parte vostra potrei sapere come fare per cancellarmi da
questa lista? Grazie mille ma pensavo che potevo entrare in questo
fantastico mondo. Ma non é per me ho pure sbagliato gli studi superiori.
Cordiali saluti wildlux@gmail.

:(
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Disiscrizione

2015-09-19 Per discussione Daniele Zambelli
Il 19 settembre 2015 12:18, paolo lo bello  ha scritto:
> Ma non é per me ho pure sbagliato gli studi superiori.

È normale sbagliare gli studi superiori, l'importante è trarre
profitto da tutte le esperienze fatte.

Per disiscriverti val alla pagina indicata dall'ultimo link di ogni
mail, in fondo alla pagina puoi immetterel'indirizzo a cui ti arrivano
i messaggi e disiscriverti.

Ciao

-- 

Daniele

www.fugamatematica.blogspot.com

giusto!
nel verso
forse è perché non guardiamo le cose
Quando non ci capiamo,
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python