Sem do sedaj postavil par vecjih aplikacij s hibernatom.. (obstaja tudi
nHibernate za .NET). Pa pomoje vecino stvari bi lahko apliciral na tudi
druge ORMje.. mislim da ma skor vsak prog jezik svojega (ali vec le-teh).
ORM bi uporabljal:
- dokler je vecina querijev tipa CRUD in kaksne osnovne agregacije (jaz
sem sicer stvar uproabljal tudi za BLOBe, drevesne strukture in grafe,
ampak je blo treba malo pazit kako sem nastavil stvar). Transakcije tudi
delajo super. Ne vem pa ce bi se sel kak hud datawarehouse analiticen
sistem s tezkimi queriji delat z ORMji...
- dokler nisi pretirano navajen tlaciti poslovno logiko v bazo -
konfiguracija ORM ima po definiciji rahlo manjso ekspresivnost kot
kaksne stored procedure s trigerji.
- dokler cenis da imas prakticno zastonj narejeno neodvisnost od RDBMSja
spodaj.. z zelo malo drame se stvar porta na katerokoli spodobno SQL
bazo od SQLite do Orakla. In presenetljivo tudi ne samo za trivialne
querije, kompatibilnost je res kul postimana.
Pazi pa:
- Ce loadas kompleksne objekte, bo zadeva delala par sprehodov do baze
in nazaj. To je lahko pocasno. Za obcutek, ce si kdaj odprl kak
WordPress (Joomla, Drupal...) brez cachinga, lahko vidis kako se stvar
odpira nekaj sekund ker marsikateri CMS dela 20+ DB requestov na en web
request. V praksi je edina resna alternativa (poleg cache), da to s
stored procedurami tlacis v vec resultsetov..
- ko razvijas, si vklopi logging SQL klicov, da vidis kaj ti ta stvar na
koncu na bazo posilja. Vcasih me je hibernate kar pozitivno presenetil,
je pa tudi kak WTF moment. Predvsem za to da vidis _koliko_ querijev gre
cez.
- Ko nacrtujes sistem, se najprej odloci, ali bos najprej konceptualni
model baze, postavil bazo in nato s hibernatom zgeneriral classe, ali pa
bos najprej postavil razredni model in classe, potem pa iz tega
zgeneriral bazo. Ce bos delal oboje na "meet in the middle" nacin se bos
hitro samega sebe za jajca obesil ko bos vzdrzeval in usklajeval to. Ce
te zanima zakaj, google za "object relational impendance mismatch" :)
sicer zadnje case bolj malo delam na relacijskih bazah, ampak ko pa jih,
je ORM kar visoko na prioriteti. Prihranek casa definitivno je.
-- Tadej
On 07/01/2010 11:04 PM, Andrej Spilak wrote:
Go for it, to je lajf ;)
Sicer ti za PHP ne znam pomagat, ampak morda nimaš niti potrebe po tako jaki
rešitvi kot je javanski Hibernate. Priporočam ti da pogooglaš še zadeve, ki
sledijo ActiveRecord patternu. Nekatere take rešitve imaš up-and-running v
desetih minutah (npr. SubSonic za .NET), krivulja učenja pa je znatno bolj
strma oz. je zadeva skorajda trivialna. Vse je pač odvisno od tvojih potreb.
lp
2010/7/1 Bine Gorjanc<[email protected]>
Se pridruzujem. Vec casa sicer rabis da vzpostavis zadevo, ampak potem
laufa dosti bolj gladko.
2010/7/1 Matija Vizintin<[email protected]>:
Jaz delam s hibernateom. Super zadeva, ful pomaga, je pa res da mores
poznat njegove fore.
Lp matija
Sent via BlackBerry from Vodafone
-----Original Message-----
From: Miha Trtnik<[email protected]>
Sender: [email protected]
Date: Thu, 01 Jul 2010 16:26:44
To: FRIClist<[email protected]>
Reply-To: FRIClist<[email protected]>
Subject: [Friclist] ORMji
Hej!
A je ze kdo kej delal s kakim ORMjem?
Recimo Hibernate od Jave? Kok kej dejansko pohitri pisanje kode?
Razmisljam o uporabi http://www.doctrine-project.org, pa sem mal
skepticen ...
tnx,
Miha