A CakePHP keretrendszer

cakephpSokat rágódtam azon, hogy érdemes-e fejlesztési keretrendszerekkel foglalkoznom, megtérül-e az az idő a fejlesztések során amit a megtanulásukra kell fordítani. Hát meg. Legalábbis van olyan, ami meg.

Mi is egy fejlesztési keretrendszer?

Egy fejlesztési keretrendszer projectfüggetlen rutinfeladatok megoldását segítő alkalmazásréteg. Ez azt jelenti, hogy az egyébként alapból rendelkezésünkre álló megoldásokat egészíti ki, vagy helyettesíti, esetleg alapból rendelkezésünkre bocsát olyan megoldásokat amelyeket egyébként minden alkalommal nekünk magunknak kellene leprogramoznunk. Ezáltal a programírás során gyorsabban, biztosabban haladhatunk. A prototype például rendelkezik az alap document.getElementById() függvény kibővítésével amit $()-ként érhetünk el. Egyrészt rövidebb begépelni, másrészt nem csak stringet, hanem html objektumot is át lehet neki adni. Aztán jó pár olyan funkciót ad a prototype a kezünkbe ami lekezeli a JavaScript kezelésének böngészőfüggő megvalósításait. A keretrendszer nélkül erről minden egyes alkalommal nekünk magunknak kellene gondoskodnunk.

Ráfordított idő vs nyert idő

Ahhoz, hogy ki tudjuk használni a keretrendszerek előnyét meg kell tanulnunk kezelésüket. Gondolom erre senki sem jött volna rá ha nem mondom 🙂 Ezek megtanulása a keretrendszer összetettségétől függően hosszabb-rövidebb időt vehet igénybe. A kérdés az, hogy a tanulásra fordított idő megtérül-e a fejlesztések során vagy nem. Nehéz kérdés. Egyrészről nem mondhatjuk, hogy 3 nap alatt meg lehet tanulni, mert lehet, hogy valakinek elég lesz rá 3 nap, de lehet, hogy valakinek 2 hét mire megtanulja. aztán a kérdés második fele, hogy mennyit fogja használni. Ha valaki néha-néha programozgat akkor nem valószínű, hogy meg fog neki térülni az időbefektetés, főleg ha figyelembe vesszük, hogy mire elkezd újra programozni addigra elfelejti a tanultak 70%-át. Ha viszont valaki rendszeresen programozik / programozgat akkor biztosan meg fog neki térülni az időráfordítás, főleg ha figyelembe vesszük, hogy a keretrendszerek általában nem csak kényelmi funkciókkal vannak ellátva, hanem olyanokkal amelyek lényegesen gyorsítják a fordításra szánt időt.

Nem hangzik rosszul, igaz?

Személyes tapasztalatom az volt, hogy a fejlesztés ezzel a keretrendszerrel már az első projectnél 3-5-ször gyorsabb, mint a keretrendszer használata nélkül. Figyelembe véve, hogy az első projectnél az ember még sok mindent tanul ez nagyon figyelemreméltó időmegtakarítás. Nem hangzik rosszul, igaz?

Első kellemes meglepetés számomra a gyors váz készítés (scaffolding) szolgáltatás volt. Ezzel a fejlesztés kezdeti szakaszában minden külön programozás nélkül működtetni tudjuk a majdani programunk főbb elemeit (a vázat). Vagyis mondjuk egy blog esetében bejegyzéseket tudunk hozzáadni, szerkeszteni, törölni, anélkül, hogy nekünk magunknak egyetlen sort is le kellene ezekből programoznunk. A megadott model alapján a program feltérképezi az adatbázis mezőket, és mindegyikhez a neki legmegfelelőbb beviteli eszközt fogja kiadni. Ha például van egy DATE tipusú mezőnk akkor a scaffold három selectet fog kitenni, külön-külön az évnek, a hónapnak és a napnak. Nem hangzik rosszul, igaz?

Számomra a legvonzóbb szolgáltatás a parancssori bake script. Ennek használatával a program automatikusan megírja nekünk a programunk vázát, legyen szó akár a modelről, akár a controllerről, akár a viewról. Interaktivitás nélkül a fő vázat írja meg helyettünk, ha azonban használjuk az interaktív módot akkor elég komoly és összetett programkód megírását lehet kicsikarni a scriptből. Ezek után az így létrehozott vázat már csak finomítanunk kell és már működik is. Nem hangzik rosszul, igaz?

Ezeken kívül automatizálhatjuk a formok ellenőrzését (validate), hozzáadhatunk biztonsági ellenőrzéseket (security), használhatunk cache szolgáltatást, ACL-t, sessionjainkat tárolhatjuk adatbázisban pár sornyi kóddal, mivel ezeket (és sok minden mást) a cakephp a kezünk alá teszi.

Édes és hízlal

Röviden csak annyit mondanák a cakephp-ról, hogy aki valamennyire ismeri már a php-t és rendszeresen szokott vele alkalmazásokat / weblapokat építeni annak mindenféleképpen érdemes belekóstolnia a tortába. Édes és hízlal.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.