Lær TDD gjennom eksempler

TDD By ExampleKent Beck er en legende innen smidig softwareutvikling: Han er opphavsmannen til Extreme Programming (XP). Han var en av 17 personer som utformet og signerte the Agile Manifesto. Sammen med Ward Cunningham gjorde han CRC-kort populært, og han lagde testrammeverket JUnit sammen med Erich Gamma. Og han er en av de mest sentrale personene innen testdreven utvikling (TDD).

Kent har skrevet mange bøker, og en av dem er Test-Driven Development: By Example, utgitt i 2002.

Denne boken har et uvanlig format. Den er delt inn i tre deler, og i stedet for å fortelle om TDD og argumentere for hvorfor det er en bra teknikk, så tar forfatteren deg i de to første delene av boken med på et par programmeringsøkter. Hver del har rett og slett et problem som skal løses, og Kent koder og forklarer underveis hva han tenker og hvordan han går frem.

I den første delen implementerer han penger som støtter flere valuta, og han bruker Java som programmeringspråk (Java er så likt C# at det er lett å ta feil av og til). Målet er å illustrere rytmen i testdreven utvikling.

Og i den andre delen skrur Kent opp vanskelighetsgraden et par hakk og implementerer faktisk et rammeverk for enhetstesting. Han lærer oss altså om slike rammeverk gjennom å implementere det, og han bruker testdreven utvikling for å gjøre det. Han tester faktisk koden sin med rammeverket som han koder, hvilket jo er ganske snedig. Han gjør dette eksempelet i programmeringspråket Phython – og selv om du ikke har noen erfaring med det språket så klarer du å henge med, for han forklarer det du trenger underveis.

Etter å ha lest de to første tredjedelene av boken føler du at du har fått bra tak på TDD. Og da går Kent endelig over til å ”snakke” litt også. Del tre handler om patterns i TDD, dvs en litt mer formell forklaring av hvordan man går frem, og hva som er viktig å tenke på. Han går også inn på enkelte design-patterns og refaktureringsteknikker – refakturering er tross alt en meget sentral del av testdrevet utvikling.

Det aller siste kapittelet handler om å mestre TDD. Her stiller han en del spørsmål som får leseren til å tenke. Av og til hinter han til hva svaret kan være, andre ganger lar han spørsmålet henge der. Han knytter også TDD opp mot Extreme Programming, men boken snakker generelt lite om dette.

Jeg har gjort noe TDD fra tid til annen, men er langt fra erfaren – og Test-Driven Development: By Example gav meg mye god kunnskap og forståelse – både om hvorfor TDD fungerer, og hva jeg har gjort “galt” i min egen praktisering. Å lese boken er ingen erstatning for å øve, øve, øve – for det er kun slik man kan lære det orntlig. Men den fungerer ypperlig som en introduksjon og inspirasjon til testdreven utvikling for utviklere som allerede har noen års erfaring og som er interessert i TDD, men enten aldri har forsøkt det selv eller ikke helt har fått det til.

Du kan se en smakebit av boken på Google Books om du vil. Og hvis du allerede har lest den, eller en annen god bok om TDD, er det veldig kjekt om du legger igjen en liten kommentar.

Knagger: , , , , , ,

Kategorier: Bøker, Testing / TDD.
RSS feed for kommentarene. Tilbaketråkk.

Skriv en kommentar

Tillatte tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Einar W. Høst: Det er jo læringen som gjør det morsomt! Se også http://norvig.com/21-days...

Pagliacci: OBS! tl;wr. Det er vel akuratt det jeg sliter med med min læring innenfor pr...

Torbjørn: La oss anta to ulike definisjoner av Template Method pattern - de to ytterpunkte...

Lars-Petter: Hei igjen. Siden du inviterer til å ta diskusjonen i bloggen, og har tatt deg t...

Torbjørn: Lars-Petter: Det er én måte å se det på. Det er absolutt fortsatt Template M...

Lars-Petter: Hei. Har du ikke i prinsippet her gått over fra Template Method (arv) til Strat...

Christian Abildsø: I alle fall i C#, så føles dette som kode som blir mer fleksibel men vanskelig...

Torbjørn: Hei Henrik, og takk for tilbudet. Ble oppmerksom på Rasberry Pi for under en uk...

Henrik Sandaker Palm: Ang. større hobby prosjekt. Du er som er en slik rakker på programmering har j...

Øivind Nilsen: Slutt å bruke mobilnummeret mitt som eksempel !...

Mulig relaterte linker

 Hold deg oppdatert

Søk i bloggen

Ferske innlegg

  • En historie om programmering
  • Template Method del 4: Multippel arv
  • Template Method Intermesso
  • Template Method del 3: Bare funksjoner
  • Kategorier

  • .net ninja (37)
  • Bøker (17)
  • Diverse prosjekter (35)
  • DSL (10)
  • Erlang (10)
  • F# (5)
  • Hardware (1)
  • Jobb (77)
  • Julekalender (51)
  • kjempekjekt.com (23)
  • LISP/Clojure (33)
  • NNUG / community (60)
  • O/RM & databaser (10)
  • Off topic (116)
  • OO-design/clean code (30)
  • Podcasts (14)
  • Polyglot (77)
  • Ruby (27)
  • Silverlight / RIA (3)
  • Software/verktøy (20)
  • Softwareutvikling (21)
  • Testing / TDD (30)
  • the contiki strip (13)
  • User experience (3)
  • WCF (3)
  • Webutvikling (32)
  • WPF (9)
  • WTF (12)
  • Last ned Wallpaper

    Programmeringsbloggens tøffe skrivebordsbakgrunn med snippets fra ulike språk laster du ned her!

    Abonner via epost

    Om du vil kan du få alle nye blogposter tilsendt til din epost. Abonner nå, det er kjempeenkelt!

    Meta