sobota 22. března 2003

Kodérovo dogma

Znalci problematiky prominou malou nepřesnost v nadpisu neb jednotlivé rady se týkají klientského skriptovaní všobecně. Jednotlivé rady se mi v hlavě sesumírovali postupem času, uzrávali, byly nahrazeny nebo kompletně převráceny s rostoucími zkušenostmi mě samého. Neméně důležitou přísadou, byli všemožné otázky, nejasnosti a mýty, které se objevovaly kolem mě v konferencích věnujících se JavaScriptu.

Smysl tohoto článku je poukázat na elementární pravidla, kterých by se měl kodér držet. Ten kdo se rozhodné následovat těch pár řádek by si měl v prvé řadě uvědomit, že mnoho vlastností, které dnes pokročilé skriptovaní nabízí, není možné využít z důvodu jejich rozdílné implementace. Není důvod se znepokojovat, dnešní prohlížeče poskytují naprosto dostatečnou paletu funckí, které při jejich správné aplikaci zvýší použitelnost stránek.

Většina pravidel vznikla položením prosté otázky proč ..., žijeme v uspěchané době a mnohdy si nekladame elementární otázky, jejichž zodpovězení by nám dokázalo roskrýt mnohem širší kontext daného problému.

Podívámeli se zpět do histroie klentského skriptování najdeme zde dva hlavní důvody vzniku, umožnění co možná nejširší interakce s uživatelem a práce s formuláři avšak posunemeli se pomyslnou časovou osou do současnosti, zjistíme, že hlavně zvýšení interakce bylo motorem v překotném vývoji skriptovaní. V současnosti už není problém realizovat složité rozhovory klient-server s využitím technik jako XML-RPC, drag and drop operace, dynamickou změnu částí nebo dokonce celého dokumentu.

Zlaté pravidlo: Méně znamená někdy více

Velice dobře zvažujte jakékoliv použití klientského skriptování na vašich stránkách popřípadě webovských aplikacích. Mějte vždy na paměti, že obzvlášte na internetu je dost široka skupina uživatelů s vypnutým skriptováním nebo s jeho omezenou podobou. V takovém případě se z různých dynamických menu stavají nepoužitelné kousky kodu a stránky jsou absolutně nepřístupné. Mějte na paměti, že méně opravdu znamená více z pohledu uživatele.

Pravidlo číslo dvě: Pouze kod standardní je kod použitelný

Vyvarujte se jakýchkoliv proprietrních vlastností! Bohužel tento nešvar, je vidět opravdu často. Jako typický příklad je používání kolekce all, která je pouze proprietární vlastností prohlížečů z rodiny Internet Explorer. Řidtě se vždy platnou specifikací ECMAScriptu a kod testujte nejméně v Internet Exploreru,Mozille (či jiném Gecko like prohlížeči) a v prohlížeči Opera. Tak můžete odhalit případné rozdíly v implementaci JavaScriptu resp. JScriptu.

Pravidlo číslo tři:Šetřete přenosové pásmo

Za každých okolností se snažte kod oddělit od stránky. Přeneste kod do externích souborů, takovýto kod si uživatel stáhne pouze jednou v ostatních případech již funguje cache. Ušetříte jak přenosové pásmo tak peněženku uživatel. Navíc takovíto kód pomáhá při jeho znovu využití a sdílení mezi více stránkami.

Pravidlo číslo čtyři:Sdílené knihovny a objekty

Pokud možno snažte se psát funkce a objekty tak, aby je bylo možné využívat na více místech vaší aplikace nebo projektu. tímto přístupem lze získat mnoho výhod

  • jenotné uložení, jedna změna se projeví na více místech současně
  • lepší zpráva takovehoto kódu
  • internacionalizace na jednom místě
  • větší přehlednost kódu
  • viz. pravidlo tři

Pravidlo číslo pět:Komentáře a verzování

Všechen kód si pečlivě komentujte, pokud nemáte zažité tzv. code convetions, zaveďte si vlastni ,ale hlavně je všude v kódu dodržujte. Pamatujte na základní fakt, že kód je jednou psán, ale 1000x procházen a opravován. Nezapomínejte ani na fakt, že kód nebudete vždy používat vy, ale může přijít někdo kdo, ho bude muset udržovat.

Zvláště u sdílených knihoven a komponent, býva kvalitní komentář neocenitelnou pomuckou, když nad ním po pár měsících sedíte v bezesné noci a luštíte chyby. Další neocenitelnou pomůckou je verzování kódu. Jako dobré řešení se mi osvědčilo používat pro společné komponenty vždy samostatný soubor. S kometářem pak kód může vypadat následovně.

 
  /*
  @author:  Roman Pichlik
  @email:   pichlik@seznam.cz 
  @date:    13.12.2002
  @version: 1.13
  @description: Metoda otevírá nové okno, jehož URL je určena argumentem foo.
  */
  function acme(foo){
    window.open(foo);
  }  
 

Při složitějších konstrukcích je dobré nechávat příklad použití.

středa 19. března 2003

Oprimalizace SNO

V J2SE 1.4.1 byly přidány optimalizační algoritmy SNO. Zkratka SNO je známa spíše jako Garbage collector, zkráceně GC. Přidané algoritmy pomáhají zvýšit rychlost aplikace obzvlástě pro aplikace, které si nemohou dovolit nečinnost v době spuštění SNO a optimalizaci pro velké haldy. Mnohem více, si můžete přečíst v článku věnujícím se právě seznámením s těmito algoritmy.

Vyjímky v jave prakticky

Třídílný (mimochodem velice povedený) seriál, zaměřený na práci s vyjímkami v Jave, byl nedavno publikován na serveru JavaWorld. V článku se mimo jiné dozvíme, jak správně a efektivně používat techniku vyjímek v programech. Dále popisuje velice užitečnou techniku Exception chaining, ve které se jedná o obalení vyjímky vyjímkou. Tato technika je užitečná, při návrhu interfacu objektu, kdy do jedné vyjímky(obecnější), zabalit vyjimku jinou(konkrétnější). To je velice efektivní při rozšiřování funkcionality vlastní metody, která tuto vyjímku vyhazuje.

Autor nezapomíná ani na nenepodstatnou práci s lokalizací vyjímek. Celkově se na vyjímky v článku nahlíží ze třech úhlu pohledu.

Tvůrce
Vyvolaná vyjímka a její vypis, by měl pomoci určit příčíny jejiho vyvolání
Klientský porogramátor
Deklarovaná vyjímka, může být ošetřeno nebo předána výše.
Uživatel
Pokud k dojde k chybě, která vyvolá takovou vyjímku, mel by být uživatel informován jemu srozumitelným způsebem a ne zprávou java.lang.Exception