Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Koodikatselmointi #1

Open
vmarttil opened this issue Apr 26, 2019 · 0 comments
Open

Koodikatselmointi #1

vmarttil opened this issue Apr 26, 2019 · 0 comments

Comments

@vmarttil
Copy link

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:

  • 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant