John Resig: JavaScript a Ajax

Martin Hassman 5. 3. 2008

Nakladatelství Computer Press loni na podzim vydalo knihu JavaScript a Ajax - Moderní programování webových aplikací od Johna Resiga, zaměstnance Mozilla Corporation a autora jedné z nejpopulárnějších JavaScriptových knihoven jQuery. Kniha je určená zájemcům o pokročilé programovací techniky na dnešním webu.

Pokud bych chtěl vyjmenovat nejznámější JavaScriptové experty, John Resig by určitě byl mezi nimi. Proto bylo pro mne příjemným překvapením, když se v knihkupectvích objevil překlad knihy o JavaScriptu, kterou John před rokem a půl napsal.

Název českého vydání JavaScript a Ajax je tak trochu marketingový podvod. Kniha se v originále jmenuje Pro JavaScript Techniques, což se do češtiny přímo nesnadno překládá. Pro české vydání tak byl kreativně zvolen název, který dobře prodává. (Ajax je buzzword a táhne.) Je ovšem nutno poznamenat, že několik kapitol knihy se Ajaxu skutečně věnuje, proto ačkoliv je název nepřesný, rozhodně se nejedná o název lživý.

Obsah knihy

JavaScript Ajax Resig

Ačkoliv je John Resig tvůrcem JavaScriptové knihovny jQuery, bylo by chybou předpokládat, že nás jQuery bude provázet celou knihou. Naopak, John ji v celé knize použije jen několikrát a snaží se čtenářům předvést celé spektrum existujících JavaScriptových knihoven.

Na začátku je čtenář seznámen s používáním objektově orientovaného JavaScriptu (samotné základy jazyka JavaScript vysvětlovány nejsou, ty se u čtenáře předpokládají), na které navážou pokročilejší techniky, jako je implementace klasické dědičnosti, privátních a statických metod nebo jmenných prostorů. Autor vysvětlí možnost komprimace zdrojového kódu a představí čtenáři řadu moderních JavaScriptových knihoven. Myslím, že i ostřílení JavaScriptoví programátoři v této části najdou něco, co dosud neznali.

Následuje přehled ladicích nástrojů pro jednotlivé prohlížeče včetně Firebugu pro Firefox nebo Web Inspektoru pro Safari. Tato část je určena pro ty, kdo podobné nástroje dosud neznají. Pokud je již používáte, nedozvíte se prakticky nic nového.

Jen velice stručně jsou vysvětleny základy DOMu a událostí, ovšem o to větší prostor je pak věnován jejich praktickému používání tak, aby fungovaly ve všech prohlížečích. Jsou zmíněny i knihovny, které používání DOMu usnadňují. Pokud využijete autorových rad, s nativním DOMem již téměř nemusíte přijít do styku. Mezi ukázkami nechybí drag & drop, ani jednoduché animace stránky. Velký důraz je kladen na používání JavaScriptu tak, aby webová stránka zůstala funkční i při jeho absenci (tento důraz v řadě jiných JavaScriptových publikací chybí).

Samostatná kapitola je pak věnována validaci formulářů na straně klienta. John vám ukáže, jak si na pár řádcích vytvořit jednoduchý univerzální nástroj pro formulářovou validaci. Následuje ukázka webových galerií Lightbox a ThickBox doplněná návodem na vytvoření galerie vlastní.

Několik kapitol se věnuje Ajaxu a způsobům jeho použití včetně detailního návodu na vytvoření našeptávače a Ajaxové wiki. Poslední kapitola je věnována budoucnosti JavaScriptu. Čtenář je seznámen s novinkami JavaScriptu 1.6, 1.7 i s HTML5. Je předvedeno E4X a ukázáno použití canvasu. Následují přílohy se stručným přehledem DOMu a událostí. Nechybí ani nezbytný rejstřík.

Příklady zdrojových kódů

Ke knize můžete získat příklady zdrojových kódů. K těm mám několik výtek. Trochu mne překvapilo, že v zabaleném souboru u českého vydání jsou přítomny i .DS_Store soubory (skryté soubory vytvářené na Mac OS X), které někdo před publikací zapomněl odstranit a čtenář je tak zbytečně s archivem stahuje.

S velkou pečlivostí jsou přikládány opravdu všechny, i ty nejkratší, zdrojové kódy uvedené v knize. V kapitole 9 věnované galeriím tak například najdeme krátké soubory obsahující jen jeden jediný řádek, ale přiložená ukázka celé galerie nefunguje. To je přehmat anglického vydání, který se následně dostal i do českého. Je to škoda, přitom stačilo příklad jednou vyzkoušet a problém by byl odhalen.

Zhodnocení knihy

Musím říci, že mne autor John Resig nezklamal. Při čtení cítíte, že má o problematice velký přehled a umí ji stravitelně podat. A tam, kde rozsah knihy nestačí, vám nabídne další odkazy. Jsem přesvědčen, že kniha patří mezi to nejlepší, co bylo na toto téma napsáno.

Je otázkou, jak dlouho se kniha na předních místech udrží. Zatímco některé další vynikající knihy z oboru (např. kniha Davida Flanagana) mají nadčasový charakter a čtenáři většinu jejich obsahu budou moci bez větších problémů využít i za 3–5 let, JavaScript a Ajax vykazuje jistou trendovost. Vychází z toho, jak „módní“ je psát JavaScript zrovna dnes, a za pomoci kterých nástrojů a knihoven. Není vyloučeno, že za několik málo let budeme již používat jiné (lepší) nástroje i techniky a kniha tak ztratí na hodnotě rychleji než knihy ostatní. To ovšem na její dnešní kvalitu nemá žádný vliv!

Zájemce o téma jistě potěší, že John zahájil práce na své druhé knize s názvem Secrets of the JavaScript Ninja, která se bude věnovat pokročilým vlastnostem jazyka JavaScript.

Kvalita překladu

Zatímco nemohu skrýt své nadšení z obsahu knihy, opak platí o jejím překladu. Ve knize je řada překlepů, což zjistíte velmi brzy. První na nás vykoukne již z obsahu.

Během čtení narazíte i na stěží srozumitelné věty, pro ukázku: „Vrcholem úspěchu při vývoji knihovny v JavaScriptu je schopnost jednoduše vypustit ukazatel <script> na ni, a přesto neovlivnit její funkci.“

Překladatelé se místy pokouší i o odvážnější překlady. Jako příklad uvedu překlad unobstrusive JavaScript jako nevtíravý Javascript, který v zásadě není špatný a vystihuje podstatu. Problém je, že se tento překlad otrocky opakuje i ve všech dalších spojeních, a tak se dočteme, že „jazyk CSS slouží jako standard pro tvorbu jednoduchých, nevtíravých webových stránek“ (jako by stránky používající kaskádové styly nedokázaly být pěkně vtíravé).

Překlad je nejednotný, jednou čteme o prototypové dědičnosti a podruhé o dědičnosti vzorové. Časté jsou nekonzistence zdrojových kódů. Jednou si nadefinujeme metodu zobraz(), abychom ji později volali pod názvem display(), o několik stránek dále si pro změnu nadefinujeme metodu zobr(), kterou voláme jako disp(), následně next() vs. dalsi() atd.

Vedle zmíněných problémů již zní jako drobnost, že příklady zaměřené na americké čtenáře nejsou převáděny do našich místních zvyklostí, např. u validace data (tj, časového údaje, pozn. edit.) se nikdo nesnažil tvar MM/DD/YYYY převést do formátu běžného u nás.

Ve všech zmíněných případech by k odstranění stačila odborná korektura. Tu měl u knihy na starosti Michal Till. Nevím, na čí straně byla větší chyba, ale osobně doufám, že se s překladateli této knihy, Ondřejem Bašem a Ondřejem Žižkou, ani s jejím odborným korektorem již v žádné další knize nesetkám.

Ovšem co naplat, když řadě čtenářů nezbude než dát přednost levnějšímu nekvalitnímu českému vydání před koupí dražšího originálu.

Komu je kniha určena

JavaScript a Ajax bych doporučil hned dvěma typům programátorů, každý si z ní odnese něco trochu jiného.

  • V případě, že znáte JavaScript a používáte práci s DOM a událostmi, bude pro vás kniha představením řady fint a triků, které jste pravděpodobně dosud neznali. Vaše JavaScriptové já opět o něco povyroste. A co víc, vše je popsáno tak, aby fungovalo v dnes běžně používaných prohlížečích. Nebudete muset ladit pro každý prohlížeč zvlášť, autor knihy to již vyřešil za vás.
  • Pokud znáte základy JavaScriptu, ale nezvládáte práci s DOM ani událostmi, i tak se bez obav můžete do knihy pustit. Pokud se budete držet instrukcí v knize, dokážete brzy obojí bez problémů používat a vytvářet i relativně složité aplikace. Nicméně kniha vám nepomůže pochopit, jak DOM a události přesně fungují; buď se bez toho obejdete nebo si k tomu časem pořídíte další knihu.
  • Pokud z JavaScriptu umíte tak maximálně „Hello World!“, pak je mi líto, ale kniha není pro vás. Přečtěte si napřed knihu pro začátečníky a teprve až ji zvládnete, vraťte se k této knize.

Kniha vám pomůže zvýšit vaši odbornou úroveň a pokud ji celou zvládnete a pochopíte, zařadíte se k té menšině JavaScriptových programátorů, kteří své profesi opravdu rozumí. Na pár set stranách vám kniha nabídne to, na co byste sami přicházeli měsíce.

Informace o knize

Autor: John Resig
Název: JavaScript a Ajax
Název originálu: Pro JavaScript Techniques
Překlad: Ondřej Baše a Ondřej Žižka
ISBN: 978–80–251–1824–5
Rozsah: 360 stran
Příklady ke stažení: CPress.cz
Kde koupit: Zboží.cz

Našli jste v článku chybu?
Lupa.cz: Kdy mi to jede? Pražská MHD má nové aplikace

Kdy mi to jede? Pražská MHD má nové aplikace

DigiZone.cz: Pustina: premiéra v Torontu

Pustina: premiéra v Torontu

DigiZone.cz: Skylink přepracoval web

Skylink přepracoval web

Vitalia.cz: Budou i v Česku GM potraviny bez označení?

Budou i v Česku GM potraviny bez označení?

120na80.cz: V těhotenství nohy lehké jako pírko

V těhotenství nohy lehké jako pírko

Vitalia.cz: Musí moudrák opravdu ven?

Musí moudrák opravdu ven?

Podnikatel.cz: Připomínáme změny ve slevách na dani

Připomínáme změny ve slevách na dani

Měšec.cz: Test: Výběry z bankomatů v cizině a kurzy

Test: Výběry z bankomatů v cizině a kurzy

Root.cz: Legendární hra Quake slaví 20. narozeniny

Legendární hra Quake slaví 20. narozeniny

Měšec.cz: Kdy dostanete úvěr jen za diskontní sazbu?

Kdy dostanete úvěr jen za diskontní sazbu?

DigiZone.cz: Podzim na Prima Comedy Central

Podzim na Prima Comedy Central

DigiZone.cz: Fotbal na O2 TV Sport posiluje

Fotbal na O2 TV Sport posiluje

Podnikatel.cz: Kdy s příjmy není třeba platit zdravotko?

Kdy s příjmy není třeba platit zdravotko?

Vitalia.cz: Jak pít při sportu

Jak pít při sportu

DigiZone.cz: Elektrická Formule E. Práva má Arena Sport

Elektrická Formule E. Práva má Arena Sport

Podnikatel.cz: Čauky mňauky. Proč hledají lidé tento výraz?

Čauky mňauky. Proč hledají lidé tento výraz?

Podnikatel.cz: Salón na maloměstě? Funguje skvěle

Salón na maloměstě? Funguje skvěle

120na80.cz: Využijte léčivé vlastnosti měsíčku

Využijte léčivé vlastnosti měsíčku

Podnikatel.cz: Česká pošta vycouvala ze služby ČP Cloud

Česká pošta vycouvala ze služby ČP Cloud

DigiZone.cz: Nativní reklama a zářná budoucnost

Nativní reklama a zářná budoucnost