Projekti näyttää olevan hyvässä vaiheessa. En itse tiedä paljoa Markovin ketjujen toiminnasta, mutta ne näyttävät olevan hyvin toteutettu.
Jotain parannusehdotuksia:
Koodi on hyvin kirjoitettu ja dokumentoitu, eli sitä on helppo lukea. Joissakin pidemmissä metodeissa (esim. service.py/do_four_track) voisi olla kommentteja tai pidempi docstring, jotka selittävät toimintaa tarkemmin.
Olemassa olevat testit olevat relevantteja ja testikattavuus on korkea, mutta testejä voisi olla enemmän. Esimerkiksi mitä tapahtuu, jos käyttäjä yrittää laittaa jonkun muun kuin miditiedoston melodiaksi? (ohjelma kaatuu)
"ui.py"-tiedostossa on muutama turha import, joita ei käytetä ollenkaan (QHBoxLayout, QDialog, QIcon, QRect), mutta tämä tiedosto näyttää olevan keskeneräinen. Sama juttu "trie.py" jossa on turha "import random".
Käyttöliittymä on hyvin toteutettu ja helppo käyttää. Käyttöliittymään voisi tehdä paremmaksi tekemällä tiedostojen tallentamisesta helpompaa, esimerkiksi valitsemalla nimen ja sijainnin automaattisesti (tai jonkun asetuksen mukaan) jolloin käyttäjän tarvitsisi vain painaa "tallenna"-nappia.
Käyttöliittymään voisi myös lisätä selitteet jokaiselle vaihtoehdolle. Tämä löytyy jo käyttöohjeesta, mutta käyttäjälle olisi helpompaa, jos se olisi ohjelman sisällä.
"Käytä aluperäistä rytmiä" pitäisi olla valintaruutu (QCheckBox) eikä valintanappi (QRadioButton). Yleensä valintanappia käytetään, kun käyttäjä voi valita monesta vaihtoehdosta vain yhden, ja valintaruutua kun käyttäjä voi vaihtaa tietyn vaihtoehdon päälle tai pois (eli vaihtoehto on boolean).
"lenght" pitäisi varmaan olla "length" (markov_chain.py)
Projekti näyttää olevan hyvässä vaiheessa. En itse tiedä paljoa Markovin ketjujen toiminnasta, mutta ne näyttävät olevan hyvin toteutettu.
Jotain parannusehdotuksia: