ugrás a tartalomhoz

Professional Ajax

Hojtsy Gábor · 2006. Ápr. 22. (Szo), 15.26

Szerzők:

Nicholas C. Zakas, Jeremy McPeak, Joe Fawcett

Kiadó:

Wiley Publishing, Inc.

2006

ISBN:

0471777781

Oldalak száma:

406

Értékelés:

9

Linkek

Sajnos csak kölcsönbe kaptam ezt a könyvet, hiszen a Wrox könyvekről kialakult korábbi ellenérzésem következményeként valószínűleg nem vettem volna meg látatlanban. Úgy tűnik azonban, hogy a Wrox tönkremenetele után a felvásárló Wiley Publishing jól használja a közismert márkát, legalábbis ez a könyv szerintem nagyon jól sikerült, néhány hibát illetve hiányosságot félretéve.

A Professional Ajax legjobb tulajdonsága talán a technológiai sokszínűség. Már a böngésző oldali fejlesztésben is hosszasan elemzi a különböző aszinkron HTTP kérés módszerek hogyanját és előnyeit/hátrányait. Mindezeket nem történelmi jellegű visszatekintés céljából, hiszen később praktikus használati példát is ad a beágyazott alapú HTTP kérés megvalósításra az XMLHttpRequest megoldással szemben egy összetett AjaxMail alkalmazás elkészítésekor.

Szintén nagyon szimpatikus a könyvben, hogy a nagy projektek fejlesztésétől sem riad vissza, logikus részekre lebontva a megoldásokat. Az AjaxMail vagy az automatikus javasló felületek nem gyerekjátékok, mégis érthető részekre lebontva könnyen megérthetőek a könyv korábbi fejezeteinek áttekintése után.

Pozitívum, hogy számos szerver oldali megoldással foglalkozik a kiadvány, főleg PHP és .NET (C#) megoldásokat mutat be, és egy kis példa erejéig Java fejlesztési megközelítést is láthatunk. Adatbázisként a MySQL és az MSSQL váltják egymást. Ebből következik ugyanakkor az is, hogy nem feltétlenül a fogd-és-másold típusú könyvek családjába tartozik, hiszen egy példa adott esetben nem a saját projektünkben előnyben részesített technológiával van megvalósítva. Ezért inkább olyan olvasóknak javasolt, akik elsősorban tanulni szeretnének. Ugyanezt a tételt támasztja alá az is, hogy nem magas szintű kódkönyvtárakkal fedik el az AJAX fejlesztés rejtelmeit, legalábbis addig, amíg a könyv szerzői által elkészített zXML könyvtárban kezelt böngésző eltéréseket részletesen be nem mutatják. A magas szintű absztrakciós megoldásokra az utolsó fejezetben kerül sor, ahol a JPSPAN (PHP), a DWR (Java) és az Ajax.NET könyvtárakkal mutatnak be egy-egy példát, melyek azonos adatbázison valósítanak meg egy-egy egyszerű ügyfélkezelő felületet.

Akárhova nézünk, gyakorlati példákat találunk a könyvben, és ezeknek megértését nem csak a konkrét megvalósítás magyarázata segíti, hanem a HTTP kommunikáció leírása, és az Ajax tervezési minták bemutatása is. Ezekből rakták össze a szerzők a komolyabb programokat is. A gyakorlatiasságot támasztja alá, hogy kis helyen sok információnak jutott hely a kapcsolódó XML technológiákról az XPath és XSLT megoldásokat is beleértve, melyek böngésző specifikus megközelítései, majd a zXML kódtár által biztosított absztrakt megoldásai is világosak a könyvben.

De nem csak XML technológiák uralják a kiadványt. Bár az RSS és Atom formátumokat közvetlenül kezelő JavaScript kódok is eléggé szimpatikusak, és a webszolgáltatások gyakorlati alkalmazására is számos példát kapunk a SOAP böngésző oldali használatával, szerecsére az XML-t helyettesítő JSON sem maradhatott ki a könyvből. Ezzel a technológival valósították meg a tekintélyes automatikus javasló példaalkalmazást.

Összességében tehát komoly mennyiségű gyakorlati tudnivalót sűrítettek egy Wrox könyvekhez mérten vékony kiadványba (a Professional PHP5 például 662 oldal). Sajnálom, de éppen ezért megértem, hogy nem kerülhetett bele egy kifejezetten webes alkalmazások felületének kialakításról szóló rész (akár kész kódkönyvtárak bemutatásával), mely azonban lényeges akkor, ha böngészőben használható alkalmazásokat fejlesztünk. Azt várom, hogy ilyen témában készül valamilyen könyv a kiadónál.

Amire azonban nagyon érdemes odafigyelni a könyv olvasásakor az, hogy példaalkalmazások találhatóak benne (különösen a bevezető résznél). A különböző aszinkron letöltési módoknál külön fel is hívják a figyelmet rá, hogy nem a legjobb gyakorlatot mutatják be, arra később kerül sor a könyvben. Érdemes azonban AJAX fejlesztés során is gondolni a biztonsági faktorra. Sajnos van egy olyan egyszerű RSS olvasó proxy példa a könyvben, mely az URL paraméterként kapott webcímről egyszerű ellenőrizetlen file_get_contents() módszerrel tölti le a tartalmat. Az nem igazán probléma, hogy nem használ gyorsítótárazást (a könyv nagyobb RSS példájában ezt jól megoldják), hanem az, hogy bármilyen helyi fájl olvasását lehetővé tevő programot tesznek fel a fejlesztő gépére, ami forráskódok megismerésére, érzékeny adatok letöltésére is alkalmat ad. A könyvet olvasva szerencsére úgy tűnik, hogy ez egy elszigetelt eset, nem gyakoriak az ilyen hibák a könyvben.
 
1

Professional PHP5

Anonymous · 2006. Ápr. 24. (H), 13.56
emlitetted ezt a konyvet is, gondolom pont ez a konyv okozta a Wrox konyvekkel szembeni ellenerzesedet. En is megvettem a Professional PHP5 -ot es nem ehheze a minoseghez szoktam. ELegge csalodtam.
Esetleg tudsz alami mas PHP5 konyvet is, amit erdemes megvenni?
2

nem kapcsolódik

Hojtsy Gábor · 2006. Ápr. 24. (H), 20.05
Nem ez okozta, elég sok Wrox könyvvel találkoztam. A kérdésre itt nem tudok válaszolni, mert nem ide tartozik.
3

vásárlás

Anonymous · 2006. Szep. 14. (Cs), 20.04
Hi!
Hol tudnám ezt a könyvet legegyszerűbben megvásárolni?
Köszi
4

volt már

Hojtsy Gábor · 2006. Szep. 14. (Cs), 20.49
Könyvesbolt angol nyelvű szakkönyvekkel és még ha jól emlékszem más témákban is, de ott mindenképpen.
5

Megjelent magyarul

Max Logan · 2007. Jún. 29. (P), 23.37
Megjelent magyarul a második kiadás.
6

megjelent

Dylan · 2007. Júl. 10. (K), 11.23
Már a kezemben is tartom! Remek könyv, ajánlani tudom csak!
Erre vártam már 1 éve, hogy magyarul is megjelenjen. ;)
7

érdeklődnék

DsA · 2008. Jan. 16. (Sze), 09.25
érdeklődnék, bár nemtudom ide tartozik-e, hogy nekem való-e ez a könyv mert én nagyon szeretném megtanulni az ajaxot de eddig js-ből sem vagyok profi... hanem egy olyan gyenge halado ettől függetlenül hasznos lehet nekem ez a könyv?

előre is köszönöm!