szerda, május 19th, 2010 | Author:

Ma harom tipikus programozasi hibaba is beleszaladtam, alljon itt egy memento roluk:

  1. Factory keszitette ojjektum: Ha egy objektumot Factory-val vagy Factory metodussal keszitesz, az nem ekvivalens a new Objektumneve() hivassal, ugyanis lehet null, anelkul, hogy hibat dobna. Az ilyen modon elkeszitett objektumokat erdemes ellenorizni, hogy ne valahol a hivaslista melyen kapjunk egy nullpointer exceptiont. (vagy az adott nyelvi megfelelojet). Ez kulonosen igaz, ha a Factory-t egy kulso file-bol inicializaltuk.
  2. Nem szamlalo alapu ciklusban (pl. while, foreach) szamlalot hasznalni oke. A szamlalot az elejen megnovelni, majd a vegen egy feltetelvizsgalat eseten (valami nem kovetkezett be) csokkenteni nem oke. Csak a legritkabb esetben nem lehetseges a szamlalot magasabb ertekrol inditani, es forditott feltetelvizsgalattal novelni a ciklus vegen. Konnyebben kovetheto logika es kevesebb hibalehetoseg az eredmeny.
  3. Egy ciklusban ugyanazt a erteket tobbszor kiszamolni gaz. Ha ezt raadasul rosszul teszed (pl. copy paste hiba miatt) akkor meg nehezen kinyomozhato programhibat is okozol.
Category: Szakmai
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

2 Responses

  1. 1
    geot 

    Gondolkodom, hogy a múltkori programomra ráhúzható-e a 2-ben említett hiba.
    Széltében keresést csináltam, while ciklusban szedtem ki egy csőből a következő elemet, és közben pakoltam a másik végébe a fellelt új elemeket. Volt benne változó csökkentés, 0, 1 vagy több növelés, és vizsgálat, hogy van-e még benne feldolgozandó elem.
    Na? (Azt hiszem, ez kicsit más eset, mint amit leírsz.)

  2. 2
    Vagabond 

    A fenti pelda egy kicsit mas. A te peldadnal, ha jol ertem, ket iranyu mozgas is volt, illetve alkalmankent ugras. Amit en irtam le, az leginkabb igy nezett ki:

    foreach(elem:tombelemek) {
      counter++;
      if(elem.valami) {
        doSomething;
      } else {
        counter--;
      }
    }

    ennel bonyolultabban, hogy ne legyen trivialis, amit csinal, de ez volt a lenyeg.

Leave a Reply » Regisztráció / Log in


You must be logged in to post a comment.