Koodisi on hyvin runsaasti kommentoitua, mikä on mielestäni positiivinen asia, mutta kommentit eivät ole JavaDoc -muodossa, mikä on käsittääkseni vaatimuksena Javalla tehdyille projekteille tällä kurssilla. Siten myös ymmärrettävästi Javadoc-dokumentaatio puuttuu.
Lisäksi testausraporttia ei ole projektissa mukana eikä kaikki testit mene tällä hetkellä läpi ainakaan omalla koneellani.
Osa muuttujien nimistä on hieman kryptisiä eikä kerro mitä ne sisältävät vaan nimi viittaa ennemminkin tietorakenteen tyyppiin (esim “hm” tai “pq”). Koodin luettavuuden kannalta voisi olla selkeämpää, jos nimet viittaisivat siihen, mitä muuttujissa on tarkoitus säilyttää.
Joitain tarkempia huomioita Huffman.java -luokasta
(DISCLAIMER: Ymmärrän, että projektisi on vielä kesken)
Encode-metodin eri vaiheisiin (frekvenssitaulun generointi, minimikeon luonti) voisi käyttää ns. “extract metodia”, jolloin erilliset vaiheet olisivat helposti testattavissa pienempinä yksikköinä. Testattavuutta kannattaa miettiä suunnitellessa ohjelman rakennetta.
Koodatun viestin purkaminen on nyt toteutettu käyttäen “huffmanDictReverse” -tietorakennetta käyttäen. Se toimii mutta ei ole paras mahdollinen tapa kun koodattu viesti halutaan kirjoittaa häviöttömästi tiedostoon. Silloin koodattu viesti + sen avaava tietorakenne molemmat täytyy sisällyttää tallennettavaan tiedostoon. Parempi tapa on kirjoittaa esitys koodatun viestin luomiseksi käytetystä Huffmanin puusta, jolloin viestin dekoodaamiseksi prosessi tehdään käytännössä vain takaperin.
Tiedostoon kirjoittamista varten koodattu viesti olisi tarkoitus saattaa String-esityksen sijaan bittimuotoon (käytännössä byte[]) jolloin käytetty codeFreq-tietorakenne, jota käytetään nyt koodatun viestin painon laskemiseen käy turhaksi.
Repositorio kloonattu 3.12.2021 klo 18:00
Yleistä
Koodisi on hyvin runsaasti kommentoitua, mikä on mielestäni positiivinen asia, mutta kommentit eivät ole JavaDoc -muodossa, mikä on käsittääkseni vaatimuksena Javalla tehdyille projekteille tällä kurssilla. Siten myös ymmärrettävästi Javadoc-dokumentaatio puuttuu.
Lisäksi testausraporttia ei ole projektissa mukana eikä kaikki testit mene tällä hetkellä läpi ainakaan omalla koneellani.
Osa muuttujien nimistä on hieman kryptisiä eikä kerro mitä ne sisältävät vaan nimi viittaa ennemminkin tietorakenteen tyyppiin (esim “hm” tai “pq”). Koodin luettavuuden kannalta voisi olla selkeämpää, jos nimet viittaisivat siihen, mitä muuttujissa on tarkoitus säilyttää.
Joitain tarkempia huomioita Huffman.java -luokasta
(DISCLAIMER: Ymmärrän, että projektisi on vielä kesken)
Hyvä siitä tulee! 😎