Pogledajte određenu poruku
Staro 31. 01. 2006.   #2
Ilija Studen
Direktor Kombinata
Invented the damn thing
 
Avatar Ilija Studen
 
Datum učlanjenja: 07.06.2005
Poruke: 2.669
Hvala: 44
119 "Hvala" u 64 poruka
Ilija Studen će postati "faca" uskoroIlija Studen će postati "faca" uskoro
Default

Ja koristim Propel, a on kao abstraction layer koristio Creole. Dobra stvar je što zajedno omogućavaju vrhunsku portabilnost jer te ne zanima koja je baza ispod. Definišeš koje objekte želiš, kako su povezani i na osnovu toga se za konkretnu platformu generišu konstrukcija baze, klase, relacije među njima... Konstrukcija je u XML formatu tako da je nezavisna od platforme.

Problemi:

- Generiše se mnogo koda
- Potrebno dosta vremena da se sav taj kod parsira tako da je distribucija u izvornom obliku ludost. U produkciji je najpametnije koristiti enkodirane fajlove jer se tu preskače parsiranje. Takođe, pametnim korišćenjem __autoload() funkcije se isto mogu ostaviriti uštede...
- Ovakav kod jeste sporiji, ali u ekodiranom obliku uštede u performansama su zanemarljive u odnosu na dobijeno vreme u razvoju / portovanju (hardver - jeftin, vreme dobrog programera - skupo). Ko je bar jednom koristio nešto slično zna o čemu pričam. Ostali samo mogu da nagađaju
- Nije za male projekte

Ukolike je projekat bar malo složen (5 tabela +) i nisu potrebne maksimalne performanse (ovde mislim na stvarno ekstremnu posećenost) uvek preporučujem korišćenje abstrakcionih slojeva. Ubrzavaju razvoj, povećavaju portabilnost koda i pomažu ti da umesto da razmišljaš o tabelama u bazi i poljima razmišljaš o objektima, njihovim relacijama i konkretnim problemima koje treba da rešiš.

PS: Do sada nisam bio u situaciji da moram da portujem kod na drugi tip baze. Lakoća portovanja nije osnovni razlog zašto bi se neko odlučio na korišćenje ovakvih biblioteka. Jednostavno olakšavaju i ubrzavaju rad, a portabilnost mu tu dođe kao fin dodatak.

Poslednja izmena od Ilija Studen : 31. 01. 2006. u 20:18.
Ilija Studen je offline   Odgovorite uz citat