Pogledajte određenu poruku
Staro 02. 09. 2007.   #26
kaspar
novi član
 
Avatar kaspar
 
Datum učlanjenja: 17.09.2006
Poruke: 5
Hvala: 0
0 "Hvala" u 0 poruka
kaspar is on a distinguished road
Default frameworks

Evo da prilozim i ja svojih par centi.

U globalu frameworke mozes da podelis po stepenu automatizacije koju ti pruzaju i, takodje u globalu, je taj stepen automatizacije povezan sa nivoom slobode koju ti omogucavaju u smislu organizaovanja samih elemenata od kojih pravis svoju aplikaciju. Takodje razlikuju se znacajno i po kvalitetu implementacije, dokumentacije, organizacije ...

Po automatizmu Cake prednjaci, iza njega je CI a posle toga na zacelju nepravedno zapostavljeni Zend Ja poslednjih nekoliko meseci radim u Cake frameworku i mogu da podelim detaljnije iskustva o njemu, CI sam video ali nisam detaljnije ulazio u problematiku a za Zend se sve vise interesujem.
Cake je port Railsa na PHP i samim tim tezi funkcionalnostima koji trenutno ima Rails, sam potencijal PHP-a je drasticno manji od Ruby-ja pa mi se cini da su nacin na koji se implementiraju resenja u Cake-u jako konfuzni i nepregledni. Ovo je veoma vazno jer zbog nedostatka dokumentacije i potrebe da se stalno ulazi u kod da bi se videlo kako odredjeni metodi u stvari funkcionisu. Za svakog neiskusnog programera u PHP-u ovo je prosto nemoguca misija.
Druga stvar koja kod Cake ne valja je to sto verzija 1.2.x.x obecava puno funkcionalnosti ali za sada je kvalitetno implementiran jako mali broj njih, u sustini ovo nije ni cudo jer je jos uvek u alpha verziji ali ipak za nekog ko zeli da koristi iste funkcionalnosti treba naglasiti da one uglavnom rade ali znaju nekada da debelo namuche.
Ono sto ipak izdvaja Cake kao framework jeste implementiran ActiveRecord koji omogucava da se na jednostavan nacin prave relacije izmedju tabela i automatski izvlace podaci iz zavisnih tabela. Poslednjih par nedelja sam radio na nekim behaviorima za Cake kako bi na efikasan nacin implementirao multijezicnost i uvideo da je sama implementacija sloja ka bazi jos uvek nedovrsena i malo zbunjujuca za nadogradjivanje jer mi se cini da ne postoji sistematicnost u implementaciji pa se u pojedinim kontekstima kod ponasa potpuno drugacije od onoga sto ja od njega ocekujem.
Sto se generisanja sadrzaja tice u poslednjih par commita je dodata mogucnost da se kreiraju templejti za CRUD viewe tako da se to sada moze prilagoditi dizajnu pogotovo za admin deo gde se dizajn prakticno prenosi sa projekta na projekat.
U globalu Cake jako moze da podigne produktivnost za programere ili timove koji se baziraju na implementaciji sajtova jer se dosta koda koji se kreira na projektima moze da ponovo koristi, komponente, helperi, view-i, takodje postoji i dosta kod koji moze da se nadje po internetu, mada iskreno mislim da je uglavnom jako loseg kvaliteta i ja sam najcesce video ideju i napisao svoj kod umesto da uzimam tudje komponente, behaviore ...
Sto se tice razvoja neke globalne logike aplikacije izvan MVC frameworka Cake mi deluje veoma skuceno, primer je recimo implementacija CMS-a u kome bi MVC deo bio samo element za izvrsenje akcija a logika aplikacija stajala iznad toga, u Cake mislim da je to jako tesko izvesti zbog doslovnog pracenja principa "Convention over Configuration" koji prakticno namece neke principe po kojima moras da se ponasas ako zelis da stvari rade. Mozda ja jos uvek nisam shvatio nacin na koji mogu ovo da uradim bezbolno.

U poslednje vreme se sve vise interesujem za Zend framework koji je nesto za sta predvidjaju da ce da ostavi PHP u zivotu . Uglavnom su PHP programeri jako malo koristili OO model koji je dosao sa PHP5, inace sam PHP5 nije nesto preterano uspeo da preuzme dominaciju od PHP4 ali to je neka druga prica. Zend Framework koristi sve potencijala OO modela i sam po sebi zahteva 5.1.4 ili cak 5.2 pa navise da bi radio jer koristi PDO drajvere i ostale PHP novotarije Ono sto sam o Zendu uspeo da zakljucim je da pruza veliku slobodu za projektovanje logike na visem nivou iznad MVC koncepta jer praktivno tera korisnika da koristi MVC kao element svoje aplikacije a ne da mu aplikacija bude u MVC konceptu. Kod je jako kvalitetan, baza profesionalnih developera koji ucestvuju u razvoju je siroka i ozbiljna a i zajednica mi se cini sve veca. Zend za sada nema implementiran ActiveRecord (bar kako sam ja shvatio) ali mislim da postoje neke nezavisne implementacije. Ono sto je vidljivo kao sloj ka bazi koji bi se koristio u kombinaciji sa ZF je Doctrine ORM PHP sloj http://www.phpdoctrine.org/ koji je trenutno u 1.0RC1 verziji.

CI nisam probao ali mislim da je on negde izmedju Cake i ZF po automatizaciji, cini mi se da je dosta kvalitetniji kod od Cake-a i da ima dosta bolju dokumentaciju ali ne tako veliku bazu korisnika.

Krajnji zakljucak:
za brzu implementaciju jednostavnih sajtova sa osnovnim funkcionalnostima treba koristiti Cake jer znacajno podize produktivnost i ponovno koriscenje koda.
Za nesto ozbiljnije kao sto je recimo izrada proizvoda na kojem bi se zasnivao razvoj firme ipak mislim da za sada treba pribeci nekom drugom resenju. Mozda se sa vremenom Cake dovoljno razvije ali mislim da ce Zend da ga pregazi na polju ozbiljnih PHP aplikacija veoma brzo.


Koliko teksta a slika nigde
kaspar je offline   Odgovorite uz citat