katriryt / ot-harjoitustyo

0 stars 0 forks source link

Koodikatselmointi #1

Closed saanap17 closed 3 years ago

saanap17 commented 3 years ago

Hei! Ensinnäkin, yleisesti ottaen mitä mainioin idea pelille. Katakanojen ja hiraganojen oppiminen on tunnetusti haastavaa, ja monille tällainen peliformaatti on toimivin tapa oppia. Hyvä aihe harjoitustyölle siis!

Sain pelin onnistuneesti käynnistettyä ja peliä pystyi hienosti pelaamaan ainakin yhden kentän verran. Kaikki viewit näyttävät juuri mitä pitääkin, peli sulkeutuu halutessa yms. En onnistunut kaatamaan peliä kertakaan tai löytänyt suuria bugeja, eli kaikki vaikuttaa oikein stabiililta sillä saralla! Isoimmaksi ihmetyksekseni jäi, ettei peli koskaan virallisesti lopu: pystyin menettämään kaikki elämäni "sudden death"-kortteihin, mutta myös jatkamaan peliä kunnes sain onnittelut kentän läpäisemisestä. En ottanut täysin selvää, mikäli tämän kuului olla ominaisuus vielä tässä releasessa.

Testit sain suoritettua myös onnistuneesti. Pylint löysi melko paljon puutteita (liian pitkät rivit, snake case jne.), mutta näistä huolimatta arvosana näytti oikein hyvältä. Pureudutkin varmaan näihin puutteisiin jatkossa.

Koodi

Rakenteellisesti koodi näyttää hyvältä. Kaikki lähdekoodi on talletettu omiin kansioihinsa asianmukaisesti. Koodissa esiintyi erittäin paljon poiskommentoituja rivejä, mikä teki koodin lukemisesta ja seuraamisesta ehkä hieman hankalaa. Jatkossa kannattaa ehkä valmistella kommentoitavaan releaseen versio, jossa kommentteja on mahdollisimman vähän. Tämä voisi helpottaa koodin seurattavuutta.

Eri luokat on kuvaavasti nimetty ja kukin hoitaa täsmällisesti omaa asiaansa. Yksittäiset funktiot vaikuttavat myös mielekkäiltä ja kaikilla on oma, selkeä tehtävänsä. Funktioiden pituudet vaikuttavat hyvältä. Parametrien nimet ovat myös hyvin kuvaavia. Yleisesti ottaen koodi vaikuttaa järkevästi asetellulta ja on helppo ymmärtää, mitä missäkin kohti koodia tapahtuu. En myöskään törmännyt siihen, että koodissa esiintyisi juurikaan toistoa. Hyvä!

Myös testit näyttävät testaavan ohjelmalle mielekkäitä asioita, vaikka näiden kattavuus onkin vielä vähän matala. Näytät kuitenkin testeissäsi käyttävän samaa tietokantaa, kuin itse ohjelmakin. Tämä ei luonnollisesti ole järin suositeltavaa, koska nyt joka kerta kun testit tehdään, vuotavat näiden tulokset suoraan olemassaolevaan tietokantaan (esim. joka testisuorituksella sinne näyttää ilmestyvän pelaaja 1000|10|5 -stateilla). (En ole myöskään aivan täysin perillä testausstandardeista, mutta kuuluisikohan kunkin testiluokan olla jemmattuna omaan python-tiedostoonsa? En ole varma, mutta tätä näen hyvin paljon.)

Valitettavasti en ole vielä päässyt käyttämään Tkinteriä erityisen paljon, joten en käyttöliittymään kuuluvasta koodista osaa sen suuremmin sanoa onko se standardin mukaista vaiko ei. Aloittelijan näkökulmasta asiat näyttivät kuitenkin päällepäin selkeästi toteutetuilta!

Parannusehdotuksia

(Ohjelmakoodi ladattu 28.4. klo 22:28)

EDIT: Valitettavasti tämän lähetettyäni vasta huomasin, että olet pushannut pelistä uuden releasen. Kommenttini ovat siis ehkä vähän vanhentuneita jo, mutta toivottavasti edes jostain osasta palautetta on hyötyä! :)

katriryt commented 3 years ago

Kiitokset erinomaisista kommenteista! Näistä oli paljon apua. :)