Giter Site home page Giter Site logo

aihelotto-ohha's Introduction

aihelotto-ohha's People

Contributors

mattikan avatar

Watchers

James Cloos avatar  avatar

aihelotto-ohha's Issues

Koodikatselmointi 2

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.

Koodikatselmointi 1

Projekti ladattu 4.6 kello 23.30.

Yleistä:

  • Hyvä aihe etenkin seuraavia kurssin suorittajia ajatellen
  • Koodi on helposti luettavaa
  • Git commitit voisi olla nimetty kuvaavammin ja osan niistä voisi myös hajauttaa useampaan commitiin, jotta projektin työstämistä olisi helpompi seurata

Ohjelma:

  • MainGUI.java: Aihelistan sisältävän tekstitiedoston nimi on toistaiseksi kovakoodattu. Käyttöliittymään voisi tulevaisuudessa lisätä talletus ja avaustoiminnot
  • aiheet.txt: Puolipisteellä erotettu tiedostoformaatti toimii tällaisessa käytössä hyvin, mutta toisaalta vaihtoehtoisesti voisi harkita jotain kehittyneempää formaattia, kuten esim. JSON:ia, jolle löytyy valmiita Java-kirjastojakin
  • SubjectIO.java: FileWriter/FileReader ja BufferedWriter/BufferedReader voivat jäädä auki, jos tiedostoa kirjoittaessa/lukiessa tapahtuu IOException. Ohjelma voisi myös näyttää käyttäjäystävällisen virheilmoituksen kirjoitus-/lukuvirheestä
  • SubjectIO.java: ArrayList toimii hyvin aiheiden ja ryhmien tallettamisessa, mutta tässä yhteydessä voisi ehkä toimia tehokkaammin jokin Map-rajapinnan olio
  • Subject.java: Hyvin toteutettu ja hyvä idea tehdä aiheista erillisiä olioita

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.