×
COOKIES
Prezeraním tejto stránky dochádza k spracovaniu cookies. Spracovaniu cookies zabránite v nastaveniach internetového prehliadača alebo nezobrazovaním tejto stránky v internetovom prehliadači.
Vytvárame riešenia

Nereprodukovateľné chyby - nočná mora každého vývojára

V rámci vývoja aplikácií nastávajú rôzne situácie, kedy sa prejavujú chyby rôzneho charakteru. Niektoré z nich je veľmi náročné reprodukovať, najmä ak ide o chyby tretích strán. Jednu podobnú chybu som mal približne 3 mesiace s Internet Explorerom.
Konkrétne išlo o ignorovanie spracovania poľa cez for in. Túto chybu som nahlásil aj Microsoftu, no vždy bola zamietnutá. Vôbec som nechápal prečo. Rozuzlenie prišlo až keď som začal písať článok na tému: Pozor na Internet Explorer a for in. V tomto prípade som ale namiesto výsledku function item() { [native code] } začal dostávať undefined. To som už ale vedel, kde je kameň úrazu a že za všetko môže for in.
Príklad: Prechádzanie poľa v Internet Exploreri nefungovalo správne.
1
2
3
4
5
6
var Arr = ["one", "two", "three", "four", "five"];
var index;
for (index in Arr) {
console.log(Arr[index]);
}
Prekvapil ma ale iný výsledok operácie. Nakoniec sa všetko rozuzlilo veľmi náhodným a zaujímavým spôsobom. Keďže sa mi v rámci test casu nezobrazila aktuálne vykonaná zmena, išiel som sa pozrieť či mám v Internet Exploreri zakázané cacheovanie. Keďže IE nepoužívam na vývoj a nedávno som prešiel na Windows 8, browser mal samozrejme povolené cacheovanie. Po zakázaní cacheovania a vymazaní všetkých dát z cache, zrazu všetko fungovalo ako hodinky. Žiadne chyby, všetko správne výsledky. Skúšal som aj varianty s natívnym poľom či nie je rozdiel pri práci s literálom alebo s objektom.
Ešte doplním, že keď som riešil uvedenú chybu s Microsoftom, v compatibility móde pre IE 7 a IE 8 bol výsledok operácie správny. Išlo o absolútne neočakávané správanie a výsledky, ktoré sa bežne nedajú nasimulovať pre testovanie.

Záver

Z minulosti ako aj z aktuálnej skúsenosti odporúčam mať spracovaný dokument so zoznamom povolených aplikácií a ich odporúčanými nastaveniami. Predíde sa tak hľadaniu chýb v prostredí, ktoré môže byť absolútne atypické a možno už nikdy ani nenastane. Pre takéto situácie nemá zmysel strácať čas a hľadať riešenia, ale stačí jednoducho držať sa pravidiel daného dokumentu čím sa predíde možným chybám v programe. Preto pri ťažko reprodukovateľných problémoch možno stačí iba zmeniť nastavenia povolených aplikácií na východiskové hodnoty. Ako príklad môžem spomenúť hry, s ktorými som mal problém pri prechode na Windows 8, kde tiež nastavením aplikácie na východiskové hodnoty sa odstránili všetky problémy.


Blog,bug reporting,programovanie
Žiadna časť tohto článku nesmie byť reprodukovaná bez uvedenia autora a URL na túto stránku.
Viac informácií nájdete v sekcii O projekte.

Komentáre

Článok neobsahuje zatiaľ žiadne komentáre.

Pridať komentár

Meno (povinné)
Web
Správa (povinné)
Odoslať
Od najnovších