Akkor hát előfizettem a StudiCore Pro csomagra, s folytatódhat a JAVA programozás alapjai. Augusztus 20. miatt most csak röviden tudtam belevetni magam a képzésbe, de rögtön belefutottam abba, amiben egy gyakorlatorientált oktatás eltér a főiskolai oktatástól.
Volt egy feladat, amiben be kellett kérni egy ember korát, s mindaddig ismételni, míg valós kort nem adott meg a felhasználó. Ha a kor nem megfelelő, akkor egy figyelmeztetést is kiíratunk. Én is így oldottam meg a feladatot (részlet):
int age; do { System.out.println(”Kérem a következő ember korát!”); age = sc.nextInt(); if (age < 0) { System.out.println(”Hibás kor, kérlek add meg újra!”); } } while (age < 0);
Ami szerintem jó megoldás is lett volna, de a StudiCore ezt a megoldást mutatja:
int age; boolean error; do { System.out.println(”Kérem a következő ember korát!”); age = sc.nextInt(); error = (age < 0) ; if (error) { System.out.println(”Hibás kor, kérlek add meg újra!”); } } while (error);
Az általuk bemutatott megoldás a clean code DRY-elvét, a Don’t Repeat Yourselfet használja fel. Ennek lényege, hogy ne ismételjük önmagunkat, s kerüljük azt, ahogy én oldottam meg a feladatot. Én az if feltételeként és a ciklusból való kilépésnél is ezt használtam fel: age < 0.
Ehelyett a StudiCore egy logikai változót használt fel, amelynek értéke igaz, ha az age kisebb nullánál, ellenkező esetben false. A DRY szerint így, ha változtatnom kell a feltételen, nem kell a kódban előkeresni a most még csak kétszer, később ki tudja hányszor előforduló age < 0 kifejezést, hanem elég egyetlen helyen átírni. Ezzel nem történhet meg, hogy a kódban a 0 értékét valahol elfejeltem átírni, s ettől nem működik megfelelően a programom.
Pofonegyszerű, mégsem említette ezt az elvet senki sem a főiskolán. Pedig az ilyen gyakorlati dolgokkal kezdődnek a JAVA programozás alapjai. A továbbiakban viszont én is fogom használni a DRY-elvet!
Vélemény, hozzászólás?