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
heinapaa opened this issue May 4, 2021 · 3 comments
Open

Koodikatselmointi #1

heinapaa opened this issue May 4, 2021 · 3 comments

Comments

@heinapaa
Copy link

heinapaa commented May 4, 2021

2.5.2021 klo 10:04

En saanut ohjelmaa auki netbeansilla, eikä ohjelman suorittaminen jar:in avulla myöskään onnistunut (virhe "Error initializing QuantumRenderer: no suitable pipeline found"). Käyttöohjeita seuraamalla ohjelma lähti kuitenkin omalle koneelle ladattuna lopulta toimimaan, joten kiitos niistä.

Sovelluslogiikan osalta ohjelman rakenne on erittäin järkevä, ja jokaisella pakkauksella ja luokalla on oma selkeä toimintonsa. Ohjelmien yleistys yläluokiksi jne. lisää selkeyttä. Varsinkin model-pakkauksen luokkien metodit ovat erityisen napakoita ja selkeitä.

Metodit ja luokat on nimetty englanniksi ja selkeästi. Kaiken kaikkeaan koodia on erittäin helppo seurata, vaikka minulla on hyvin rajallisesti kokemusta esim. JavaFX:n käytöstä.

Ohjelmassa ei ole vielä toteutettu toiminnallisuutta, joka mahdollistaisi käyttäjän rekisteröinnin. Tämä lienee keskeinen puute sen toiminnallisuudelle, sillä nyt ohjelmaa ei pysty käyttämään ilman, että käy manuaalisesti ensin luomassa oikeaan kansioon oikean nimistä alakansiota (eli oletusarvoisesti omaan juurikansioon kansion, jonka nimi vastaa käyttäjänimeä).

Uuden käyttäjän luomisen olisi varmaankin järkevintä toteuttaa LogInController-luokkaan. Metodi voisi olla jotain tämän tapaista (kansion luonti toiminta vielä tarkastettava!):

    public void createUser(String user) {
        if (!Paths.get(PathUtils.getDataDir().toString(), username).toFile().exists() && !username.isEmpty())
            String path = PathUtils.getDataDir().toString();
            String directory = path.concat(user);;
            File userFolder = new File(directory);
            userFolder.mkdir();

            model.setLoggedIn(true);
            model.setLoggedInUsername(user);
            model.setErrorMessage("");
            model.renderView();
    }

Ohjelmassa on selkeästi panostettu käyttöliittymään, joka toimiikin hyvin. Käyttöliittymän eriyttäminen erillisiin luokkiin jotka saavat aina tietyn Model-olion käyttöönsä näkymän mukaan lisää ohjelman koodin selkeyttä huomattavasti.

Huomiona vielä, että tehtävänannosta poiketen ohjelma on tehty käyttäen gradlea mavenin sijaan.

@JoonasC
Copy link
Owner

JoonasC commented May 4, 2021

Lisäsin juuri pari minuuttia sitten toiminnallisuuden, jolla pystyy luomaan käyttäjiä 😆.

@heinapaa
Copy link
Author

heinapaa commented May 5, 2021

Ajattelinkin että tämä on varmasti tulossa 🤣

Sellainen tuli vielä mieleen, että nyt uutta käyttäjää kirjatessa Ohjelma testaa, löytyykö hakemistosta tiedosto oikealla nimellä. Haku ei kuitenkaan spesifioi, että kyseisen tiedoston pitäisi olla kansio-tyyppinen. Eli kun loin hakemistoon tyhjän (teksti)tiedoston käyttäjänimelläni, päästi ohjelma minut kirjautumaan sisään mutta tällöin kontaktien luonti ei tietenkään onnistunut.

Käytännössä on varmaan aika epätodennäköistä, että käyttäjä ryhtyy sooloilemaan ja luomaan näitä tiedostoja manuaalisesti itse, mutta jos oikein haluaisi olla varmistaa toimivuuden niin sisäänkirjautumisen yhteyteen voisi lisätä testin siitä, että hakemistosta löytyvä käyttäjänimen mukainen tiedosto on nimen omaan kansio.

@JoonasC
Copy link
Owner

JoonasC commented May 5, 2021

Hyvä pointti, pitää korjata tuo

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

2 participants