wiki:Halyri/Koodinkatselmointi1Muistio

Version 1 (modified by iltaraut, 5 years ago) (diff)

--

Hälyri-sovellusprojektin 1. koodinkatselmoinnin muistio

Paikka: Tietotekniikan projektien kokoushuone, Agora AgC226.1
Aika: Torstai 2.4.2014 klo 8.15–10.30

Läsnä
Projektiryhmä

  • Niko Mononen
  • Veli-Mikko Puupponen, sihteeri
  • Ilkka Rautiainen, sihteeri
  • Atte Söderlund

Tietotekniikan laitoksen edustajat

  • Vesa Lappalainen

Ohjaajat

  • Jukka-Pekka Santanen (vastaava ohjaaja)
  • Jaakko Kosonen (tekninen ohjaaja)

Muistio

Laadittu: 2.4.2013

  1. Hätäkeskusohjelma

Kosonen ehdotti ottamaan huomioon seuraavat asiat:

  • Menu-elementeille voisi laittaa tagit, jotta päästään eroon turhista switch–case-rakenteista.
  • Onko helppo lokalisointi huomioitu? Joissain kohdissa päivitetään muun muassa painikkeiden tekstejä koodissa.
  • Kommenttien param-kohtiin tulisi laittaa aina jotakin, vaikka asia olisi triviaali.
  • Asetusmuutosten käsittelyä voisi parantaa muuttamalla indeksit enumeiksi. Tällä saadaan switch–case-rakenteita pois.
  • Muuttujan nimien on oltava pidempiä ja kuvaavampia kuin yksi kirjain.
  • Enumit ovat luokkia, joten ne on aloitettava isolla alkukirjaimella.
  • Muuttujien nimeämisessä on käytettävä yhtenäistä tyyliä. Nyt jotkin noudattavat PascalCasea ja toiset camelCasea.

Santanen:

  • Luokkakommentteja puuttuu monista tiedostoista.
  • Rivit ovat osin liian pitkiä erityisesti tulostusta ajatellen.
  • Voisivatko tehtävien värikoodit olla valittavissa asetuksista?

Lappalainen:

  • Koodissa on mainittava tekijän nimi sekä myös jonkinlainen viittaus käytettyyn lisenssiin.
  • Pitäisi tarkistaa onko lisenssitiedostoon tai lisenssiin viittaamiseen olemassa kommenttitagi.
  • This-viitteen käyttö koodissa on sallittua, mutta käytön tulee olla yhtenäistä.
  • Onko Assignment-luokka järkevää periä ListBoxItemistä? Assignment sisältää nyt myös esimerkiksi karttamerkin asetuksia, joten parempi ratkaisu saattaisi olla jonkinlainen kooste.
  1. Älypuhelinsovellus

Kosonen:

  • Luokkakommentteja puuttuu monista tiedostoista.
  • Palvelinpuolen asetukset eivät kuulu MainPage-sivulle.
  • MakeAppNaR-metodin nimeä tulisi muuttaa kuvaavammaksi.
  • Pitkän if-lauseen voisi jakaa eri riveille esim. &&-kohdissa.
  • Useiden elementtien sijainti- ja kokoasetukset voidaan parhaiten määritellä xaml-sivuilla.
  • Yksi mahdollinen tapa näyttää videokuvaa on täyttää koko näyttö sillä. Tämän jälkeen videokuvan päälle voi lisätä tarpeelliset ja osittain läpinäkyvät elementit, kuten kartan.
  • Lähdekoodin tiedostonimet tulisi nimetä niin, että niistä voi päätellä suoraan liittyykö koodi esim. käyttöliittymään vai johonkin muuhun.
  • Asetusmuutosten käsittelyä voisi parantaa muuttamalla kirjasinten kokovalinnat enumeiksi. Tällä saadaan switch–case-rakenteita pois.

Santanen:

  • CantMakeNoise ja CanMakeNoise sekoittuvat helposti.

Lappalainen:

  • MainPage-sivun ApplicationBarIconButtons_Click-metodin ei tarvita if–else-rakennetta.
  • Asetusten tallentamisessa käytetään turhan paljon merkkijonoja.
  • Koodin rivijaot tulisi yhdenmukaistaa.
  • Kartassa ja muissa elementeissä on käytetty koodin seassa määriteltyjä kokomäärityksiä. Nämä tulisi suhteuttaa laitteen näytön ominaisuuksiin ja määritellä yhdessä paikassa.
  • Kartan tarkennus säilyy useissa älypuhelinsovelluksissa samalla tasolla seuraavalla käynnistyskerralla, vaikka näkymästä poistuisikin. Toisaalta Lappalainen tarkensi, että sovellus on luonteeltaan erityistapaus, joten tarkennustason säilyminen ei välttämättä ole olennaista.
  • Kartan pienennyksen ja suurennuksen voisi hoitaa ilman if–else-rakennetta.
  • Muualta löydetyistä innovatiivisista esimerkkikoodeista voi lähdekoodissa mainita lähteen, mutta löydetyssä ”peruskoodissa” se ei ole tarpeen.
  1. Palvelin

Kosonen:

  • AutoMappereiden asetukset voisi sijoittaa erilliseen luokkaan.

Lappalainen:

  • Voisiko GUID:n siirtää UID:nä merkkijonon sijaan, ainakin sisäisessä käsittelyssä?
  • Koodin tiivistäminen yleistämällä on mahdollista ainakin ConnectionController-luokassa, mahdollisesti myös muualla.