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 2 #2

Open
niwic opened this issue Jun 18, 2017 · 0 comments
Open

Koodikatselmointi 2 #2

niwic opened this issue Jun 18, 2017 · 0 comments

Comments

@niwic
Copy link

niwic commented Jun 18, 2017

Ladattu 18.6.2017 kl 19.10

Yleistä:

  • Sovellus kääntyy ja käynnistyy. Sillä pystyy arpomaan aiheita, sekä lisätä uusia aiheita. Eli toimii hienosti kuten pitikin.
  • Yksi testi kuitenkin failaa: testGetAllGroups
  • Esimerkkiaihetiedoston merkistön koodaus on UTF8. Java ilmeisesti olettaa eri koodauksen oletuksena eri järjestelmillä. Linuxillä oletetaan usein UTF8, ja Windowsilla jokin Windowsin koodauksisa (esim. CP1252). Tämän takia jotku merkit eivät näytä käyttöliittymässä samalta kun esimerkkitiedostossa, kun avaan sovelluksen Windowsissa. Tämän voisi ehkä korjata määrittelemällä koodaus kun tiedosto luetaan (lukea bytet, ja luoda uusi String UTF8 koodauksella) ja kirjoitetaan.
  • Kun se käyttöliittymästä tallentuu, tiedostoon tulee eri koodauksella olevaa tavaraa sekaisin

SubjectIO:

  • Readerilla on tukea AutoCloseable rajapinnalle, eli sen luonti voi tehdä try lohkon parametrinä, ja täten sitä ei tarvitse (muistaa) sulkea manuaalisesti.
  • Luokkalla on kova riippuvaisuus luokasta File. Tosin sillä ylläpidetään myös sovelluslogiikan tietolistat. Mielestäni luokalla on siis kaksi vastuuta:
  1. Lukea tiedostosta tavaraa joka muutetaan siihen muotoon mikä sovellus voi käyttää

  2. Ylläpitää sovelluslogiikan tiedot

    Nämä voisi eriyttää kahteen eri luokaan. Tiedostonluku-luokka voisi esimerkiksi olla riippuvainen tietojen-ylläpitoluokasta, minne se lisää tavaraa jonkinlaisella julkisella addSubject metodilla.

  • Yllämainittu näkyy myös symptomina rivillä 39-41, missä on sovelluslogiikkaa tiedostonlukumetodissa

MainGUI:

  • Metodi randomSubjectButtonActionPerformed kutsuu hieman erikoisesti ensin SubjectIOn getSubjects metodia, ja sitten saman luokan getRandomSubject metodia. Voisiko getRandomSubject metodi lukea tiedot suoraan omasta luokasta, jos sille ei anneta parametriä?
  • Toisaalta getRandomSubject voisi ehkä olla omassa luokassaan, niin sen vastuu eriytetään vastuusta ylläpitää Subject listat.
  • Metodissa jButton1ActionPerformed ensin kirjoitetaan lisätty aihe tiedostoon, ja sitten luetaan sama tiedosto uudestaan. Ehkä tässä voisi vaan tehdä niin, että lisätään aihe muistissa olevaan listaan, ja sitten muistissa oleva lista kirjoitetaan tiedostoon? Säästyisi yksi tiedostonlukuoperaatio.
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