Várakozásommal ellentétben a Gilded Rose kata eltér a korábban ismertetett katáktól.
A kód készen van. A feladat a refaktorálás. 
Emily Banche ezt három videóban mutatja be Part 1, Part2, Part3
A refaktorálásnak önmagában nem elengedhetetlen feltétele a teljes tesztlefedettség, de jelentősen megkönnyíti a munkát, mivel “egy gombnyomással” ellenőrizhető, hogy a beavatkozás megőrizte-e a helyes működést. A bemutatott technika nagy mértékben automatikusan hajtható végre, ha kihasználjuk a tesztlefedettség vizsgálat segítségét.

Az első részben a teljes lefedettségű tesztet készíti el Emily. Az eljárás érdekessége, hogy mindössze egy testeset kell ehhez, ha kombinált elfogadási teszt készül. (Az elfogadási tesztekről nem régen készült poszt.) Persze az elfogadási minták állománya 80 soros lett. Minden sor valójában egy eset.

 A második rész az első refaktorálás végrehajtását tartalmazza. Emily ehhez a ‘lift up conditional' eljárást alkalmazza. (Erről is van poszt.) Érdekes megfigyelni, hogy mennyire mechanikus az eljárás. Szinte csak a feltételek létjogosultságát kell eldönteni. Azokban esettekben amikor a feltétel mindig igaz, a hamis ágat lehet eltávolítani. Amikor mindig hamis az igaz ágat. Illetve, ha nincs hamis ág és a feltétel mindig igaz, a feltétel vizsgálatra nincs szükség.

 A harmadik videóban a ‘Replace Conditional with Polymorphism’ eljárással végez refaktorálást Emily. Ennek lényege, hogy az egyes feltétel ágak ugyan azon az objektumon végeznek eltérő változtatást. Ekkor az eredeti objektum kiváltható speciálisan viselkedő (működő) leszármazottaival.

A kata leírása itt található.

A bejegyzés trackback címe:

https://pharsan.blog.hu/api/trackback/id/tr10018007718

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása