Kurssiesittely | Luennot | Harjoitukset |
---|
max 7 pistettä
Alkuperäiset SOLID-periaatteiden artikkelit (SRP, OCP, LSP, ISP, DIP) ovat sivulla http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod (kannattaa vilkaista myös pakkauksia koskevia periaatteita: REP, CCP, CRP, ADP, SDP, SAP). Yleiskatsauksen voi saada kuuntelemalla Hanselminutes #145 -podcastin, jossa selitetään niistä jokainen. Luennon 9 luentomateriaalissa on myös lisää linkkejä.
1 piste: Kaikki viisi periaatetta on luettu ja ymmärretty.
2 pistettä: Omasta koodista on löydetty esimerkki yhden SOLID-periaatteen rikkomuksesta.
3 pistettä: Omasta koodista on löydetty esimerkkejä kolmen eri SOLID-periaatteen rikkomuksesta.
Lue artikkeli Working Effectively With Legacy Code (PDF) ja käytä siinä neuvottuja menetelmiä tämän tehtävän tekemisessä. Kun olet kirjoittanut testejä, niin kokeile tehdä pieniä muutoksia testattavaan koodiin - jos testit eivät havaitse muutosta, niin testien kattavuus ei ole riittävä ja sinun pitää kirjoittaa enemmän testejä, ennen kuin voit refaktoroida koodia turvallisesti. Sorsastus-projektin saa käännettyä suoritettavaksi JAR-tiedostoksi mvn package -komennolla.
1 piste: Koodista on tunnistettu muutettavat luokat ja ne ympäröivä "inflection point", jolle testit pitää kirjoittaa.
2 pistettä: Muutettavan koodin ulkoiset ja sisäiset riippuvuudet on katkottu, niin että koodille voidaan kirjoittaa testejä. Ohjelman toiminnallisuus ei ole muuttunut.
3 pistettä: Muutettavalle koodille on kirjoitettu "test covering" -tyyppisiä testejä riittävästi, että ohjelmaa voidaan turvallisesti muuttaa. Ohjelman toiminnallisuus ei ole muuttunut.
4 pistettä: Koodirivien laskenta on refaktoroitu omaksi luokakseen, jolla ei ole riippuvuuksia ohjelman muihin osiin. Ohjelman toiminnallisuus ei ole muuttunut.
Harjoitustilaisuudessa käydään antamassa kurssipalautetta ja järjestetään Coding Dojo.