GWT - nerobme čo nechceme

Vystavil tito100

10.02.2011

0
Google Web Toolkit (GWT) je sada nástrojov pre vývoj, zostavovanie a optimalizáciu komplexných aplikácií, ktoré sú určené pre webové prehliadače. GWT využíva mnoho produktov od spoločnosti Google, vrátane Google Wave, Google AdWords, Gmail atp. Má otvorený zdrojový kód, je úplne slobodný a využívajú ho tisíce vývojárov z celého sveta.


Už si ani nespomínam na presný dôvod (to sa nedá nepamätať), prečo som GWT prvý krát skúsil. Jedno však viem, bola to rovnako správna myšlienka, ako keď som pred ôsmimi rokmi skúsil spraviť svoju prvú hru v GM.
Dozvedel som sa o ňom z prezentačného videa. Prvé pocity boli poriadne zmiešané. Rovnako ako aj pri prvom použití GM.
Vedel som, že je to vec ktorú musím ovládnuť, nemal som však najmenšiu páru o tom, ako.

Ak ste niekdy robili stránku, v ktorej ste používali JavaScript, pravdepodobne ste narazili problém, že stránka mala problémy naprieč rôznymi prehliadačmi. Kedže asi pol roka pred prvým kontaktom z gwt, som na takejto stránke pracoval, mal dom dostatočné pocuchané nervy. Vravel som si "Ja som predsa programátor...". Vopred by som asi ma ozrejmil nadšenie z ktorej táto úvaha vyšla.
Programoval som stránku, ktorá používala hojne JS a AJAX, mal som ju hotovú asi za 2 týždne. Vravím si, "tito ty si borec". Avšak potom som ju skúsil spustiť na linuxe, ale aj na IE, mozile, opere a bol som tam, kde chrbát stráca dobré meno. Strávil som 3 mesiace prerábaním stránky. Nepríde vám to divné ? 2 týždne/ 3 mesiace... . Počas tých 3 mesiacov som si viacej krát povedal tú spomenutú myšlienku. A teraz ju dopoviem
"Ja som predca programátor, prečo sa musím píííiiíííp piííp z takýmito piííp vecami.Chcem tvoriť, chcem vytvárať, a nie sa tu 3 mesiace pip z vecami, ktoré by som nemusel vôbec, ale vôbec robiť"

Pol roka, po dokončení tejto stránky, sa konala prezentácia Google IO, Ktorú som sledoval online. V tej dobe som o gwt nemal najmenšiu páru. Avšak poviem vám,čím ďalej som to sledoval, tým viac moje nadšenie stúpalo.

Google Web Toolkit - vlastnosti


⇒všetok kód sa píše v jave alebo python-e (client, server)
⇒všetky súbory prejdú pri kompilácií vysokou optimalizáciou
⇒pri kompilácií sa vytvoria viaceré verzie stránky, pre každý prehliadač zvlášť
⇒pri kompilácií prejdu optimalizáciou obrázky, scripty, css, objekty
⇒pre používanie AJAXu netreba nič urobiť, proste sa používa.
⇒skvelá podpora mnohojazyčnosťi
⇒na písanie java kódu sa môžu používať robustné voľne dostupné vývojové nástroje
⇒podpora databáze Google Datastore
⇒skvelý editor na tvorenie desingu
⇒server zdarma/lacný Google app engine

⇒Všetok kód sa píše v jave/python-e


Pre písanie stránky, či už používa ajax alebo nie, je potreba ovládať viacej vecí. A to PHP, HTML, JavaScript, Css poprípade AJAX, JSON, XML. Zoberte si že píšete obsiahlu stránku z ajaxom. Musíme vytvoriť niejaký objekt v php, následne v JS, ešte aj v XML, následne spraviť konvertáciu php↔XML XML↔JS. No hrozná predstava.
Z GWT stačí ovládať jedine Javu/python , poprípade xhtml,css.
Celý projekt sa píše v JAVE, Pri kompilácií sa generuje javascript a css, server ostáva v jave. Pravdaže je možné použiť aj JS,PHP a všetko čo bude pre danú vec potreba.
Ale tá myšlienka, vytvoriť objekt len raz, a používať ho na serveri aj kliente,no jednoducho krása. Ušetrený štvornásobok času.

⇒Všetky súbory prejdú pri kompilácií vysokou optimalizáciou


Z javy je generovaný JavaScript, pre každý prehliadač samostatný.Takže už žiadne problémy z rôznimi prehliadačmi. Taktiež je generovaný css, pre rôzne prehliadače.
Kód Javascript prejde vysokou optimalizáciou, kde môže stratit až 85% pôvodnej veľkosti. Malé obrázky sú spájané do jedného.

⇒Pre používanie AJAXu netreba nič urobiť, proste sa používa


Kedže je kód písaný len v Jave, nieje potreba prevádzať žiadne špeciálne úkony. Jednoducho len vytvoríte scripty v priečinku server, reprezentujúce scripty vykonávajúce sa na serveri. Potom vytvoríte scripty v priečinku client, ktoré sa majú vykonávať v prehliadači. A potom tu je ešte jeden priečinok a to shared. Tam vytvoríte scripty ktoré chcete používať na serveri ako aj v prehliadači.
Pri potrebe poslať nejaký údaj z prehliadača na server, len jednoducho voláte metódu(funkciu), ktorá sa nachádza na serveri, ako keby bola súčasťou klienta

⇒Skvelá podpora mnohojazyčnosťi


Podpora mnohojazičnosti je skvele implementovaná. Všetky správy, a texty píšete do samostatného scriptu. Pre použitie sa na tú správu odkážete. Pokiaľ sa na budovanie projektu používa GUI editor, tak sa o texty netreba vôbec starať. Až bude potreba stránku preložiť, tak sa len klikne na jedno tlačítko, a nástroj vyhľadá všetky texty, a exportuje ich do samostatného súboru.
Pre zobrazenie inej jazykovej verzie potom len stačí pridať argument do adresy stránky.

⇒Na písanie java kódu sa môžu používať robustné voľne dostupné vývojové nástroje


Pre javu existujú výborné nástroje, ktoré sú navyše zdarma. Ako napríklad Eclipse, NetBeans a podobne. Pre zistenie potenciálu týchto vývojových prostredí je potreba ho používať. Avšak rýchlosť písania kódu je poriadne efektívna.

⇒Podpora databáze Google Datastore


Každý kto pracoval z mysql databázou, vie aká je to pakárina. Vytvoriť tabuľky, tvoriť zložité sql. Nedajbože použitie JOINu . A potom ešte, keď chceme databázu zmeniť.. proste samé problémy. Tak sa pýtam prečo ?
GWT podporuje má databázu Datastore. Jej použitie je celkom jednoduché. Máme objekt v priečinku shared, áno, ten istý ktorý používame na cliente aj na serveri. Pridáme mu jednoduché anotácie, ktoré definujú že objekt sa má uložiť do databáze, a akým spôsobom. A to je opäť všetko. Objekt môže obsahovať vnorené objekty. Pri potrebe zmeniť objekt, tak proste učiníme, a tým to hasne. Netreba spraviť nič iné. Keď chceme objekt vytiahnuť z databáze, tak buď tak učiníme priamo, alebo pridaním vyhľadávacích podmienok.

⇒Skvelý editor na tvorenie desingu


Ku GWT sa dajú doinštalovať nástroje na tvorbu desingu. sú naozaj luxusné. generujú buď to xml, alebo rovno JAVA syntax. Opisuje sa to dosť ťažko, jedno však viem, nieje to žiadny NVU. V tom editore spravíte naozaj všetko čo potrebujete.

⇒Server zdarma/lacný Google app engine


Pokiaľ ste niekedy potrebovali zmeniť verziu stránky, tak ste ju proste prepísali. avšak v dobe prepisovania bola nedostupná. Zoberte si však , že máte 3000 užívateľov. Asi niesu radi, keď im toto spravíte. Potom ešte ak nová verzia zlyhá, treba čím najrýchlejšie vrátiť pôvodnú.
Pokiaľ hostujem na GAE, tak pri uploade zadávam číslo verzie. keď sa stránka uploadne, a mám hu otestovanú pod subadresou, tak v administrácii zmením číslo verzie, a další návštevníci sp automaticky posielaný na novú verziu. Keď potrebujem vrátiť pôvodnú verziu, tak proste toto číslo prepíšem naspäť.
Server je zdarma do určitého limitu. Limit nieje nijak malý. A až limit nestačí, tak si dokúpite nový. neplatíte však paušály. Ale kupujete si daný výkon (výkon procesora,ram,konektivity,prenosu ...). Za každú položku platíte zvlášť, a tak platíte naozaj len za to, čo potrebujete, a vtedy, keď to potrebujete. Zoberte si, že máte malý eshop, avšak pred Vianocami očakávate 300% zvýšenosť návštevnosti. U klasického hostingu si musíte platiť potrebný server celý rok, aj keď jeho kapacitu užívate len jeden mesiac. Z GAE si môžete nastaviť zvýšenie a zníženie kedykoľvek.

Tak si to Zhrňme


Základné vlastnosti:
⋅Optimalizácia pre rôzne prehliadače zvlášť - automatická
⋅Písanie serveru a klienta zvlášť, ktomu ešte serializácia - nehrozí
⋅Rýchlosť a automatizácia písania kódu - neuveriteľná
⋅Optimalizácia rýchlosti zobrazenia - automatická
⋅Dostupné hotové doplnky (posúďte sami) - 1, 2, 3, 4
⋅Hostovanie aplikácie zdarma na serveroch google
⋅Databáza - automatická
⋅Zložitosť - hodne veľká

Moje pokusy z gwt 1, 2, 3, 4, 5, 6, 7, 8, 9
Oficiálne projekty bežiace na GWT zoznam, ukážky

Pre každého, kto by sa chcel dozvedieť viac gwt vlastností a dočítať ničo o mojich skúsenostiach z GWT tu je tlačítko Líbí

Hodnocení +21Líbí
Přečteno 1212-krát

Komentáře

Přidat nový



Pro přispívání musíte být přihlášen



Poslední komentáře

Sousední akvárko

Nejčtenější

Nejlepší

Web Kreveta.net je unikátní sbírkou článků mapují proces tvorby her. Vedle návodů naleznete v krevetím akvárku i rozhovory s vývojáři, recenze, soutěže. Portál Kreveta.net připravují (řazeno abecedně): Akhera, Banane4joy, Bullet_catcher, Burák, Fire.js, Ikkju, Izual, Likandro, Makan, PepiCzech, StorN, Tior.
Akvárko vymaloval Tior, o chod filtrace se stará StorN (design a kód).
Copyright © 2010 Kreveta.net. Všechna práva vyhrazena.