You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Algoritmin suoritus onnistui, ja se tuotti esimerkkikuvista selvästi tarkemman version. Se, miten tarkan kuvan algoritmi tuottaa, riippuu kuitenkin kuvan sisältämistä väreistä sillä algoritmi huomioi ainoastaan vihreän värikanavan.
Ohjelman logiikkaa oli suurimmaksi osaksi helppo ymmärtää, mutta siitä saisi vielä selkeämmän jakamalla koodiin pienimpiin metodeihin ja luokkiin. Esimerkiksi FocusStacking-luokan Stack-metodin voisi pilkkoa pienempiin osiin. Lisäksi jäi hieman epäselväksi, mitä osia algoritmista on vielä toteuttamatta koska sen kulku oli erilainen kuin Toteutus-dokumentin kulkukaaviossa ja projekti sisälsi poiskommentoitua koodia. Esimerkiksi ylipäästösuodatusta en löytänyt projektista.
MyArrayList-luokan käyttöä voisi optimoida lisäämällä konstruktorin, jolla voi asettaa luokan sisäisen taulukon alkukapasiteetin. Alustamalla taulukon koon oikeaksi vältytään datan kopioimiselta uudelleen aina kun taulukon kokoa pitää kasvattaa. Taulukon haluttu koko on tiedossa jo etukäteen, sillä se riippuu kuvan koosta, minkä ansiosta MyArrayList-luokan voisi luultavasti myös korvata Javan omalla taulukolla.
Yksi mahdollinen koodiparannus olisi käyttää MyArrayList-luokan sisäisessä taulukossa geneeristä luokkaa E Object-luokan sijaan jolloin vältyttäisiin tyyppimuunnoksilta (cast). FFT-luokan fft-metodissa käytettiin Javan omia Math.cos ja Math.sin metodeja. Kuuluisiko nämä korvata omilla implementaatiolla? Jos Math-kirjaston käyttö on sallittua, ei luultavasti muitakaan apumetodeja (sqrt, abs, hypot) tarvitsisi toteuttaa itse.
Koodia oli melko helppo ymmärtää, mutta sen luettavuutta voisi vielä parantaa kiinnittämällä enemmän huomiota metodien nimiin. Jos nimet ovat tarpeeksi kuvaavia, on myös kommenttien tarve pienempi. Esimerkiksi kohdasta
Jos koodia haluaa hioa, voi siihen tehdä pieniä tyyliparannuksia. Esimerkiksi joidenkin metodien nimet alkoivat isolla kirjaimella.
Projektin testikattavuus oli yksinkertaisempien luokkien osalta melko hyvä, mutta esimerkiksi FocusStacking-luokan logiikka oli vielä testaamatta. Koska Stack-metodi sekä lataa kuvat, käsittelee ne että lopussa tallentaa uuden kuvan, sen testaaminen on haastavaa. Myös tästä syystä koodi kannattaisi jakaa pienempiin metodeihin ja useampiin luokkiin.
The text was updated successfully, but these errors were encountered:
Projekti ladattu: 5.6. klo 21
Algoritmin suoritus onnistui, ja se tuotti esimerkkikuvista selvästi tarkemman version. Se, miten tarkan kuvan algoritmi tuottaa, riippuu kuitenkin kuvan sisältämistä väreistä sillä algoritmi huomioi ainoastaan vihreän värikanavan.
Ohjelman logiikkaa oli suurimmaksi osaksi helppo ymmärtää, mutta siitä saisi vielä selkeämmän jakamalla koodiin pienimpiin metodeihin ja luokkiin. Esimerkiksi FocusStacking-luokan Stack-metodin voisi pilkkoa pienempiin osiin. Lisäksi jäi hieman epäselväksi, mitä osia algoritmista on vielä toteuttamatta koska sen kulku oli erilainen kuin Toteutus-dokumentin kulkukaaviossa ja projekti sisälsi poiskommentoitua koodia. Esimerkiksi ylipäästösuodatusta en löytänyt projektista.
MyArrayList-luokan käyttöä voisi optimoida lisäämällä konstruktorin, jolla voi asettaa luokan sisäisen taulukon alkukapasiteetin. Alustamalla taulukon koon oikeaksi vältytään datan kopioimiselta uudelleen aina kun taulukon kokoa pitää kasvattaa. Taulukon haluttu koko on tiedossa jo etukäteen, sillä se riippuu kuvan koosta, minkä ansiosta MyArrayList-luokan voisi luultavasti myös korvata Javan omalla taulukolla.
Yksi mahdollinen koodiparannus olisi käyttää MyArrayList-luokan sisäisessä taulukossa geneeristä luokkaa E Object-luokan sijaan jolloin vältyttäisiin tyyppimuunnoksilta (cast). FFT-luokan fft-metodissa käytettiin Javan omia Math.cos ja Math.sin metodeja. Kuuluisiko nämä korvata omilla implementaatiolla? Jos Math-kirjaston käyttö on sallittua, ei luultavasti muitakaan apumetodeja (sqrt, abs, hypot) tarvitsisi toteuttaa itse.
Koodia oli melko helppo ymmärtää, mutta sen luettavuutta voisi vielä parantaa kiinnittämällä enemmän huomiota metodien nimiin. Jos nimet ovat tarpeeksi kuvaavia, on myös kommenttien tarve pienempi. Esimerkiksi kohdasta
voisi tehdä hieman selkeämmän vaikka seuraavasti:
Jos koodia haluaa hioa, voi siihen tehdä pieniä tyyliparannuksia. Esimerkiksi joidenkin metodien nimet alkoivat isolla kirjaimella.
Projektin testikattavuus oli yksinkertaisempien luokkien osalta melko hyvä, mutta esimerkiksi FocusStacking-luokan logiikka oli vielä testaamatta. Koska Stack-metodi sekä lataa kuvat, käsittelee ne että lopussa tallentaa uuden kuvan, sen testaaminen on haastavaa. Myös tästä syystä koodi kannattaisi jakaa pienempiin metodeihin ja useampiin luokkiin.
The text was updated successfully, but these errors were encountered: