Mint ígértem tegnapi élményeim...

Egy ilyen blog bejegyzés nem alkalmas a teljes háttér ismertetésére. A TDD az a teszt vezérelt fejlesztés (Test-driven development,) Ebben a WIKI bejegyzésben olvasható rövid összefoglaló.
Nagyon röviden. Először mindig a teszt osztály bővül. Ezt követi a produktív osztály bővítése, de csak annyival ami az eddigi teszteket kielégíti. Ezt a szükség szerinti re-faktorálás követi. A ciklus  ismétlődik a feladat befejezéséig.
Feladat olyan java osztály írása, amely alkalmas a gurítások bevitelére és az végeredmény kiszámítására. A feladat leírása itt olvasható, a megoldási "kulcs" innen tölthető le.
A megoldási kulcs lépésről lépésre vezet végig a javasolt úton.
Annak ellenére, hogy tudom, hogy a TDD alapelve a tesztet minimálisan kielégítő produktív kód írása, meglepő, hogy milyen jelentős strukturális módosítások lépnek be a folyamat során. Van olyan lépés, ahol szinte az egész kód cserélődik.
A kezdeti kód csak a teszt kielégítésére alkalmas, az végcélból semmit sem teljesít, köszönő viszonyban sincs a végleges állapottal.TDD nélkül már elsőre is jobb kódot írna legtöbbünk.
Az első teszt csak a produktív osztály meglétét ellenőrzi. Ezt követi a két elvárt metódus meglétének ellenőrzése. És tovább ilyen elemi lépésekben.
Érdekes tetten érni a refraktorlás érvényesítését. Kiemelésre kerül minden ami egynél többször fordul elő a kódban. A releváns lépésnek tekinthető legalább két sorból álló kódrészletek. A feltétel vizsgálatok is függvényekké válnak, nem az olvasónak kell kiértékelni mit is kíván a programozó ellenőrizni.
Eltűnnek a kommentek, mert a kód öndokumentáló.
És tényleg, mennyivel olvashatóbb a kód.
Érdemes kipróbálni!

A bejegyzés trackback címe:

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

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