Talk:Ostukorv

From ICO wiki
Revision as of 21:14, 9 February 2016 by Gvali (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

Retsensioon meeskonna Ostukorv projekti analüüsile

Retsenseeris meeskond Sildur

Meeskonnal on idee koostada rakendus nimega „Ostukorv“, mis võimaldaks perekonna siseseselt koostada ostukorvi. Rakendus on äärmiselt kaasaegne ning vajalik. Vaadeldav meeskond koosneb ühest liikmest.

Meeskonna Wikilehel on olemas nii idee kirjeldus kui ka ülevaade planeeritavast rakendusest koos võimalike vaadete ja funktsionaalsusega. Lisaks on toodud ka lõpptoodangu kasutusjuhend. Rakendus on hästi läbi mõeldud juba algstaadiumis, mis ilmneb vaadete graafilistel kujutistel ning funktsionaalsuse kirjeldamisel – kõigil planeeritud tegevustel on olemas kirjeldus, et miks antud tegevus on rakenduse juures oluline. Protsesside loetelus on kõik elemendid loogilised ja arusaadavad, kuid „nice-to-have“ protsesside juures retseptide loetelu ja lisamine ostukorvi on küsitava väärtusega. Lihtsalt lõppkasutaja ei raatsi nutiekraanil mingit retsepti sisse toksida, pigem otsib internetist ning loeb leitud retseptist vajalikke koostisosasid.

Rakenduse analüüsi puudujäägiks võib pidada andmebaasi kirjelduse puudumist. Kasutatavate tehnoloogiate all on nimetatud REST API või ka Google App Engine, mis peaks andma võimaluse nimekirja jagada, kuid välja on toomata salvestatavate andmete kirjeldus ehk andmebaasi ülesehitus. Tekib küsimus kas selles rakenduses on realiseeritud nõutud 6 andmebaasi tabelit, sest 1 tabel on kasutajate jaoks ja teine tabel ostunimekirjale. Arvatavasti ei ole rakenduse juures planeeritud salvestada ostu kuupäeva ja hinda ega koostada ka ostude arhiivi, mis võimaldaks tekitada vähemalt 3 tabelit kokku. Lisaks annaks pakuks see huvitava lisa rakendusele – näiteks saaks perekond hiljem vaadata kui palju on toote hind muutunud.

Rakenduse kirjelduse juures planeeritakse kasutada näiteks „swipe“ tüüpi sündmusi. See teeb rakenduse kindlasti huvitavamaks, sest enamasti on WPF-rakenduste juures kasutusel ainult nupud või tekstikastid ehk ainult hiired ja sellega kaasnev „click“ sündmused või klavitatuurilt sisestatud teksti lugemine. Seekord on planeeritud Windows Phone rakendus ehk saab kasutada puutetundliku ekraani eeliseid.

Kokkuvõtvalt võib öelda, et antud meeskond on hästi läbi planeerinud oma rakenduse, kuid lisaks oleks võinud ka idee juures kirjeldada rohkem salvestatavate andmete struktuuri. Rakendus on kindlasti realiseeritav üheliikmelise meeskonna poolt. Kindlasti ei oleks selles projektis rohkem kui 2 inimesele tegevust.

Retsensioon lõpptootele

Meeskonna Konsa lõpptoode Ostukorv on Windows Phone rakendus, mis võimaldab koostada ostunimekirja. Projekti struktuur on selge ja loogilise ülesehitusega - erinevad osad on jaotatud sobivatesse kataloogidesse ja projekti koodibaasist saab esimese pilguga hea ülevaate. Samas ei ole arendamisel kasutatud MVVM arhitektuurimustrit.

Seoses kõnealuse rakenduse funktsionaalse poole ülevaatega tuleb kahjuks mainida, et mitte ühelgi retsenseeriva meeskonna liikmetest ei õnnestunud seda rakendust sõltuvuste (Windows 8.1 SDK jms) tõttu käivitada. Siiski paistab, et lubatud funktsionaalsus on koodi tasandil implementeeritud.

Koodi kohta tekkisid järgnevad tähelepanekud:

  • Funktsioonide kommenteerimisel on kasutatud n.n. mitmerealise kommenteerimise stiili (/* */), kuid Visual Studio pakub kommenteerimiseks ka otseteed (///), mis loob meetodile või klassile vastava dokumentatsiooni malli.
  • Rakenduseüleste konstantide jaoks on eraldi klass (Constants), milles on vastavad muutujad märgitud static’uks, kuid mitte konkreetselt konstantideks (const). Kõigile selle klassi muutujatele võiks vastava täpsustuse lisada.
  • Klassid SuspensionManager, RelayCommand, ObservableDictionary ja NavigationHelper on pärit GitHub’ist ja teistest avalikest allikatest, kuid otseselt ei ole neile viidet.
  • Koodis on kasutatud tühje avalikke konstruktoreid, nt. andmemudelites, kuigi C# loob need ka ise automaatselt. Samuti on osades konstruktorites ka kasutamata parameetreid, nt. Session klassil “json”.

Projekti teostamise juhendi nõuetest lähtudes tuleb mainida, et andmebaasi asemel on kasutatud JSON-i põhist veebiteenust ning logimist ei ole kasutatud. Ülaltoodud probleeme pehmendab asjaolu, et projekti arendas üheliikmeline meeskond ja selles valguses on tehtud siiski korralikult tööd.

Retsenseeris Meeskond: Nocturne No. 20 in C-sharp Minor