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
Projektin koodi on siistiä ja selkeää, mitä edesauttavat myös projektin varsin suppea koko ja matemaattinen luonne. Koodia on helppo seurata, joskin eri osien toimintaa avaavat kommentit eivät olisi olleet pahitteeksi – tosin tämä korjautunee JavaDocin lisäämisen myötä ja, kuten sanottu, koodi on selkeää ja muuttujien ja metodien nimet sen verran kuvaavia, ettei sovelluksen toimintaa ole vaikea ymmärtää.
Yleinen toiminnallisuus
Kuten todettu, projektin kenties suurin "puute" on sen varsin rajattu mittakaava – perustoiminnallisuus on yksinkertainen – mutta visualisointina kiehtova – matemaattinen operaatio joten siihen ei ole kovin helppo keksiä luontevia lisätoiminnallisuuksia. Toteutetusta toiminnallisuudesta kuvion värin valinta tuntuu jossain määrin päälle liimatulta eikä valitettavasti tuo kovin paljoa lisäarvoa. Jos sovellukseen haluaa liittää lisätoiminnallisuutta, seuraavat voisivat olla mahdollisia mieleen tulevia vaihtoehtoja:
Mahdollisuus nollata tilanne ja palata alkuun olisi ehkä hyödyllinen jos käyttäjä haluaa leikkiä ohjelmalla pidempään.
Kertoimen muutosarvon voisi myös lisätä käyttäjän muokattavaksi parametriksi, joskin tämän mielekkyys lopputuloksen kannalta on tietysti kyseenalainen.
Vaihtoehto jossa viivojen värin vaihtuu vähitellen läpi spektrin kuvion edetessä voisi tuottaa mielenkiintoisen efektin joka havainnollistaisi kuvion olemusta ja liikettä.
Käytettävyys
Ohjelman käyttäminen on suoraviivaista ja käyttöliittymä on selkeä, joskin joitain parannuksia tuli testatessa mieleen:
Aloitusikkunassa Continue-painike kannattaisi määritellä Default-painikkeeksi, jolloin annetun nimen voisi syöttää painamalla enteriä sen kirjoittamisen jälkeen tarvitsematta erikseen klikata painiketta.
Ohjelma avaa pääikkunan jostain syystä näytön oikeaa alakulmaan niin, ettei se näy kokonaan ennen kuin sen siirtää keskemmälle (13" MacBook Pro 2014 (Retina), OSX High Sierra).
Nopeusasetus kannattaisi ehkä rajata kokonaislukuihin (tai tasakymmenyksiin).
Sekä nopeusasetuksen että viivojen määrän liukusäädinten käytettävyyttä parantaisi huomattavasti jos niitä pystyisi säätämään hienojakoisemmin näppäimistön avulla – tällä hetkellä nopeus hyppää kymmenen yksikköä jokaisella nuolinäppäimen painalluksella ja myös viivojen määrä kasvaa sadalla – usealla tuhannella yhdestä painalluksesta.
Koodin rakenne
Käyttöliittymä ja ohjelmalogiikka on erotettu hyvin toisistaan, ja vektorien tallentamista varten luotu oma luokka on tarkoituksenmukainen. Tätä tietysti edesauttaa ohjelman yksinkertaisuus, joka näkyy siinä, että luokkia on vain kolme. Omina luokkinaan toteutettavalle lisätoiminnallisuusdelle olisi tilaa. Seuraavassa joitakin huomioita ja muutosehdotuksia yksittäisiin luokkiin:
TimesTable.java
*Silmukka
for (int i = 0; i < totalVectors; i++) {
Vector v = initVector(i, multiplier, totalVectors);
vectors.add(v);
}
toistuu sekä konstruktorissa että metodissa updateVectors() (tosin hieman eri parametreilla), joten se voisi olla järkevää ulkoistaa omaksi metodikseen. Tämä ei kylläkään ole ehdottoman tarpeellista, koska metodit ovat jo nyt varsin lyhyitä.
TimesTableUi.java
Toiston käynnistys ja pysäytys olisi ehkä luontevampaa toteuttaa ToggleButton-objektilla kuin CheckBox-objektilla.
Painikkeiden ja muiden elementtien teksti on joissain tapauksissa määritetty setText()-metodilla ja joissain suoraan konstruktorin parametrina; tämän voisi yhdenmukaistaa.
Sovelluksen nimen pääikkunan otsikkopalkissa voisi ehkä kirjoittaa isoilla kirjaimilla.
The text was updated successfully, but these errors were encountered:
Projekti ladattu: 26.4.2019 11.01
Yleistä palautetta
Projektin koodi on siistiä ja selkeää, mitä edesauttavat myös projektin varsin suppea koko ja matemaattinen luonne. Koodia on helppo seurata, joskin eri osien toimintaa avaavat kommentit eivät olisi olleet pahitteeksi – tosin tämä korjautunee JavaDocin lisäämisen myötä ja, kuten sanottu, koodi on selkeää ja muuttujien ja metodien nimet sen verran kuvaavia, ettei sovelluksen toimintaa ole vaikea ymmärtää.
Yleinen toiminnallisuus
Kuten todettu, projektin kenties suurin "puute" on sen varsin rajattu mittakaava – perustoiminnallisuus on yksinkertainen – mutta visualisointina kiehtova – matemaattinen operaatio joten siihen ei ole kovin helppo keksiä luontevia lisätoiminnallisuuksia. Toteutetusta toiminnallisuudesta kuvion värin valinta tuntuu jossain määrin päälle liimatulta eikä valitettavasti tuo kovin paljoa lisäarvoa. Jos sovellukseen haluaa liittää lisätoiminnallisuutta, seuraavat voisivat olla mahdollisia mieleen tulevia vaihtoehtoja:
Käytettävyys
Ohjelman käyttäminen on suoraviivaista ja käyttöliittymä on selkeä, joskin joitain parannuksia tuli testatessa mieleen:
Koodin rakenne
Käyttöliittymä ja ohjelmalogiikka on erotettu hyvin toisistaan, ja vektorien tallentamista varten luotu oma luokka on tarkoituksenmukainen. Tätä tietysti edesauttaa ohjelman yksinkertaisuus, joka näkyy siinä, että luokkia on vain kolme. Omina luokkinaan toteutettavalle lisätoiminnallisuusdelle olisi tilaa. Seuraavassa joitakin huomioita ja muutosehdotuksia yksittäisiin luokkiin:
TimesTable.java
*Silmukka
toistuu sekä konstruktorissa että metodissa updateVectors() (tosin hieman eri parametreilla), joten se voisi olla järkevää ulkoistaa omaksi metodikseen. Tämä ei kylläkään ole ehdottoman tarpeellista, koska metodit ovat jo nyt varsin lyhyitä.
TimesTableUi.java
The text was updated successfully, but these errors were encountered: