jsalojuuri / compare-pathfinders

Neljän polkualgoritmin vertailua
0 stars 0 forks source link

Koodikatselmointi 2 #2

Open guotin opened 4 years ago

guotin commented 4 years ago

Koodikatselmointi 2

Projekti ladattu omalle tietokoneelle 5.12.2019 klo 15:00

Dokumentaatio ja yleinen projektin rakenne

Projektin tämänhetkinen rakenne on erittäin selkeä ja dokumentaatio on hyvällä tasolla. Määrittelydokumentista sai hyvin selville mitä ohjelman on tarkoitus tehdä ja valitut hakualgoritmit vaikuttavat mielenkiintoisilta. Luokat on jaoteltu fiksuihin paketteihin. Vaikea keksiä mitään parannettavaa näiden asioiden suhteen.

Koodin rakenne ja selkeys

Koodia on hyvin jaoteltu erillisiin luokkiin ja luokat näyttävät melko hyvin toteuttavan vain tiettyä asiaa. Muuttujia on nimetty järkevästi ja kommentointi on kattavaa. Algoritmiluokissa kommentointia on tehty jopa enemmän kuin ehkä tarvitsisi, mutta tästä tuskin on haittaakaan. Yksi parannusehdotus mielestäni olisi siirtää käyttäjälle tehdyt tulostukset kokonaan pois algoritmien toteuttavista luokista esimerkiksi käyttöliittymäluokkaan.

Hakualgoritmien toteutus

Kaikki neljä hakualgoritmia vaikuttavat fiksusti toteutetuilta ja niiden käyttämät tietorakenteet vaikuttavat oman tietämykseni perusteella ihan oikeilta. Olisi ollut mukava jo tässä vaiheessa nähdä jotain omia toteutuksia näistä tietorakenteista, mutta ne ovat varmasti työn alla. Muuta parannettavaa en keksi.

Ohjelman käyttäminen ja testit

Ohjelman käynnistäminen ja käyttäminen oli helppoa. Käyttöohjeetkin löytyy enkä löytänyt ohjelman käyttämisestä mitään moitteita. Testit menevät läpi ja testikattavuuskin on korkea. Jos käyttöliittymää ei ole tarkoitus testata niin sen voisi ehkä jättää testikattavuusraportin ulkopuolelle. Ihan kiva myös, että repositorion juuresta näkee testaustietoa CircleCI/Codecov -palveluista vaikka se nyt ei tämän kurssin asioihin juuri liitykkään.

Yhteenveto

Oikein hyvältä vaikuttava projekti ja ongelman toteutus näyttää edenneen hyvin. Ainoat parannusehdotukseni tässä vaiheessa ovat tulostusten siirtäminen pois hakualgoritmiluokista ja tuo pieni testikattavuusraportin viilaus UI-luokan osalta. Kannattaa myös pitää projektin rakenne yhtä hyvänä kuin nyt kun toteuttaa hakualgoritmien tietorakenteet itse.