Skip to content

Koodikatselmointi #1

Description

@heinapaa

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions