Webalkalmazások hibakezelése 1

Két agyféltekéje van a programozónak mégis megbotlik. Ezzel a sajnálatos és örök érvényű igazsággal minden (web)fejlesztő szembesül előbb vagy még előbb. A minőségi alkalmazásokban is vannak hibák. A különbség az, hogy a hibákat hogyan kezeljük.

Fejlesztési ciklus

Ha megvizsgáljuk egy (web)alkalmazás fejlesztésének menetét, akkor a következő ciklust fogjuk kapni.

  • ötlet
  • elvi kidolgozás
  • kódolás, melynek során
    • új funkciókat valósítunk meg
    • meglévő hibákat javítunk
    • új hibákat követünk el
  • ötletek hibajavításokra és új funkciókra azaz kezdjük a ciklust előlről

Szerencsés esetben a kódolás során a fenti a háromból az első kettő tervezetten, míg a harmadik akaratunkon kívül történik. Mindenesetre kétségtelen, hogy a hibák javítása során, illetve új funkciók megvalósítása esetén újabb hibák kerülnek a kódba.

Hiba típusok

  • teljesítmény hibák
  • biztonsági hibák
  • fenntarthatósági hibák
  • funkcionális hibák
  • beállítási hibák
  • szabvány hibák
  • fejlesztési hiányok
  • elvi hibák

Teljesítmény hibák

Olyan hibák amelyek az alkalmazásunk teljesítményét rontják, vagy olyan megoldások amelyek több erőforrást használnak fel mint amennyire valójában szükség lenne. Ezek időnként lehetnek borzasztó triviálisak, mint a lenti példa, néha viszont lehetnek elég nehezen és sok munkával megtalálhatóak vagy kijavíthatóak.

Pl felesleges ciklus futások

for($i = 0; $i < 1000; $i++){
  if($i == 300)
    print $i;
  }

Webalkalmazások esetében pontosan annyi féle teljesítmény hibacsoporttal találkozhatunk ahány réteggel rendelkezik egy átlagos webalkalmazás. Vagyis adatbázis, webszerver, szerver oldali script, HTML, CSS és JavaScript oldalról találhatunk teljesítmény problémákat. Több különféle vélemény is van arról, hogy ezek közül melyik esetében érdemes nagyobb hangsúlyt fektetni a teljesítmény javítására. Lényegében azt érdemes megvizsgálni, hogy a teljesítmény mennyiben is fog a változtatás hatására javulni. A magam részéről eléggé szkeptikus szoktam lenni az 1 millisecundomos javításokkal.

Biztonsági hibák

Ide a következő hibák tartoznak.

  • amelyek saját alkalmazásunkat,
  • a benne lévő,
  • vagy általa kezelt adatokat veszélyeztetik
  • illetve amelyek ismeretében az alkalmazásunk segítségével más alkalmazások biztonsága veszélyeztethető.

Pl sima szövegfileban titkosítás nélkül bárki számára olvasható fileban jelszavakat tárolni. Nem röhögni, láttam már ilyet.

Fenntarthatósági hibák

Ezek olyan hibák amelyek a kódunk fenntarthatóságát, átláthatóságát rontják. Tipikus példája ennek az össze-vissza vagy egyáltalán nem tagolt forráskód, a rosszul megválasztott vagy félrevezető változó vagy függvénynevek, illetve a szükséges kommentek lefelejtése azokon a helyeken a kódban amelyek nem érthetőek meg első ránézésre.

     if($r)
$t = ssssss($g_); else
print sss($_g);
  $idopont = ’palacsinta’;

Funkcionális hibák

Ezek a legnyilvánvalóbb hibák, alkalmazásunk valamelyik feladatának hibás működését jelentik. Erősen széles skálán mozognak mind súlyosságuk, mind előfordulási gyakoriságuk, mind javításukra fordított időszükségletük tekintetében.
Pl egy webalkalmazás esetében ilyen ha egy linkre kattintva nem történik semmi.

Beállítási hibák

Ezek olyan típusú hibák amelyek tudtunkon kívül valamilyen – esetleg speciális – beállítástól teszik függővé alkalmazásunk működését.
Pl ha az alkalmazásunk csak bekapcsolt cookie-kal, vagy mod_rewrite-tal működőképes, akkor jó ha erről tudatosak vagyunk fejlesztés közben és ezt a felhasználók tudtára is adjuk.

Szabvány hibák

Ezek olyan megvalósítások amelyek ugyan működőképesek, de eltérnek az általános szabványoktól illetve ajánlásoktól.
Ezzel gondolom páran vitatkozni fognak, hogy mennyire kell őket hibának számítani, de hosszú távon biztosan kifizetődő ha annak fogjuk fel őket.
Tipikus példája ennek PHP esetében a register_globals bekapcsolása. Úgy is lehet programozni, működőképes is lesz de nehezen fenntartható kódot kapunk jelentős biztonsági kockázattal és garantáltan borzalmas élményekkel amikor alkalmazásunkat átköltöztetjük egy másik szerverre ahol ki van kapcsolva.

Fejlesztési hiányok

Ezek a megvalósítás szempontjából nem hibák, mivel még egyáltalán nincsenek megvalósítva. A felhasználók szempontjából viszont igenis hibák, mert egyértelműen elvárják, vagy feltételezik, hogy az adott funkció létezik.
Ilyen például egy weblap esetében amikor az alkotó elfeledkezik a print.css létrehozásáról.

Elvi hibák

A végére hagytam a legsúlyosabb típusú hibát. Ezek általában a program-, vagy a funkciók tervezése során elkövetett elgondolási, elvi szintű hibák.
Ilyenek lehetnek a rosszul megválasztott adattárolási vagy futtatási eljárások. Azért ezek a legsúlyosabbak, mert időnként csak azután derülnek ki, hogy sok időt és energiát fektettünk be a fejlesztésbe. Sokszor nem is javíthatók csak az alkalmazás teljes újraírásával.

A következő részben a hibák beazonosításával és nyomon követésével fogunk ismerkedni.

One thought on “Webalkalmazások hibakezelése 1

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöljük.