Giter Site home page Giter Site logo

ugab / tiralabra Goto Github PK

View Code? Open in Web Editor NEW

This project forked from tiralabra/tiralabra

0.0 2.0 0.0 551 KB

Opiskelija: Forkkaa tämä repositorio ja tee projektisi forkattuun repoon! Muistathan että palautukset tehdään tekemällä pullrequest!

Shell 2.61% Java 97.39%

tiralabra's Introduction

tiralabra's People

Contributors

tupsu-jy avatar jamo avatar

Watchers

James Cloos avatar  avatar

tiralabra's Issues

Koodikatselmointi

Vertaisarvio

Versio: 16:30 30.9.2014

Yleisiä huomioita

  • Ensimmäisen kerran kun silmäilin repoa huomasin, että repon juuri sisältää kaksi projektikansiota. Turhan voinee poistaa?
  • Kokeilin ajaa projektin ja UI vaikutti keskeneräiseltä. Siitä syystä en kiinnitä UI:hin suurempaa huomiota.
  • Projektilla ei juurikaan ole testejä. Suosittelen niiden tekemistä, sillä siten varmistaa ohjelman toimivuuden jatkossa esim. jos typo lipsahtaa. Muutenkin testien tekeminen parantaa omaa hahmotusta, miten ohjelmiston tulisi toimi ja toimiiko ohjelmisto siten kuin on suunnitellut sen toimivan.
  • Työ hyödyntää javan valmista prioriteettijonoa. Yksi vaihtoehto voisi olla oman prioriteettijonon tekeminen.
  • Työssä voisi harkita enemmän metodien palautusarvojen hyödyntämistä. Tällä hetkellä suurin osa metodeista on void-tyyppisiä.

Solmu

  • Suosittelen Solmu-luokan kapselointia, koska se lisää luokan uudelleenkäytettävyyttä, laajennettavuutta ja testattavuutta.
  • Voisiko seinän päättelyn eristää konstruktorista?

Verkko

  • Verkko-luokan kommenteissa oli todettu, että luokka on väliaikainen. Verkko-luokka kuvaa mielestäni hyvin tilannetta, kun halutaan matriisi, jonka alkiot ovat Solmuja. Säilyttäisin itse Verkko-luokan, jos solmu-matriisille tarvitsee muuta toiminnallisuutta.
  • Jos kuitenkin päädyt säilyttämään luokan, niin Täytätaulukko-metodin näkyvyys kannattanee vaihtaa private:ksi, koska se suoritetaan vain kerran konstruktorissa ja näin estetään metodin ulkopuolinen suorittaminen.
  • Luultavasti Verkko:kin hyötyisi kapseloinnista.

Reitinhaku

  • Reitinhaku vaikutti melko hyvätlä.
  • Eniten silmään jäi näkyvyys asiat: Metodit Lisää(), PiirräReitti() ja TarkistaViereiset() on määritelty public:eiksi. Niitä kuintekin vain käytetään luokan sisällä, joten niitten asettaminen privateiksi voisi olla suositeltavaa kapseloinnin kannalta.
  • Haku(), Lisää() ja PiirräReitti()-metodit ovat selkeästi kirjoitettuja.
  • TarkistaViereiset()-metodi sisältää neljä vertausta. Vertailujen sisältöä voisi pilkkoa, jotta ne olisivat helpommin luettavia.

LukuVertaaja

LukuVertaaja vaikutti hyvältä. Compare-metodi vertaa samoja arvoja, joten luettavuuden kannalta if-else if-if rakenne palvelisi paremmin kuin kaksi erillistä iffiä.

Lopuksi

Projektin aihe on todella mielenkiintoinen ja Työnmäärttely on johdonmukainen ja selkeä. Suurin osa huomioistani liittyy tyyliseikkoihin ja uskoakseni ohjaaja kiinnittänee niihin huomiota. Issue venähti hiukan, mutta toivon, että huomioistani on jotain hyötyä. UI näyttää hienolta ja on varmasti demossa todella näyttävä! Tsemppiä kurssiin!

Koodikatselmointi

Oikein hieno käyttöliittymä. Olet onnistunut saamaan algoritmin toimimaan pienellä koodimäärällä. Myös keon iteratiivinen toteutus on hyvä.

Tässä muutama huomio:

Reitinhaku.javan alussa on AvoinLista-muuttuja, jota ei käytetä. Jostain syystä Netbeans ei huomauta tästä.

Solmu.javan vertaa-metodista else if:n voisi ottaa pois ja palauttaa suoraan -1, jolloin säästyisi kaksi yhteenlaskua ja vertailuoperaatio. Paluuarvoa nolla ei koskaan käytetä, sillä vertaat keon toteutuksessa vain pienempi kuin tai suurempi kuin nolla.

Keko.javan poista-metodissa on kaiketi tullut ajatuskatkos ja viimeisen tarkistuksesta puuttuu return null jos keko on tyhjä. Lisäksi aidosti viimeinen solmu ei tarvitse erikoiskohtelua, eli ehdon if(viimeinen==1) sisältöineen voi poistaa.

ReitinhakuTest taitaa olla kesken. testHaku-metodiin kannattaisi assertTrue(true):n tilalle läpikäynti solmun Edeltäviä pitkin ja tarkistaa, että polku on halutunlainen. Ajoin Coberturan, jonka mukaan rivikattavuus on 100%, mutta siihen ei kannata tuudittautua.

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.