Přejít k navigační liště

Zdroják » Různé » Vyvracíme mýty okolo Dojo Toolkitu

Vyvracíme mýty okolo Dojo Toolkitu

Články Různé

Dylan Schiemann napsal text, ve kterém oponuje některým tvrzením panujícím okolo javascriptového frameworku Dojo. Zároveň se mu podařilo shrnout zajímavé informace o Dojo, proto jsme se rozhodli tento text představit i vám. Nenaučíte se z něj sice Dojo používat, ale dozvíte se vše, co k tomu potřebujete.

Tento článek je překladem anglického originálu Debunking Dojo Toolkit Myths ze Sitepen.com. Původní článek vyšel koncem října roku 2008. Tam, kde se situace mezitím změnila, se to snažíme doplnit.

Dojo Toolkit tu už je několik let a jak se stával významným javascriptovým nástrojem, procházel výraznými změnami (jak velkými, tak malými). Tento článek se snaží vyvrátit mýty a zastaralá tvrzení, která se okolo Dojo Toolkitu nahromadily během víc jak 4 let jeho vývoje.

Dojo není dokumentovaný

Ale vůbec ne. Kdysi byl jedinou dokumentací pro Dojo jeho zdrojový kód, ale dnes existují mraky informací a pracujeme na jejich zkvalitnění a lepším organizování.

Na začátek se podívejte na Dojo QuickStart Guide, Dojo API Viewer a Dojo Campus Documentation Project (blížící se náhrada za prastarou Dojo Book).

Hledáte offline dokumentaci? Podívejte se zatím na Dojo Toolbox a časem na Dojo Campus Documentation Project.

Potřebujete knihu? Můžete si vybrat ze čtyř knih o Dojo. (Dnes jich je již zhruba dvakrát tolik – pozn. překl.)

Knihy o Dojo Toolkitu

Hledáte tutoriály nebo články? Podívejte se na následujících cca 100 odkazů.

Chtěli byste vidět nějaká dema? Podívejte se na Dojo Campus Feature Explorer nebo na Dojo Spotlight.

Potřebujete školení? Kontaktujte SitePen.

Bude Dojo pokračovat v zjednodušování a zlepšování dokumentace? Rozhodně ano a vítame vaši pomoc i připomínky.

Dojo je pomalé

Jakákoliv javascriptová knihovna může být pomalá, pokud ji používáme špatně. Za časů Doja 0.4 bylo snadné vytvořit aplikaci, která byla pomalá, protože měla defaultně zapnutý parser a načítala řadu zbytečných souborů a zdrojových kódů.

Dnes se problém parseru týká pouze Dijitu. A Dojo != Dijit. Dnes parser zapříčiní zpomalení (menší než v dobách verze 0.4) jen, když potřebujete plně funkční systém widgetů.

Za posledních 18 měsíců se stala tvorba malých a rychlých řešení s Dojem snadnou a veškerá funkcionalita, která byla v Dojo 0.4, je v dnešním Dojo minimálně o 100 % rychlejší, některé věci i 1000 a více procent. Pokud měříme výkon hlavní dotazovací funkce, dojo.query je stejně rychlá ne-li rychlejší než další majoritní toolkity, měřeno v testu SlickSpeed. (Nedávno Dojo 1.3 vyhrálo v rychlostním testu TaskSpeed – pozn. překl.)

A Dojo nabízí přehršel technik a návrhů na optimalizaci výkonu. Spolehlivý výkon napříč jednotlivými prohlížeči je umění, které vyžaduje odhození mnoha předpokladů, pečlivá měření a dělání kompromisů tam, kde je to třeba.

Náhled webu Dojo Toolkitu

Dojo je nabobtnalé, větší a komplexnější než Prototype, jQuery, MooTools, YUI atd.

Dojo bylo navrženo, aby dokázalo nabídnout potřebné nástroje pro řešení komplexních problémů, ale při tom jednoduché věci řešilo jednoduše. Tento mýtus existuje, protože používáme balíčkovací systém a očekáváme, že vývojáři použijí buildovací nástroj, kterým zlepší výkon produkčního kódu. Pokud si stáhnete plné Dojo, najdete v něm hromadu souborů. Z nich ovšem pouze jeden musíte načíst značkou script ve vaší stránce.

Začít můžete jednoduše nainkludováním dojo.js z AOL nebo Google CDN. Soubor dojo.js nazýváme “Dojo Base”. Je velký 26 kB (gzipovaný) a co se týče velikosti, počtu vlastností, výkonu a funkcionality, je srovnatelný s dalšími majoritními toolkity.

Dojo Base nabízí velmi bohatou sadu funkcí užitečných pro jakéhokoliv webového vývojáře. Myslím, že byste jen stěží očekávali více funkcí a větší výkon v menším souboru.

A pokud je pro vás 26 kB hodně, můžete si stáhnout ořezanou verzi o velikosti 5,5 kB, která obsahuje nahrávací modul pro Dojo a pomocí něj můžete následně nahrát přesně ty funkce, které potřebujete. Můžete také vzít kompletní zdroják Dojo SDK a osekat jej dle potřeb.

Pro prohlížeč je každá přidaná vlastnost malou slevou na výkonu, proto se Dojo soustředí na nutnou flexibilitu, abyste si mohli zahrnout, co potřebujete a nic víc, a přitom nabízí široké množství základních funkcí v promyšlené a uspořádané podobě. Pokud chcete použít další funkce z Doja, jsou zcela volitelné, stačí zavolat dojo.require na žádané vlastnosti. Struktura tříd ve většině případů sleduje logickou strukturu cest projektu, např. dijit.foo.Bar najdete v /dijit/foo/Bar.js.

Jednoduchý systém inkludování a jmenných prostorů zajistí, že můžete snadno používat Dojo k vašemu obrazu. Můžete vytvářet jak pokročilé a složité aplikace, tak drobnosti jako je Dojo Flickr Badge.

Systém Dojo Package, ačkoliv vnáší něco málo složitosti, zabere vývojářům dvě minuty na naučení, přispívá k čitelnosti a lepší organizaci kódu. Dojo je knihovna, a tak se také chová. Jako v Javě a mnohých dalších jazycích, i zde automaticky načítáme pouze minimum kódu. A dále máte řadu balíčků, které musíte zavolat ručně.

Uvnitř řady knihoven v Doju existují frameworky, z nichž nejznámější je Dijit. Widgety Dijitu závisí na kódu frameworku. Podobně dlouhé řetězce závislostí jsou uvnitř Dojo výjimečné, ale existují tam, kde to potřebujeme pro zahrnutí funkčnosti.

Pokračování příště

Příště budeme pokračovat dalšími mýty. Dozvíte se, že Dojo nevyžaduje Javu a také proč se hodí i na menší aplikace a nikoliv jen na enterprise.

Tento článek je překladem textu Debunking Dojo Toolkit Myths, který napsal Dylan Schiemann, a je zde zveřejněn s laskavým svolením autora.

Používáte Dojo Toolkit?

Komentáře

Subscribe
Upozornit na
guest
7 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
zdila

Pouzivali sme verziu 0.4 a potom sme presli na GWT. Kodit zlozite GUI v JS odvtedy uz moc nemusim.

phusick

Dojo používam od verzie 0.3.1 a musím uznať, že Dojo Foundation si za väčšinu tých mýtov môže samé. V dobách 0.3 – 0.4 bolo skutočne divokým západom. Verziou 1.0 (resp. 0.9) sa však časy zmenili a Dojo je v súčastnosti najlepší javascriptový toolkit.

Čo sa nezmenilo sú developeri. Teda skôr wannabe developeri, tých odhadom 80 – 90% copy-pastovačov, ktorí na zmenu farby či pozície elementu potrebujú toolkit (zväčša jQuery), OOP je pre nich komplikujúca zbytočnosť a polovicu času trávia prezentovaním samých seba ako Web 2.0, Ajax či UX expertov.

Budem sa opakovať a v zásade napíšem to isté ako pred polrokom pod originál tohoto textu: Nerozumiem, ako sa dá napísať udržiavateľný kód bez OOP a package systému (ktorý Dojo má a zbytok nie (mimo GWT)).

Hlavnom nevýhodou Dojo je zároveň jeho hlavná výhoda: vyžaduje programátora, ktorý vie, čo robí a prečo to robí. Vyžaduje programátora, ktorý si vie napísať build script v Apache ANT, ktorý vie čo je Rhino, ktorý nevyužíva XHR na stiahnutie a zobrazenie sformatovaného HTML, ale vie využiť silu transparentného RPC, ktorý…

…dva príklady vlastného kódu s pomocou Dojo:

Support Center – napísané v Dojo 0.4.3, má (bez knowledge base) 144 javascriptových tried. Poskytuje viac funkcionality ako Gmail a i bez Google infraštruktúry štartuje rýchlejšie ako Gmail.

Shoe Selector – napísané v Dojo 1.1 a má 28 javascriptových tried (vrátane administračnej časti).

Dajú sa podľa vás napísať takéto veci v niečom inom ako Dojo alebo GWT?

ZdenekJi

Zkouknul jsem ten Support Center. Nádhera! Všechno je krásně interaktivní. Ani se nechce věřit. Asi bych to tedy nějak splácal i bez vývojového prostředí, ale byla by to trnitá cesta s nemožností navázání práce jiným programátorem (mám bizarní styl).

webdev

V zasade souhlasim, ovsem Dojo mi k srdci neprirostlo, Jquery se mi osobne zda lepsi, obvzlast na vetsi projekty je to vhodnejsi vec s primejsim pristupem (na c v dojo potrebuju 30 radku udela jquery v 5 radcich).

phusick

Dojo je trochu verbose, to je neodšriepiteľná pravda. No jeho ukecanosť je zámerom, ktorý resultuje do čitateľnejšieho a uhľadenejšieho kódu.

Dojo napr. nepoužíva selector engine cez $("selector"). Alex Russell nespočetne veľa krát vysvetloval, že Dojo odmieta zaprasiť globálny namespace…

…ak si ho však zasviniť chcete a zároveň túžite po štýle ala jQuery, stačí použiť plugd od Petra Higginsa. Potom nie je problémom:

$("p.baz")
    .appendTo("body")
    .addClass("bar")
    .onclick(function(e){
       e.target.innerHTML = "Wow, JavaScript"; 
    });

Dojo momentálne zvádza boj samé so sebou. Vačšinu svojej existencie sa venovalo kvalite. Výsledkom tejto snahy je v súčasnosti v DOM manipulácii najrýchlejší toolkit s nádherne čistým API, avšak pomerne nízskou popularitou.

Posledné releasy (od 1.1) sa teda snažia Dojo priblížiť priemernému užívateľovi (podobne ako ČSSD či Smer dôchodcovi). Či táto snaha prinesie produkt schopný sedieť naraz na dvoch stoličkách a či mačkopsa v prachu ležiaceho na zemi, to som veľmi zvedavý:D

Anonymní

Picoviny.

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.