VesaPuu / wordmaster

0 stars 0 forks source link

Koodikatselmointi #2

Open maryoak opened 9 years ago

maryoak commented 9 years ago

Saitkin jo palautetta projektistasi, mutta tässä nyt vielä jotain mitä itse huomasin.

Koodi on yleisesti siistiä, ytimekästä ja helposti luettavaa. Mietin kyllä voisiko Sana-luokan teeAnagrammi() ja permutoi() metodeissa jotkin parametrit tms korvata suomennoksilla ja muutenkin metodien pito Sana-luokassa mietityttää. Käsittääkseni teeAnagrammi-metodi ei välttämättä edes koske kyseistä Sana-oliota vaan sille voi syöttää minkä sanan vain. Siirtäisin metodin jonkun toisen luokan vastuulle single responsibility periaatteen mukaisesti, mutta toki tässä vaiheessa ei ole helppo sanoa miten vastuut kannattaa jaotella. Metodi ei myöskään taida tuottaa mitään mielekkäitä sanoja (niin kuin anagrammeissa taitaa olla ideana?).

En ole varma, mutta eikö Sanasto-luokan luoOtos-metodissa käytettävä ArrayList kopio ole suora viite oikeaan listaan? Tällöin sanat poistettaisiin "myös" oikeasta listasta. Samoin loopissa listan koosta kannattaa vähentää yksi niin välttyy nullPointerExceptionilta ja myös listan ensimmäinen sana otetaan huomioon. Voikohan sama ongelma olla myös random.nextInt(sanat.size())-metodin käytössä?

Koodin latasin 31.5. klo 22.30.