RSS Feed LinkedIn Google Plus

Legacy Code Retreat Day

2012. november 17. szombat

Legacy kód az, amihez nincsenek tesztek.

Ma volt a magyarországi első Legacy Code Retreat Day, melynek során a megörökölt – specifikáció és leírás nélküli, kissé hibásan működő, a spagetti elvet szem előtt tartva készült – kódot kellett először is megértenünk, majd javítanunk és újabb funkcionalitással ellátnunk. Az elmélet nagyon egyszerű:

  • a kód átláthatatlan és érthetetlen, nem is tudjuk mit csinál
  • először is megértjük – szükség esetén eközben készítünk megértési refaktorálásokat, amiket később visszavonunk (!)
  • generálunk egy end-to-end tesztet, hogy a jelenlegi funkcionalitást semmiképpen se rontsuk el
  • a kódot elkezdjük kijavítani, hogy karbantartható legyen, eközben a funkcionalitást egyre jobban unit tesztekkel fedjük le, mindezt megtámogatva a generált e2e teszttel
  • ahogy halad az idő, az open closed szemléletet igyekszünk érvényesíteni: a kódunk legyen nyitott a bővítésre, de zárt a módosításra, vagyis az új funkcionalitás megvalósítása esetén új dolgokat kelljen hozzáadni, ne a régit módosítani
  • és így tovább…

Sajnálatosan azonban a jelenlevőknél legtöbb esetben működtek a régi reflexek: itt a kód, itt az elvárt módosítás, no gyorsan javítsuk ki, és kész. Ja, hogy nem biztos, hogy jó lett? Hogy a javítás esetleg egy másik részt elronthat… És mégis sok esetben inkább nekiálltunk hack-elni…

Többünk tapasztalata szerint az elkészült tesztekkel exponenciálisan nőtt a fejlesztői magabiztosság, hiszen már tudtam mit csinál, és azt is tudtam, hogy ha változtatok és a tesztek jók, akkor rendben van.

Számomra a nagy ötlet az volt, hogy az elején (rögzítve a random számokat) generáltunk egy elvárt input-output, ami az esetek túlnyomó részét lefedte, így ezt ellenőrző pontként felhasználva el tudtuk kezdeni egyáltalán fejleszthetővé és karbantarthatóvá tenni a kódot.

Hallottam kollegákat áradozni a páros programozásról, nekem eddig egyáltalán nem voltak jó tapasztalataim e téren, és sajnos ez a nap sem hozott radikális fordulatot. Nem volt rossz, de ott volt az érzés, hogy egyedül lehet, hogy jobban haladtam volna.

A helyszínt és az ételt-italt (beleértve az ebédet) az emarsys biztosította, az elején tartottak egy rövid bemutatkozást, és az iroda is nagyon szép volt. A web konferencián beszéltem még Merklik Lászlóval, náluk a TDD mindennapos gyakorlat, ezért is támogatták a rendezvényt, és örülnek, hogy vannak lelkes, szombatjukat is rászánó fejlesztők Magyarországon. Köszönet a szervezőknek (Devill és Athos)!


Nincs hozzászólás

Vélemény?

Bocsánat, de a bejegyzéshez egyelőre nem engedélyezett a hozzászólás.