RSS Feed LinkedIn Google Plus

Címke: emarsys

  1. Second Global Day of Coderetreat

    2012. december 8. szombat

    Hű, nagyon jó volt! A teszt vezérelt fejlesztés már rutinosan ment, így tudtunk a feladatra koncentrálni, és nagyon élveztem a páros programozást. :) Kódoltam C++-ban is (eleinte csak néztem, ahogy a társam kódol, de aztán fokozatosan felelevenedtek az emlékek). Jó partnereim voltak, és mivel minden egyes sessionban elölről kellet kezdeni a kód írást, nem mentem bele hitvitákba: ha a társam kötötte az ebet a karóhoz, ám legyen, egy sessiont kibírunk, és levonjuk belőle a tanulságot. (Igaz, az első sessionban én is egy rossz statégia mellett kardoskodtam.) (more…)


  2. 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)!